DIF Presentation Exchange is a specification developed by the Decentralized Identity Foundation (DIF) that defines a machine-readable format for a verifier (or relying party) to request specific verifiable credentials from a holder (user). This request, called a Presentation Definition, specifies the exact types of credentials, the required data claims, and the trust frameworks (e.g., specific issuers or cryptographic proofs) that the verifier will accept. By standardizing this request-response flow, it enables different wallet and identity agent implementations to interoperate seamlessly, regardless of the underlying credential format like W3C Verifiable Credentials or other supported data models.
DIF Presentation Exchange
What is DIF Presentation Exchange?
DIF Presentation Exchange is a standardized protocol that enables a verifier to request and a holder to share cryptographically verifiable data, known as Verifiable Presentations, in a privacy-preserving and interoperable manner.
The protocol is fundamentally holder-centric, putting the user in control of their data. When a user's wallet receives a Presentation Definition, it can search its secure storage for credentials that satisfy the request. The user can then select which credentials to share and create a Verifiable Presentation—a cryptographically signed package of credentials or derived claims. This process supports selective disclosure, allowing users to share only the minimum necessary information (e.g., proving they are over 21 without revealing their exact birthdate) and enhancing privacy. The verifier receives this presentation and can validate its authenticity and compliance with the original definition using standard cryptographic verification.
A core technical component is the use of JSON-based schemas and JSON-LD for the definition format, making it both human-readable and machine-processable. The specification also defines Presentation Submission objects, which are returned alongside the Verifiable Presentation to map how the presented data fulfills the specific requirements of the request. This creates a clear audit trail. The protocol is designed to be transport-agnostic, meaning it can be used over various communication channels such as OpenID Connect (OIDC), SIOPv2, CHAPI, or direct QR code scans, making it versatile for web, mobile, and IoT applications.
The primary use cases for Presentation Exchange span digital identity verification, Know Your Customer (KYC) processes, age verification, professional credentialing, and access control. For example, a financial service could request proof of accredited investor status, a university could request a verifiable diploma for admissions, or a website could request proof of age for content gating. By providing a common language for these interactions, DIF Presentation Exchange reduces integration complexity and vendor lock-in, fostering an ecosystem where users can carry their verifiable credentials across different services and jurisdictions.
The development and governance of the Presentation Exchange specification occur within the DIF, ensuring it aligns with the broader SSI (Self-Sovereign Identity) architecture and interoperates with other key specs like Decentralized Identifiers (DIDs) and Verifiable Credential Data Model. Its adoption by major players in the identity space signals its role as a foundational layer for building trustworthy, user-controlled data exchange on the internet, moving beyond legacy models of data silos and repetitive form-filling.
How DIF Presentation Exchange Works
A technical overview of the open-source protocol for requesting and exchanging verifiable credentials between entities in a decentralized identity ecosystem.
The DIF Presentation Exchange is a standardized protocol, defined by the Decentralized Identity Foundation (DIF), that enables a Verifier (relying party) to formally request and a Holder (user) to selectively share Verifiable Credentials (VCs). It operates by defining a machine-readable Presentation Definition—a JSON or JSON-LD document that specifies the exact credentials or claims required, including the credential schemas, trusted issuers, and any necessary constraints. This definition is sent from the Verifier to the Holder's Wallet or User Agent, initiating the exchange process.
Upon receiving the Presentation Definition, the Holder's wallet evaluates which credentials in its possession satisfy the request. The Holder then constructs a Presentation Submission, which is a bundled response containing the selected Verifiable Credentials or derived Verifiable Presentations. This submission is cryptographically signed and returned to the Verifier. The protocol ensures data minimization by allowing the Holder to share only the specific claims that satisfy the request, rather than entire credentials, enhancing user privacy and control.
The core innovation of Presentation Exchange is its role as an interoperability layer. It is agnostic to the underlying credential formats (like W3C Verifiable Credentials) and cryptographic suites, allowing different decentralized identity systems to communicate. The protocol's specifications, including Presentation Definition v1.0.0 and Presentation Submission v1.0.0, provide a clear contract between parties, enabling automated, secure, and privacy-preserving credential exchanges without centralized intermediaries.
Key Features of Presentation Exchange
The Decentralized Identity Foundation's Presentation Exchange specification defines a standardized, interoperable protocol for requesting and presenting verifiable credentials between a Verifier and a Holder.
Presentation Definition
A Presentation Definition is a machine-readable data format a Verifier uses to specify the exact credentials it requires. It defines the Input Descriptors that describe the required claims, schemas, and constraints. This allows for precise, flexible requests without the Verifier needing to know which specific credentials a Holder possesses.
Presentation Submission
A Presentation Submission is the Holder's structured response to a Presentation Definition. It contains the Verifiable Presentation(s) and a mapping (descriptor_map) that links each submitted credential to the specific Input Descriptor in the Verifier's request. This creates a clear, auditable correspondence between request and response.
Input Descriptors & Constraints
Input Descriptors are the core building blocks of a request, each describing a required piece of data. Their Constraints allow for sophisticated filtering, such as:
- Requiring a credential from a specific issuer (Issuer DID).
- Specifying the required JSON-LD schema or credential type.
- Applying JSONPath filters to specific fields within a credential.
- Defining Field Predicates for value-based rules (e.g.,
age >= 21).
Holder-Driven, Privacy-Preserving Flow
Presentation Exchange implements a pull model, where the Holder is in control. The Verifier sends a request, and the Holder's wallet evaluates it against their credentials. The Holder can:
- Select which credentials to disclose.
- Create Selective Disclosure presentations (e.g., proving age without revealing birthdate).
- Deny the request entirely. This architecture minimizes data exposure and puts the user at the center.
Format & Proof Agnosticism
The protocol is designed to be independent of specific credential formats and cryptographic proofs. It can work with W3C Verifiable Credentials (JSON-LD or JWT), AnonCreds, and others. The format property in the Presentation Definition allows a Verifier to state its supported formats, enabling interoperability across different Decentralized Identity ecosystems.
Machine-Readable Interoperability
By standardizing the request/response data structures as JSON, Presentation Exchange enables automated negotiation between systems. Wallets, verifier services, and identity hubs can implement the spec to achieve out-of-the-box compatibility. This eliminates the need for custom integration code for each new credential type or use case.
Core Components & Data Structures
The DIF Presentation Exchange is a standardized protocol for requesting and presenting verifiable credentials, defining the data structures and flows for secure, interoperable data sharing.
Presentation Definition
A Presentation Definition is a machine-readable JSON object that specifies the exact verifiable credentials a Verifier requires from a Holder. It defines:
- Input Descriptors: The types of credentials and specific claims needed.
- Constraints: Rules like credential schema, issuer DID, or specific claim values.
- Submission Requirements: How multiple credentials should be grouped and presented.
Presentation Submission
A Presentation Submission is the Holder's response to a Presentation Definition. It is a JSON wrapper that contains:
- The Verifiable Presentation(s) fulfilling the request.
- A descriptor map linking each presented credential to the specific Input Descriptor it satisfies.
- Proofs and signatures that bind the submission to the Holder's Decentralized Identifier (DID).
Input Descriptor
An Input Descriptor is a component within a Presentation Definition that describes a single type of required credential. Each descriptor includes:
id: A unique identifier for the requirement.schema: The credential schema URI that must be matched.constraints: Filters on fields (e.g.,issuer,credentialSubject.id, specific claim values).purpose: A human-readable reason for requesting this data.
Descriptor Map
The Descriptor Map is a critical JSON structure within a Presentation Submission that creates a verifiable link between the submitted credentials and the Verifier's request. It:
- Maps each Verifiable Credential in the presentation to a specific Input Descriptor
idfrom the Presentation Definition. - Uses a
path(e.g.,$.verifiableCredential[0]) to pinpoint the credential's location within the submission. - Ensures the Verifier can algorithmically verify all requirements were met.
Submission Requirements
Submission Requirements define the logical rules for how multiple Input Descriptors must be satisfied. They enable complex request logic using:
pick: The Holder must submit credentials matching a specified number of optional descriptors.all: The Holder must submit credentials matching all listed descriptors.- Nested Rules: Requirements can be combined using
and,or, andnotto create sophisticated conditional logic for multi-credential presentations.
Constraints & Filter Objects
Constraints within an Input Descriptor use Filter Objects to specify precise criteria a credential must meet. Key filter types include:
fields: Constrains specific claim values (e.g.,credentialSubject.age>= 21).issuer: Restricts acceptable issuers by DID or pattern.schema: Mandates a specific credential schema URI.subject_is_issuer: Requires the credential subject to also be its issuer (for self-attested claims).
Visualizing the Presentation Exchange Flow
A step-by-step breakdown of the credential presentation process as defined by the Decentralized Identity Foundation (DIF) specification, illustrating the roles of the holder, verifier, and issuer.
The Presentation Exchange flow is a standardized protocol for requesting and sharing verifiable credentials (VCs). It defines a structured data format, the Presentation Definition, which a verifier (relying party) sends to a holder (user) to specify the exact credentials or claims required for a transaction. This definition can request specific credential types, mandate certain issuers, or require particular data fields, enabling precise, machine-readable requests that move beyond simple link-sharing.
Upon receiving a Presentation Definition, the holder's wallet or agent evaluates the request against its stored credentials. The holder then constructs a Presentation Submission, a response that includes the selected VCs packaged as a Verifiable Presentation (VP). This submission must satisfy all constraints outlined in the definition, such as proving control of a Decentralized Identifier (DID) and ensuring the credentials' cryptographic proofs are valid. The process ensures the holder maintains control over what is shared.
The final step involves the verifier receiving and validating the Presentation Submission. The verifier checks the digital signatures on the Verifiable Presentation and its enclosed credentials, confirms the credentials were issued by trusted entities, and verifies that all requirements from the original Presentation Definition are met. This end-to-end flow—definition, submission, verification—creates a secure, interoperable, and privacy-preserving mechanism for credential exchange across different decentralized identity ecosystems.
Real-World Use Cases & Examples
DIF Presentation Exchange is a standardized protocol that enables a Verifier (relying party) to request and a Holder (user) to present verifiable credentials in a privacy-preserving, interoperable manner. These examples illustrate its practical applications across industries.
Professional Credential Verification
Employers and licensing boards can request proof of qualifications. A job applicant can selectively disclose a university degree credential and professional certifications to satisfy the employer's input descriptors. The protocol ensures the credentials are cryptographically verifiable and from accredited issuers, drastically reducing fraud and the time spent on manual background checks.
Age-Restricted Access
Online services requiring age verification (e.g., alcohol delivery, adult content) can request a presentation that proves a user is over a certain age without requiring a full birth date or ID scan. The Holder presents a verifiable credential containing an "over 21" attestation from a trusted issuer, satisfying the constraints in the presentation request while minimizing data exposure.
Travel & Border Control
Airlines and border agencies can request a presentation containing a verifiable credential for a passport, visa, and vaccination record. The Holder's wallet assembles these credentials into a single, cryptographically verifiable package. This enables faster, more secure digital check-ins and border crossings using interoperable standards, as seen in projects like the IATA Travel Pass initiative.
Selective Disclosure for Decentralized Finance (DeFi)
DeFi protocols can use Presentation Exchange for credential-based gating. To access a high-tier lending pool, a user might need to prove they are an accredited investor or have completed specific KYC. The user presents a verifiable credential from a qualified issuer directly from their wallet, enabling trustless verification without the protocol ever seeing or storing the underlying sensitive data.
Healthcare Data Sharing
Patients can securely share specific health records with providers or researchers. A clinic's EHR system (Verifier) sends a presentation request for a vaccination record or lab result. The patient's holder wallet evaluates the request, obtains consent, and presents only the required credentials from their issuer (e.g., a hospital). This gives patients control over their health data while ensuring data integrity and provenance.
Presentation Exchange vs. Alternative Credential Proof Methods
A technical comparison of DIF Presentation Exchange with other common methods for requesting and transmitting verifiable credentials.
| Feature / Mechanism | DIF Presentation Exchange | Direct JWT Presentation | Static Proof Request (e.g., OIDC SIOP) |
|---|---|---|---|
Core Specification | DIF Presentation Exchange (PE) v2.0 | RFC 7519 (JWT) / RFC 8392 (SD-JWT) | OpenID Connect for Verifiable Presentations |
Request Format | Presentation Definition (JSON) | Custom JWT claim or query parameter | Pre-defined |
Selective Disclosure | ✅ (Via PE constraints & SD-JWT) | ✅ (Via SD-JWT or BBS+) | ❌ (Limited to requested scopes) |
Holder Mediation | ✅ (Wallet-driven negotiation) | ❌ (Direct Relying Party interaction) | Partial (Via Authorization Server) |
Credential Format Agnostic | ✅ (Supports JWT, SD-JWT, LDP, CWT) | ❌ (JWT-family only) | ❌ (Typically JWT-based) |
Submission Format | Presentation Submission (JSON) | Raw JWT or SD-JWT string | ID Token with VP claim |
Formal Proof of Compliance | ✅ (Presentation Submission maps to Definition) | ❌ (Requires custom validation logic) | Partial (Via standard OIDC validation) |
Interoperability Focus | High (DIF, W3C CCG standard track) | Medium (Relies on JWT profile agreement) | Medium (Within OIDC ecosystem) |
Ecosystem Adoption & Implementations
Presentation Exchange (PE) is a Decentralized Identity Foundation (DIF) specification that standardizes how verifiable credentials are requested and presented, enabling secure, interoperable identity verification across different systems.
Core Specification & Mechanism
Presentation Exchange defines a data format and protocol for a Verifier to request specific credentials from a Holder. It uses a Presentation Definition to specify required credentials and a Presentation Submission to return them. This creates a machine-readable, privacy-preserving negotiation layer, separating the what (the request) from the how (the transport protocol).
Key Use Cases in Web3
PE enables selective disclosure and reusable KYC, forming the backbone of decentralized identity. Key applications include:
- Token-Gated Access: Proving ownership of a specific NFT or token balance to access a DAO or event.
- Sybil Resistance: Proving unique humanity or specific credentials without revealing full identity.
- DeFi & Compliance: Submitting proof-of-address or accredited investor status for regulatory compliance.
- Cross-Chain & Cross-Platform Identity: Using the same verifiable credentials across different blockchains and applications.
Implementation: W3C Verifiable Credentials
PE is the primary method for requesting and presenting W3C Verifiable Credentials (VCs). The Presentation Definition can request specific claims (like a birth date) or entire credential types (like a KYC credential). The Holder's wallet uses this definition to locate matching VCs in its storage and construct a Verifiable Presentation for submission, ensuring cryptographic proof and data integrity.
Integration with Sign-In Protocols
PE is often layered atop existing authentication protocols to add rich, credential-based claims. A common pattern is SIOPv2 (Self-Issued OpenID Provider v2) with Presentation Exchange, where an OIDC flow is enhanced with a PE request. This allows users to sign in with their wallet and simultaneously present verifiable credentials, merging authentication and authorization.
Contrast with Other Models
PE differs from simpler attestation models by providing a structured, declarative request. Key distinctions:
- vs. Simple Signature Requests: PE requests specific credential schemas and constraints, not just a signature on arbitrary data.
- vs. OAuth Scopes: OAuth scopes grant access to data held by a provider; PE enables the presentation of data held by the user.
- vs. ZK-SNARKs: PE is a data format; it can be used to request Zero-Knowledge Proofs (ZKPs) as a type of presentation, but it is not a proving system itself.
Security & Privacy Considerations
Presentation Exchange is a W3C-CCG and DIF specification that defines a secure, privacy-preserving protocol for a Verifier to request and a Holder to present Verifiable Credentials. It shifts the security model from data exposure to selective disclosure.
Selective Disclosure & Data Minimization
The core privacy principle of Presentation Exchange is data minimization. Instead of presenting an entire credential, a Holder can use cryptographic techniques to prove specific claims (e.g., "I am over 21") without revealing the underlying data (e.g., their exact birth date). This is achieved through Zero-Knowledge Proofs (ZKPs) or BBS+ signatures, drastically reducing the privacy surface area.
Verifier-Led Trust Frameworks
Security is enforced through cryptographically verifiable trust frameworks. The Verifier's Presentation Definition specifies not only the required claims but also the trusted issuers and credential schemas. The Holder's wallet cryptographically validates that the presented credentials are signed by an authorized issuer and conform to the expected structure, preventing the use of forged or malformed data.
Holder Consent & User Agency
The protocol is designed around user-centric identity. The Holder's wallet acts as a secure agent, evaluating the Verifier's request. The Holder must explicitly consent to share the requested presentation. This prevents credential "phishing" and ensures the user maintains control over what is shared, with whom, and for what purpose (purpose binding).
Presentation Non-Repudiation & Auditability
A generated Verifiable Presentation is a cryptographically signed package. This signature provides non-repudiation, proving that a specific Holder authorized the presentation of those credentials at a specific time. This creates a tamper-evident audit trail for compliance, essential for regulated use cases like KYC/AML, while preserving the privacy of the underlying credential data.
Mitigating Correlation Risks
A key privacy challenge is preventing Verifiers from correlating a user's activities across different services. Presentation Exchange supports unlinkable presentations through techniques like holder-binding with decentralized identifiers (DIDs) and the use of unique, session-specific presentation tokens. This prevents a Verifier from linking two presentations from the same user unless explicitly designed for continuity (e.g., a login session).
Wallet Security & Key Management
The security of the entire system depends on the Holder's digital wallet. This wallet must securely manage the Holder's private keys (for signing presentations) and credential storage. Best practices include:
- Using hardware security modules or secure enclaves.
- Implementing robust backup and recovery mechanisms (e.g., seed phrases).
- Ensuring the wallet software itself is free from vulnerabilities that could lead to credential exfiltration.
Frequently Asked Questions (FAQ)
Common questions about the Decentralized Identity Foundation's Presentation Exchange specification, a core protocol for requesting and presenting Verifiable Credentials.
DIF Presentation Exchange is a standardized protocol that defines how a Verifier can request and a Holder can present Verifiable Credentials (VCs) in a secure, interoperable manner. It works by structuring a machine-readable Presentation Definition—a JSON document specifying the required credentials, their schemas, and constraints. The Holder's wallet processes this definition, selects matching credentials from its repository, and constructs a Presentation Submission that fulfills the request, which is then sent back to the Verifier for validation. This decouples the presentation logic from specific credential formats, enabling wallets and verifiers from different vendors to interact seamlessly.
Further Reading & Technical Resources
The Decentralized Identity Foundation's Presentation Exchange specification is a core protocol for requesting and exchanging verifiable credentials. These resources provide the technical specifications, implementation guides, and community discussions essential for developers.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.