Skip to main content

OpenID4VP

OpenID4VP, OpenID for Verifiable Presentations, is the protocol a wallet uses to present one or more credentials to a verifier in response to a request, so the verifier can check them without a separate integration per issuer.

A relying party sends a presentation request describing what it needs to see, either as a redirect in a same-device flow or as a QR code the holder scans with their wallet in a cross-device flow, and the request can ask for a single claim or a full credential. The wallet parses the request, works out which stored credentials satisfy it using a query language such as DCQL, and asks the holder to approve which credentials and claims to share before anything leaves the device. The verifier then checks the response against the original issuer signatures and, where selective disclosure is used, confirms that only the disclosed claims were revealed while the rest stayed hidden without breaking the proof.

OpenID4VP covers online presentation, where the wallet talks directly to the relying party's backend over HTTPS, either through a same-device redirect or a cross-device QR code flow. In-person checks over Bluetooth or NFC, such as an age gate at a shop counter or a border crossing, use a separate standard, ISO/IEC 18013-5 device retrieval, rather than OpenID4VP.

OpenID4VP is the presentation protocol the EUDI Wallet uses under eIDAS 2.0, so any relying party that supports it can accept credentials from wallets issued anywhere in the EU without negotiating a bespoke integration with each national wallet provider. Because the holder approves every disclosure explicitly, a relying party never receives more data than it asked for, and the wallet keeps a record of what was shared and with whom.

Technical deep dive

This page explains what the technology does and who it affects. Our developer documentation covers the implementation itself: the messages, the fields and the worked examples an integration team needs.

Read the technical documentation

What stops a relying party from asking for more data than it needs through OpenID4VP?

The wallet, not the relying party, decides what actually leaves the device. It shows the holder exactly which credentials and claims the request is asking for, and the holder approves or rejects that specific disclosure. A relying party can ask for anything, but nothing is shared unless the wallet holder consents to that request in the moment.

Back to the glossary