DVR defines a JSON query language that allows the Proof Verifier to check if the user has data that meets specific requirements, conditions, or constraints.
zkpass-client
<query> ::= <boolean-expression>
<boolean-expression> ::= "{" <logical-operator> ": [" <expression-list> "] "}"
<logical-operator> ::= "and" | "or"
<expression-list> ::= <expression> | <expression> "," <expression-list>
<expression> ::= <relational-expression> | <boolean-expression>
<relational-expression> ::= "{" <relational-operator> ": [" <variable> "," <literal> "] "}"
<relational-operator> ::= "==" | "!=" | ">" | ">=" | "<" | "<=" | "~==" | "~!="
<variable> ::= <string>
<literal> ::= <integer> | <string> | <boolean>
<integer> ::= ["-"] <digit>+
<string> ::= """ <characters> """
<boolean> ::= "true" | "false"
<characters> ::= <character>*
<character> ::= <letter> | <digit> | <special-character> | " "
<special-character> ::= "!" | "@" | "#" | "$" | "%" | "^" | "&" | "*" | "(" | ")" | "-" | "+" | "=" | "[" | "]" | "{" | "}" | "|" | ":" | ";" | "'" | "<" | ">" | "," | "." | "/" | "?" | "~"
<letter> ::= "a" ... "z" | "A" ... "Z"
<digit> ::= "0" ... "9"
[
{
assign: {
account_holder: {
and: [
{ "==": [{ dvar: "bcaDocID" }, "DOC897923CP"] },
{ "~==": [{ dvar: "personalInfo.firstName" }, "Ramana"] },
{ "~==": [{ dvar: "personalInfo.lastName" }, "Maharshi"] },
{
"~==": [{ dvar: "personalInfo.driverLicenseNumber" }, "DL77108108"],
},
{
">=": [{ dvar: "financialInfo.creditRatings.pefindo" }, 650],
},
{
">=": [
{ dvar: "financialInfo.accounts.savings.balance" },
55000000,
],
},
],
},
},
},
{ output: { result: { lvar: "account_holder" } } },
]