# Proof Generation Overview

The proof generation starts with the Wallet scanning the QR code on the Verifier website/app. It is worth mentioning that the proof generation process initiates on the Verifier side first with the Verifier generating a Query Request.

## Steps of Proof Generation

Integrator selects the type of credential for which it seeks verification.

Verifier website/app displays the QR code depending on the credential type selected by the Integrator.

Integrator scans the QR code. By scanning, the Wallet parses the query-based authentication request shown by the Verifier. Read more about auth requests here.

Before the Wallet can generate a proof, it needs to authenticate itself first. Upon successful authentication (a pin or biometrics), the Wallet starts the process of generating either a signature-based proof or a Merkle-tree-based proof to be presented to the Verifier. The circuit sends back its response to the Verifier via

`callbackUrl`

.After the proof is sent to the Verifier, it analyzes this proof for its authenticity and based on its analysis, verifies the proof.

The Verifier shows both the authorization request and the proof information to the Integrator.

As the verification is complete, an Integrator can now use the services of the Verifier. For example, if the Verifier is a DAO, the Integrator, upon successful verification, becomes a DAO member and can participate in the voting activities.

Read more about the circuits used for proof generation here.