Presentation Definition
Presentation Definition is a standardized format that enables verifiers to articulate proof requirements to holders in decentralized identity systems. Developed by the Decentralized Identity Foundation (DIF), it addresses how parties can request specific verifiable information consistently and interoperably.
Why use presentation definition?
Section titled “Why use presentation definition?”Verifiers need a clear way to communicate exactly what credentials and information they require. Presentation Definition provides:
- Standardized, system-agnostic credential requests
- Clear specification of required credential fields
- Complex requirement combinations through logical operators
- Constraints on acceptable credential formats and issuers
- Built-in selective disclosure support
Without it, each verifier would implement custom request formats, causing compatibility issues, poor user experience, and increased development costs.
What is a presentation definition?
Section titled “What is a presentation definition?”A Presentation Definition is a JSON object specifying what credentials a verifier needs, which fields within those credentials are required, and what combinations satisfy the requirements.
Core components:
- Unique identifier: References the definition
- Input descriptors: Define required credentials and their constraints
- Submission requirements (optional): Specify logical combinations of inputs
- Format requirements (optional): Acceptable credential formats
Example requesting email verification:
{ "id": "user_verification_example", "input_descriptors": [ { "id": "email_credential", "name": "Email Verification", "purpose": "We need to verify your email address", "constraints": { "fields": [ { "path": ["$.credentialSubject.email"], "filter": { "type": "string", "format": "email" } } ] } } ]}How presentation definition works
Section titled “How presentation definition works”Presentation Definition is part of a credential exchange workflow between verifier and holder:
- Request Formation: Verifier creates a Presentation Definition specifying required credentials
- Request Transmission: Definition is sent to the holder
- Holder Processing: Holder’s wallet interprets the requirements
- Credential Selection: Holder selects credentials satisfying the requirements
- Response: Holder returns a Presentation Submission mapping their credentials to requirements
sequenceDiagram
participant Verifier
participant Holder
Note over Verifier: Creates Presentation Definition
Verifier->>Holder: Sends Presentation Definition
Note over Holder: Processes requirements
Note over Holder: Selects matching credentials
Holder->>Verifier: Returns Presentation Submission
Key concepts
Section titled “Key concepts”Input descriptors
Section titled “Input descriptors”Input Descriptors specify individual credential requirements. Each descriptor defines which credential fields are needed, acceptable values, and format requirements using JSONPath expressions and JSON Schema filters.
Submission requirements
Section titled “Submission requirements”Submission Requirements enable logical combinations of Input Descriptors:
- all: All inputs from a group must be submitted
- pick: Minimum number of inputs from a group must be submitted
- Nested rules: Complex combinations
Example - require either ID card OR (address proof AND employment proof):
"submission_requirements": [ { "rule": "pick", "min": 1, "from": ["A", "B+C"] }]Format agnosticism
Section titled “Format agnosticism”Presentation Definition works with multiple credential formats:
- W3C Verifiable Credentials
- JSON Web Tokens (JWTs)
- JSON Web Credentials
- OpenID Connect tokens
- Any JSON-serializable claim format
This ensures broad compatibility across identity systems.
Relationship with presentation submission
Section titled “Relationship with presentation submission”Presentation Definition and Presentation Submission are complementary:
- Presentation Definition: Specifies what the verifier wants (the request)
- Presentation Submission: Maps holder’s credentials to the requirements (the response)
The submission references the definition to demonstrate how presented credentials satisfy requirements.
Role in Vidos
Section titled “Role in Vidos”In Vidos, Presentation Definition integrates with OpenID for Verifiable Presentations (OpenID4VP):
- Authorizer: Provides Presentation Definition to wallets during authorization, specifying required credentials and fields
- Validator: Uses the definition to verify that Presentation Submissions match requirements
When users authenticate, Vidos Authorizer generates the appropriate definition based on policies, sends it to the wallet, receives the submission, and validates that presented credentials satisfy the original requirements.
Summary
Section titled “Summary”Presentation Definition provides standardized, interoperable credential requests that work across systems and formats. It enables verifiers to clearly specify requirements while supporting privacy-preserving selective disclosure.
Key benefits:
- Standardized credential request format
- Complex logical requirement combinations
- Format-agnostic design for broad compatibility
- Precise field specification for enhanced privacy
- Reduced implementation complexity
Through Presentation Definition, Vidos enables standardized verification workflows that balance privacy with flexibility for diverse scenarios.