Skip to main content

Sharing a Proof Request

Sharing a proof request generates a URL that encodes everything the wallet needs to retrieve and respond to the request. This URL is typically presented to the holder as a QR code.

Share the proof request

curl -L -X POST '/api/proof-request/v1/{{PROOF-REQUEST-UUID}}/share' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>'

The system responds with the URL to share with the holder:

{
"url": "{{PROOF-REQUEST-URL}}"
}

Encode this URL as a QR code and present it to the holder. The wallet scans the code, parses the request according to the verification protocol, and presents it to the holder for review.

Specify a client ID scheme

If your verification protocol is configured with multiple client ID schemes, the system uses the first compatible one by default. To specify a particular scheme, pass it in the request body:

curl -L -X POST '/api/proof-request/v1/{{PROOF-REQUEST-UUID}}/share' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"params": {
"clientIdScheme": "redirect_uri"
}
}'

Check supportedClientIdSchemes in your verification protocol configuration instance for available options.

What happens next

Once the holder scans the QR code the system handles the rest of the verification process. The system verifies the submitted presentation against the following checks — all must pass:

  • Authenticity — the credential signature is verified against the issuer's public key, confirming it has not been tampered with
  • Holder binding — the presentation signature is verified against the holder's key, confirming the presenter is the credential subject
  • Credential status — the credential is checked against its revocation method to confirm it has not been suspended or revoked
  • Schema validation — the presentation data is checked against the expected structure, required fields, and claim datatypes

If any check fails, the verification fails and returns an error.

After a successful verification, manage the shared claims data appropriately. See Managing Claim Data.