Protocols
Two open protocols carry everything: one for getting a credential into a wallet, one for getting a presentation out of it.
| Protocol | Direction | Does |
|---|---|---|
| OpenID4VCI | Issuer → wallet | Delivers a credential offer, then the credential itself |
| OpenID4VP | Verifier → wallet → verifier | Requests 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.