Presentation Exchange is a specification developed by the Decentralized Identity Foundation (DIF) that standardizes how verifiers request verified data from holders and how holders respond with proofs that satisfy those requirements. It solves a critical interoperability challenge in the verifiable credentials ecosystem by creating a common language for credential exchange.
Verifiable credentials unlock the ability to share trusted data across different systems and organizations. However, without standardization, each verifier would need to create custom protocols for requesting specific information from holders. Presentation Exchange addresses this by providing:
This standardization creates a consistent experience for users across different wallets and verifier services while reducing implementation complexity for developers.
Presentation Exchange consists of four main components that work together to enable secure, privacy-preserving credential exchange:
Presentation Definition is the request format that specifies exactly what proofs a verifier needs from a holder. It's a JSON object that defines:
Presentation Submission is the response format that maps provided credentials to the requirements in a Presentation Definition. It enables holders to clearly indicate how their submitted credentials satisfy the verifier's request.
Input Descriptors define specific credential requirements within a Presentation Definition. Each descriptor identifies a particular credential or data element the verifier needs, along with constraints on acceptable values.
Input Descriptors use JSONPath expressions to precisely target fields within credentials, enabling selective disclosure of only the required information.
Submission Requirements provide logical operators for combining Input Descriptors, allowing verifiers to express complex combinations of credentials that will satisfy their requirements.
For example, a verifier might specify that they need either:
The Presentation Exchange specification offers several key advantages:
Format Agnosticism: Works with different credential formats including Verifiable Credentials, JWT, and more
Protocol Independence: Can be used with various transport protocols like OpenID Connect, DIDComm, or CHAPI
Selective Disclosure: Enables privacy by requesting only specific fields rather than entire credentials
Credential Flexibility: Allows holders to choose which credentials to submit when multiple options would satisfy requirements
Developer Efficiency: Reduces the need for custom protocols and facilitates interoperability between different systems
A typical credential exchange using Presentation Exchange follows this process:
In the Vidos platform, Presentation Exchange serves as a foundational standard in several key services:
The Authorizer service uses Presentation Definitions to specify what credentials a user must present for authorization. When a relying party requests verification, the Authorizer:
The Verifier service uses Presentation Exchange to validate that submitted credentials satisfy requirements. It:
The Validator service uses Presentation Exchange as part of its validation framework:
Presentation Exchange works seamlessly with other identity standards and protocols:
OpenID for Verifiable Presentations (OpenID4VP): Presentation Exchange is a core component of the OpenID4VP specification, defining how credential requirements are expressed.
Verifiable Credentials Data Model: Presentation Exchange supports the W3C Verifiable Credentials data model, enabling standardized credential requests.
Decentralized Identifiers (DIDs): Presentation Exchange works with DID-based authentication systems by enabling requests for credentials linked to specific DIDs.
DIDComm Messaging: Presentation Exchange definitions and submissions can be transported using DIDComm protocols.
When implementing Presentation Exchange within the Vidos ecosystem, consider:
Support multiple credential formats: Implement support for different credential formats to maximize compatibility with various wallet implementations.
Balance privacy and usability: Request only the specific fields necessary for your use case to preserve user privacy.
Provide clear purpose statements: Always include purpose statements in your Presentation Definitions so users understand why information is being requested.
Handle alternative credentials: Design your Presentation Definitions to accept alternative credentials that provide equivalent information when possible.
Maintain schema registries: Maintain access to credential schemas to facilitate validation of submitted credentials.
DIF Presentation Exchange provides a standardized framework for requesting and presenting verifiable credentials. By separating the request format (Presentation Definition) from the response format (Presentation Submission), it enables interoperable credential exchange across different systems and protocols.
In the Vidos ecosystem, Presentation Exchange forms a critical foundation for standardized, secure, and privacy-preserving verification workflows. By implementing this specification, Vidos ensures compatibility with the broader verifiable credentials ecosystem while providing a consistent experience for both users and developers.