In the context of decentralized identity (DID) and verifiable credentials (VCs), a Presentation Policy is a formal rule set that a verifier (e.g., a website or service) sends to a holder (the user) to specify precisely what identity data is required for access. It dictates which types of credentials, specific claims, or attestations must be presented, and can include constraints such as the credential's issuer, issuance date, or cryptographic proof type. This policy is often expressed in a standardized format like JSON-LD or a domain-specific language, enabling automated negotiation between the user's wallet and the verifier's system.
Presentation Policy
What is a Presentation Policy?
A Presentation Policy is a machine-readable specification that defines the exact requirements a verifier must check when requesting data from a holder's digital identity wallet.
The policy serves as a critical trust and privacy mechanism. It allows the verifier to request the minimum necessary information—a principle known as data minimization—without needing to see the user's actual credentials upfront. For example, a policy for an age-restricted service might simply require proof that the user is over 18, rather than demanding their full birthdate. The user's wallet evaluates the policy against their stored credentials and can generate a verifiable presentation that satisfies the rules, often using zero-knowledge proofs (ZKPs) to reveal only the required proof without leaking extraneous personal data.
Technically, a Presentation Policy is distinct from a Presentation Definition, a core data structure in specifications like the W3C Verifiable Credentials Data Model and OpenID for Verifiable Presentations (OID4VP). While often used interchangeably, the policy is the broader requirement, while the definition is its formal, interoperable encoding. Implementing a Presentation Policy enables scalable, privacy-preserving interactions across ecosystems, forming the backbone of Self-Sovereign Identity (SSI) architectures where users maintain control over their digital identities and selective disclosure.
How a Presentation Policy Works
A Presentation Policy is a machine-readable specification that defines the exact requirements a verifier has for the data contained in a Verifiable Presentation.
A Presentation Policy (or Presentation Definition) is a formal, machine-readable specification issued by a verifier that defines the exact requirements for the data a holder must present. It acts as a query or request, specifying which Verifiable Credentials (VCs) or specific claims are needed, the required schema or data format, and any necessary cryptographic proofs. This policy is the cornerstone of a selective disclosure process, allowing the holder to share only the necessary information without revealing their entire credential wallet.
The policy is typically expressed in a standardized format like the Presentation Exchange (PE) specification from the Decentralized Identity Foundation (DIF). It can request credentials based on specific attributes—like a driver's license issuance date—or more complex logical rules using predicates (e.g., "prove you are over 21"). The policy also defines the accepted signature suites and issuers, ensuring the verifier only trusts credentials from authorized sources. This creates a clear, auditable framework for data exchange.
From a holder's perspective, a wallet or agent application receives the Presentation Policy, evaluates it against the credentials in its possession, and constructs a compliant Verifiable Presentation. This process is often automated, enabling seamless user experiences like one-click logins or age verification. The verifier then cryptographically validates the received presentation against the original policy, ensuring all requirements are met before granting access or service. This mechanism enforces data minimization and user privacy by design.
Key Features of a Presentation Policy
A Presentation Policy is a machine-readable specification that defines the rules for how a Verifiable Credential must be presented to a Verifier. It dictates the required claims, cryptographic proofs, and presentation format.
Claim Constraints
Defines the specific claims (attributes) a holder must reveal from their credentials. This can specify:
- Required claims (e.g.,
dateOfBirth > 1990-01-01) - Optional claims for selective disclosure
- Predicates (e.g., proving age is over 18 without revealing the exact date)
- The schema or type of credential that contains the required claims
Proof Requirements
Specifies the cryptographic proofs a holder must provide to prove the credential's validity and their control over it. Key requirements include:
- Proof of possession: A digital signature from the holder's Decentralized Identifier (DID).
- Credential status: Proof the credential has not been revoked (e.g., via a revocation registry).
- Issuer authentication: Proof the credential was signed by a trusted issuer's DID.
- Zero-Knowledge Proof (ZKP) specifications for privacy-preserving presentations.
Format & Encoding
Dictates the technical serialization and data format for the presentation. This ensures interoperability between the holder's wallet and the verifier's system. Common formats include:
- JSON-LD with Linked Data Proofs
- JWT (JSON Web Token) for compact, URL-safe encoding
- SD-JWT (Selective Disclosure JWT) for specific claim disclosure
- CWT (CBOR Web Token) for constrained environments
Holder Binding
Ensures the presenter is the legitimate subject of the credential, preventing presentation by unauthorized parties. Mechanisms include:
- Challenge-Response: The verifier provides a cryptographic nonce that must be signed in the presentation proof.
- DID Correlation: The holder's DID used in the presentation must match the
credentialSubject.idin the original VC. - Biometric or PIN binding in higher-assurance scenarios, though this is often managed at the wallet level.
Verifier DID & Trust Framework
Identifies the Verifier and optionally specifies the trust framework under which the policy is issued. This includes:
- The Verifier's DID, establishing who is making the request.
- Reference to a Trust Registry or governance framework that defines accepted issuers.
- Purpose or legal basis for data collection (e.g., "KYC compliance for account opening").
Presentation Exchange Protocol
Defines the workflow for how the policy is communicated and fulfilled. This is often governed by standards like OpenID for Verifiable Presentations (OIDC4VP) or W3C's Verifiable Credentials API. The policy itself is typically sent as a Presentation Definition (e.g., using the DIF Presentation Exchange spec), to which the holder responds with a Verifiable Presentation.
Presentation Policy
A Presentation Policy is a formal, machine-readable specification that defines how a Verifiable Credential (VC) should be displayed to a user, ensuring consistency and trust across different verifier applications.
In the W3C Verifiable Credentials Data Model, a Presentation Policy is a set of rules that a verifier sends to a holder to request specific credentials in a precise format. It dictates not just what data is required (e.g., a proof of age) but how it should be presented—such as which claims must be revealed, the allowable credential schemas, and the accepted cryptographic proof formats. This policy ensures the verifier receives data in a predictable structure, enabling automated processing while allowing the holder to construct a compliant Verifiable Presentation.
The policy typically specifies constraints using a declarative language or schema. Key elements include the credential type (e.g., "type": ["VerifiableCredential", "DrivingLicense"]), required claims (e.g., `"claims": {"birthDate": {}}"), and trust frameworks like accepted issuer DIDs or credential status mechanisms. By defining these parameters, the policy prevents ambiguity, reduces fraud risk from mismatched data formats, and enhances user privacy by allowing selective disclosure of only the mandated attributes.
From an implementation perspective, a Presentation Policy is often expressed as a JSON-based query, such as a Presentation Definition in the Decentralized Identity Foundation (DIF)'s Presentation Exchange specification. This enables interoperability between wallets and verifiers. For example, a policy might request a verifiable credential from a trusted university issuer, containing a degreeType claim, and signed with an EdDSA signature on the Ed25519 curve, all while supporting Zero-Knowledge Proofs for privacy-preserving verification.
Common Examples & Use Cases
Presentation Policies define how verifiable credentials are displayed and shared, enabling selective disclosure and user-controlled data sharing across applications.
Selective Disclosure for KYC
A Presentation Policy allows a user to prove they are over 18 and a resident of a specific country without revealing their full identity document, date of birth, or address. The policy requests only the specific verifiable claims needed, such as age > 18 and countryOfResidence == 'US', which are cryptographically proven from a signed credential.
Professional Credential Sharing
A developer can share proof of a specific certification or skill with a potential employer. The employer's Presentation Policy might request:
- Proof of a DiplomaCredential from an accredited institution.
- A BadgeCredential for a specific programming language.
- A MembershipCredential from a professional organization. The user can satisfy this policy with credentials from different issuers without exposing unrelated personal data.
Access Control & Gated Content
Websites or DAOs use Presentation Policies as token-gated access rules. To enter a premium forum, the policy requires a verifiable credential proving:
- Ownership of a specific NFT (e.g., a membership token).
- Or, a credential showing a minimum reputation score or governance power. The user's wallet presents a verifiable presentation satisfying the policy, granting seamless, privacy-preserving access.
DeFi Loan Application
When applying for an undercollateralized loan, a lending protocol can define a Presentation Policy requesting proof of:
- A CreditScoreCredential from a trusted oracle, with a score above a threshold.
- Proof of consistent revenue or asset ownership from another verifiable source. This allows for risk assessment based on attested, tamper-proof data without the user surrendering raw financial documents.
Cross-DApp Reputation Portability
A user's reputation or achievements in one application (e.g., a governance DAO) can be represented as a verifiable credential. A different DApp (e.g., a prediction market) can define a Presentation Policy that requests proof of this reputation to reduce collateral requirements or unlock features. This creates a portable, user-owned social graph and reputation layer across Web3.
Compliance & Regulatory Reporting
For regulated activities, an entity can be asked to present credentials that prove compliance with specific frameworks (e.g., Travel Rule, MiCA). The auditor's Presentation Policy specifies the exact schemas and issuers that are trusted. The entity generates a cryptographic presentation containing only the attestations required, providing auditable proof without exposing full operational data.
Presentation Policy vs. Related Concepts
A comparison of Presentation Policy with other core concepts for managing and verifying data in decentralized systems.
| Feature / Dimension | Presentation Policy | Verifiable Credential (VC) | Zero-Knowledge Proof (ZKP) | Access Control List (ACL) |
|---|---|---|---|---|
Primary Purpose | Defines what data to reveal and its format for a specific request | A cryptographically verifiable digital attestation of a claim | Proves knowledge or truth of a statement without revealing the statement itself | Defines a list of permissions specifying who can access a resource |
Data Granularity | Attribute-level (selective disclosure) | Credential-level (full document) | Statement-level (proven claim) | Resource-level (entire file/object) |
Cryptographic Mechanism | Digital signatures, BBS+ for selective disclosure | Digital signatures (e.g., EdDSA, ES256K) | Cryptographic protocols (e.g., zk-SNARK, zk-STARK) | None (typically relies on system authentication) |
Verification Focus | Format compliance and data origin of the presented data | Integrity, authenticity, and issuer of the credential | Truthfulness of a computational statement | Identity or role of the requesting entity |
Trust Model | Decentralized, verifier-defined policy | Decentralized, issuer-based trust | Decentralized, cryptographic trust | Centralized, administrator-defined trust |
Reveals Underlying Data | Conditionally, as defined by the policy | Yes, the entire signed credential | No, only the proof result | Yes, if permission is granted |
Typical Use Case | Requesting specific KYC attributes from a user's identity wallet | Storing a digital driver's license in a mobile wallet | Proving age is over 21 without revealing birth date | Granting read access to a specific file on a server |
Security & Privacy Considerations
A Presentation Policy is a machine-readable specification that defines the exact data a Verifier requests from a Holder's Verifiable Credential (VC) and the cryptographic proofs required to verify it. It is a core component of selective disclosure and zero-knowledge proof systems, enabling privacy-preserving credential exchange.
Core Function: Selective Disclosure
A Presentation Policy enables selective disclosure, allowing a Holder to reveal only specific attributes from a credential without exposing the entire document. For example, proving you are over 21 from a driver's license VC without revealing your name, address, or exact birth date. This is achieved through cryptographic techniques like BBS+ signatures or zk-SNARKs.
- Privacy by Design: Minimizes data exposure, adhering to the principle of data minimization.
- Attribute-Level Control: Policies can request individual claims (e.g.,
birthdate > 2003-01-01) or combinations. - Format Agnostic: Can be applied to credentials in W3C VC, AnonCreds, or other formats.
Security Role: Proof Requirements
The policy specifies the cryptographic proofs a Verifier demands to ensure the presented data is authentic and unaltered. This moves trust from the presentation event itself to the underlying credential's issuance and cryptographic integrity.
- Signature Proofs: Mandates a verifiable cryptographic signature from the Issuer.
- Non-Revocation Proofs: May require proof the credential is not revoked (e.g., via a revocation registry).
- Timestamp Bounds: Can request proofs that the credential was valid at a specific time.
This shifts the Verifier's trust from the Holder's device to the verifiable cryptographic assertions.
Privacy Risk: Policy Correlation
A sophisticated Verifier can craft a unique Presentation Policy for each interaction. If a Holder uses the same policy-derived presentation multiple times, it creates a correlation handle, allowing the Verifier to link the Holder's actions across different sessions. This undermines user pseudonymity.
- Mitigation: Use presentation token blinding or unlinkable presentation protocols.
- Holder Strategy: Holders should be wary of overly specific, one-time-use policies from unknown Verifiers.
- Standardization: Using common, reusable policy templates reduces this fingerprinting risk.
Implementation Format: JSON & OID4VP
Presentation Policies are typically expressed as structured data objects, often in JSON format. The OpenID for Verifiable Presentations (OID4VP) standard defines a common schema for these requests in the web context.
- Presentation Definition (DIF): A standardized format by the Decentralized Identity Foundation specifying requested credentials and constraints.
- Query Language: Policies use a constraint language (e.g., JSONPath, LD-Proofs) to pinpoint required claims.
- Example Request: A Verifier's API might send a Presentation Definition requesting a
UniversityDegreeCredentialwith agraduationDateafter 2020 and a valid BBS+ signature proof.
Holder Control & Consent
A key security feature is that the Holder's wallet/agent must evaluate and consent to the policy before generating a presentation. This creates a clear audit trail and ensures the user understands what is being requested.
- User Interface: Wallets should display the policy in human-readable terms ("This site requests your age verification").
- Policy Rejection: The Holder can refuse to comply with an overly broad or suspicious policy.
- Consent Receipt: The act of agreeing to the policy can itself be recorded as a verifiable event, providing non-repudiation.
Advanced Use: Predicate Proofs
Beyond revealing raw attributes, policies can request zero-knowledge predicate proofs. The Holder proves a statement about a credential attribute is true without revealing the attribute itself.
- Range Proofs: Prove your income is
> $100,000without revealing the exact figure. - Set Membership: Prove your nationality is in the EU set without specifying which country.
- Mathematical Relations: Prove
Attribute A > Attribute B.
This leverages zk-SNARKs or Bulletproofs and represents the highest standard for privacy-preserving verification, as it discloses zero raw data.
Frequently Asked Questions (FAQ)
This FAQ clarifies the editorial and definitional standards used throughout the Chainscore Labs glossary to ensure technical accuracy and consistency.
This glossary serves as a definitive technical reference for blockchain developers, CTOs, and analysts, providing precise, jargon-busting definitions of core concepts, protocols, and mechanisms. Its primary purpose is to establish a common, accurate vocabulary by explaining the how and why of blockchain technology, focusing on facts, mechanisms, and origins rather than opinions or marketing. It is structured to be directly useful for technical decision-making, protocol analysis, and developer education, with content optimized for clarity and semantic search.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.