Protocols

Two open protocols carry everything: one for getting a credential into a wallet, one for getting a presentation out of it.

ProtocolDirectionDoes
OpenID4VCIIssuer → walletDelivers a credential offer, then the credential itself
OpenID4VPVerifier → wallet → verifierRequests specific claims and returns a signed presentation

Both build on OAuth 2.0, and both are wallet-agnostic: any conformant wallet works with any conformant issuer or verifier.

Issuance, briefly

The issuer produces a credential offer, shown as a QR code or a deep link. The wallet picks it up, exchanges a code for a token — optionally after the holder types a transaction code — and fetches the credential, proving control of its key as it does.

Presentation, briefly

The verifier publishes a signed request describing what it wants. The wallet fetches it, shows the holder what is being asked, and posts back a presentation containing only the agreed claims, signed against a fresh nonce so it cannot be replayed.

What is being asked for is expressed in DCQL, the query language of OpenID4VP. See Verify a credential.

Was this page helpful?