Presentation Submission
Presentation Submission is a standardized format that enables holders to communicate how their presented credentials satisfy a verifier’s requirements. Developed by the Decentralized Identity Foundation (DIF), it provides a consistent response structure in credential exchange systems.
Why use presentation submission?
Section titled “Why use presentation submission?”Holders need a clear way to indicate which credentials satisfy which requirements. Presentation Submission provides:
- Standardized mapping of credentials to verification requirements
- Clear indication of which credentials fulfill which requirements
- Support for different credential formats in a single submission
- Consistent structure across transport protocols
Without it, verifiers would struggle to process presented credentials, causing integration challenges and verification errors.
What is a presentation submission?
Section titled “What is a presentation submission?”A Presentation Submission is a JSON object that maps presented credentials to requirements specified in a Presentation Definition. It serves as the response counterpart to the request, creating a clear connection between what was asked for and what is being provided.
Core components:
- Definition ID: References the specific Presentation Definition being responded to, ensuring the verifier can match the response to their request
- Descriptor map: Links Input Descriptor IDs from the definition to actual credentials in the submission
- Path information: Indicates where to find each credential within the submission structure using JSONPath
- Format details: Specifies the format of each credential to aid verification
Example responding to email verification:
{ "definition_id": "user_verification_example", "descriptor_map": [ { "id": "email_credential", "format": "jwt_vc", "path": "$.verifiableCredential[0]" } ]}How presentation submission works
Section titled “How presentation submission works”After receiving a Presentation Definition, the holder:
- Analyzes requirements from the Presentation Definition
- Matches their credentials to those requirements
- Creates a Presentation Submission mapping credentials to requirements
- Packages credentials with the submission
- Submits the complete response to the verifier
The verifier uses the submission to locate and verify each credential.
sequenceDiagram
participant Verifier
participant Holder
Note over Holder: Analyzes & matches credentials
Note over Holder: Creates submission mapping
Holder->>Verifier: Submits credentials + submission
Note over Verifier: Verifies using submission
Key concepts
Section titled “Key concepts”Descriptor map
Section titled “Descriptor map”The descriptor_map is the central component, containing descriptors that map input descriptors to credentials. Each entry in the map creates a clear link between a requirement and its fulfillment.
Each descriptor specifies:
- id: Matches an input descriptor ID from the Presentation Definition
- format: Credential format (e.g.,
jwt_vc,ldp_vc) - path: JSONPath expression locating the credential in the submission
Example mapping multiple credentials:
"descriptor_map": [ { "id": "driver_license_credential", "format": "ldp_vc", "path": "$.verifiableCredential[1]" }, { "id": "proof_of_address", "format": "jwt_vc", "path": "$.verifiableCredential[0]" }]This structure allows the verifier to quickly locate each requested credential and understand its format for proper verification.
Format specifications
Section titled “Format specifications”The format property indicates credential encoding, helping verifiers select the appropriate verification method. Common formats:
jwt_vc: JSON Web Token Verifiable Credentialldp_vc: Linked Data Proof Verifiable Credentialmso_mdoc: Mobile Security Object (ISO mdoc)
Format specifications ensure the verifier can correctly parse and cryptographically verify each credential according to its specific encoding requirements.
Relationship with presentation definition
Section titled “Relationship with presentation definition”Presentation Definition and Presentation Submission are complementary:
- Presentation Definition: Specifies required credentials and fields
- Presentation Submission: Maps presented credentials to those requirements
Each Input Descriptor in a Presentation Definition corresponds to an entry in the submission’s descriptor_map, allowing verifiers to efficiently locate and process credentials.
Role in Vidos
Section titled “Role in Vidos”In Vidos, Presentation Submission integrates with OpenID for Verifiable Presentations (OpenID4VP):
- Authorizer: Receives Presentation Submission from wallets, containing credentials and their mapping to requirements
- Validator: Verifies that credentials match requested formats, required fields are present, constraints are met, and logical combinations satisfy requirements
This separates protocol flow (Authorizer) from credential verification (Validator).
Summary
Section titled “Summary”Presentation Submission provides standardized credential-to-requirement mapping, enabling consistent verification across systems and formats.
Key benefits:
- Clear credential-to-requirement mapping
- Multiple credential support
- Format flexibility
- Simplified verification structure
- Reduced implementation complexity
Through Presentation Submission, Vidos enables standardized verification workflows with clear, efficient credential presentation.