Skip to main content
Version: v0.25.0 (Latest)

Verify credentials

This guide covers DCQL configuration, OID4VP presentation requests, and verification results. Complete these linked prerequisites first:

  1. Platform foundations and authentication boundaries for the service client's token and the public/session token boundary.
  2. Tenant provisioning and confidential-client access for the tenant verifier.
  3. Credential designs and claims and Issuer configuration for the credential formats and claim paths the verifier will accept.
  4. Credential issuance if you need a credential to present during the test.
  5. Trust-domain creation and verifier binding for issuer anchors, admissions, eligibility, and the verifier attachment.

The order is: create the verifier and DCQL query, bind a query version, configure trust, then create the OID4VP request and verify the presentation.

Postman correlation: In the canonical EDK Enterprise collection, run 3. Tenant APIs > Verify credentials, with Trust domains when you need to check which issuers the verifier accepts. The query lane is 1. List verifiers, 2. Get the verifier client settings, 3. List DCQL queries, 4. Create a DCQL query, 5. List query bindings of the verifier, and 6. Bind the query to the verifier; the request lane is 7. List verification templates, 8. Create a request from a template or 9. Create a request for a query, 10. Fetch the signed request object, and 11. Get the verification status. The list requests store the response-derived verifier, query, and template ids that later requests need. Verification polling is deliberately separate from credential issuance and does not send an administration bearer token to public protocol endpoints.

Define the DCQL query​

Loading example...
Loading example...

Each credential format has its own DCQL identifier and claim paths.

CredentialDCQL formatType matchClaim paths
SD-JWT VCdc+sd-jwtmeta.vct_valuesJSON claim names such as family_name
ISO mdocmso_mdocmeta.doctype_valueNamespace and element pairs such as org.iso.18013.5.1/family_name
W3C VCDM 1.1 JWTjwt_vc_jsonVCDM 1.1 context and typesPaths below the VCDM 1.1 credential object
W3C VCDM 2.0 JWTjwt_vc_json-ldVCDM 2.0 context and typesPaths for the VCDM 2.0 credential

Do not reuse an SD-JWT claim path for mdoc or a VCDM 1.1 query for a VCDM 2.0 credential.

  1. Open Protocols > Verifier and select the verifier.
  2. Under DCQL bindings, select the query and version.
  3. Under Settings > Trust domains, choose the Trust mode (Verified only or, where offered, Trust all) and select the Allowed trust domains used for issuer validation.
  4. Save the verifier configuration.

Request a presentation​

  1. Open the verifier Test page.
  2. Select the bound query.
  3. Create a presentation request.
  4. Give the request URI or QR code to the wallet.

Read the verification result​

Open the verifier Test or Sessions page. Refresh the session to inspect its state, the selected credentials, the returned claims, and each verification result. Cancel a request that is no longer needed.

Creating a request does not mean that a presentation was accepted. A completed session must report success for every required check.

Review the checks​

Read these results separately:

  1. The credential signature is valid for the issuer key or certificate.
  2. The holder or device binding required by the format is valid.
  3. The issuer is allowed by the selected trust domain.
  4. The credential is within its validity period.
  5. The referenced status list is valid and the indexed entry is acceptable.
  6. The returned credential and claims satisfy the DCQL query.

For mdoc, also verify the issuer-signed MSO, DSC certificate chain, device authentication when required, and the CWT status entry. The DSC must chain to an accepted IACA. See VICAL and CWT status for that configuration.

Next​