Skip to main content

Verifier

A Verifier is any web2 or web3 platform that wants to authenticate users based on their Credentials.

Verifiers can set up queries based on users’ existing Credentials collected from a broad set of Issuers. A Query encapsulates the criteria that a user must match to authenticate, such as “must be a member of XYZ DAO” or “must be over 18 years old”. Privado ID provides a seamless, customized and privacy-based authentication experience to users.

The request of the Verifier is designed using our fully expressive zk Query Language and encapsulated into a Universal Link or a QR code to be shown to the user. The clicks the Universal link or user scans the QR code with its mobile wallet app to prompt the proof generation.

The verification process doesn’t involve any interaction between the Verifier and the Issuer of the requested credential. As part of the Query, the Verifier includes the identifiers of the trusted issuers. For example, a Verifier should add XYZ DAO as the only trusted Issuer when verifying that an individual is a member of XYZ DAO. The XYZ DAO doesn’t need to accept nor interact with the Verifier.

At the end of the process, the verifier gets a cryptographic proof that the user satisfies the query, while the user shares just the minimum possible amount of data required for the interaction.

Verifier SDK

The Verifier SDK is a set of tools that allow any application to verify user information based on their credentials. The SDK provides a fully customizable and privacy-based authentication experience to users. The process of verifying user information based on their credentials can happen on-chain via a smart contract or off-chain. Both processes involve the same level of user privacy and the same degree of query customization. The proof generated on mobile is the same for both cases; the only difference is in the verification process. The on-chain verification happens programmatically inside a smart contract. The off-chain verification happens inside a script that needs to be set up by the Verifier application (either on a server or on the client side):