Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Glossary

Presentation Request

A Presentation Request is a structured query from a verifier to a holder, specifying the type, constraints, and format of verifiable credentials required for a particular interaction.
Chainscore © 2026
definition
DECENTRALIZED IDENTITY

What is a Presentation Request?

A Presentation Request is a structured data object used in decentralized identity systems to formally ask a user to share specific verifiable credentials.

A Presentation Request (also known as a Verifiable Presentation Request) is a machine-readable query, typically formatted in JSON, that specifies the verifiable credentials a verifier (e.g., a website or service) requires from a holder (the user). It defines the exact claims needed—such as proof of age, membership status, or professional accreditation—and the cryptographic proofs required for verification. This request is the initial step in a Selective Disclosure flow, allowing users to review and consent to sharing only the requested information from their digital wallet, rather than entire documents.

The structure of a Presentation Request is governed by standards like the W3C Verifiable Credentials Data Model and protocols such as OpenID for Verifiable Presentations (OIDC4VP) or Decentralized Identifiers (DIDs). Key components include the challenge (a nonce to prevent replay attacks), the domain (identifying the verifier), and the presentation_definition. This definition outlines the required credential types, the specific claims within them, and any constraints, such as the issuer's DID or the credential's issuance date. This precision ensures the verifier receives cryptographically provable data that meets their exact policy requirements.

From a user experience perspective, when a Presentation Request is received by a digital identity wallet, the wallet software parses the request and presents the user with a clear, consent-based interface. The user can see which credentials are being asked for, by whom, and for what purpose. They can then select which of their stored credentials satisfy the request and generate a Verifiable Presentation—a signed package containing the disclosed credentials and proofs. This mechanism is fundamental to user-centric identity, providing privacy through data minimization and giving individuals control over their personal information in digital interactions.

how-it-works
VERIFIABLE CREDENTIALS

How a Presentation Request Works

A Presentation Request is a structured query from a verifier to a holder, initiating the process of sharing Verifiable Credentials in a privacy-preserving manner.

A Presentation Request (or Verifiable Presentation Request) is a machine-readable message, often formatted using standards like the W3C Presentation Exchange specification or DIF's Presentation Request, that formally asks a credential holder to provide specific proofs. It defines the verification policies a verifier requires, such as which credentials are needed, the specific claims within them, and any constraints like issuance date or issuer identity. This request is the starting point for a Selective Disclosure flow, allowing the holder to review what is being asked before consenting to share.

The request typically contains one or more Input Descriptors, each outlining the type of credential and the specific data fields required. For example, a request for age verification might specify a driver's license credential and require only the birthdate claim, not the holder's full name or address. The verifier can also request cryptographic proofs, such as a signature from a trusted issuer (Proof of Issuance) or a Zero-Knowledge Proof (ZKP) that a claim meets a condition (e.g., age > 21) without revealing the exact birthdate. This structure decouples the request for data from the underlying credential format.

Upon receiving the request, the holder's digital wallet software interprets the requirements and matches them against the Verifiable Credentials stored locally. The wallet presents the request to the user, who can see exactly what information is being asked for and by whom. The user then selects which credentials to use to satisfy the request—a process that may involve deriving a ZKP from a credential or preparing a Verifiable Presentation containing the disclosed claims and the necessary cryptographic proofs. This user-centric consent model is a cornerstone of Self-Sovereign Identity (SSI) architectures.

Finally, the holder sends the constructed Verifiable Presentation back to the verifier. The verifier's system validates the presentation by checking the digital signatures on the credentials and proofs against the trust framework or Decentralized Identifier (DID) of the issuer. Crucially, the verifier only receives the data explicitly disclosed in the presentation, fulfilling the principle of data minimization. This entire exchange, from request to verified presentation, enables trusted interactions without unnecessary data exposure, forming the core of privacy-enhancing credential systems.

key-features
VERIFIABLE CREDENTIALS

Key Features of a Presentation Request

A Presentation Request is a structured query from a Verifier to a Holder, specifying the exact credentials and proofs required for access or verification.

01

Challenge & Domain Binding

A Presentation Request includes a cryptographic challenge (nonce) and a domain identifier to prevent replay attacks. The Holder must sign the presentation response with these values, binding the proof to this specific request and verifier domain.

02

Selective Disclosure

The request can specify which claims from a credential are required, allowing the Holder to reveal only necessary information (e.g., proving age > 21 without revealing birthdate). This is enforced using zero-knowledge proofs or predicate proofs.

03

Credential Schema & Issuer Constraints

The request defines the required credential type by referencing its schema (data structure) and can constrain which trusted issuers are acceptable. For example: "type": "UniversityDegreeCredential", "trustedIssuers": ["did:example:university"].

05

Holder Binding Requirement

The request can mandate that the presented credential is bound to the Holder's cryptographic key, proving they are the legitimate subject. This prevents presentation of credentials stolen or copied from another party.

06

Verifier's DID & Purpose

The request is cryptographically signed by the Verifier's Decentralized Identifier (DID), providing authenticity. It should also state a purpose (e.g., "age verification for service access") to ensure transparency about data usage.

technical-format
BLOCKCHAIN DATA FUNDAMENTALS

Technical Format and Structure

This section defines the core data formats, encoding schemes, and structural components that form the backbone of blockchain systems, from individual transactions to the complete chain state.

The technical format and structure of a blockchain refers to the standardized data schemas, serialization methods, and organizational principles that govern how information is encoded, transmitted, and persistently stored across a decentralized network. This includes the precise layout of a transaction, the composition of a block header and its Merkle tree, and the format of the chain state stored in a Merkle Patricia Trie. These formats are defined by the network's consensus rules and are critical for ensuring deterministic execution and global state consistency among all nodes.

At the most granular level, data is encoded using specific serialization formats like RLP (Recursive Length Prefix) in Ethereum, Protobuf in Cosmos-based chains, or simple raw byte arrays in Bitcoin. This serialization creates a canonical byte representation that is hashed to produce unique identifiers (transaction IDs, block hashes). The block structure itself is a linked list of blocks, where each block header contains a cryptographic hash of the previous block, forming the immutable chain. Within a block, transactions are organized into a Merkle tree (or Merkle Patricia Trie for state data), enabling efficient and secure verification of data inclusion without needing the entire dataset.

Beyond the chain history, the world state—the current snapshot of all accounts, balances, and smart contract storage—has its own intricate structure. In Ethereum, this is implemented as a Merkle Patricia Trie, where each change creates a new root hash. This design allows lightweight clients to verify proofs against a single state root stored in the block header. Understanding these formats is essential for developers building clients, indexers, or cross-chain bridges, as it dictates how data is parsed, validated, and interoperates with other protocols in the Web3 stack.

examples
PRESENTATION REQUEST

Common Examples and Use Cases

A Presentation Request (PR) is a structured data object that defines the specific Verifiable Credentials a Verifier requires from a Holder. It is the foundational mechanism for requesting and exchanging proofs in decentralized identity systems.

01

User Login (Authentication)

A website or dApp requests proof of identity instead of a password. The Presentation Request specifies the required credential type (e.g., a government-issued ID or a domain-specific membership) and the specific claims needed, such as dateOfBirth > 21. The user's wallet presents a Verifiable Presentation containing the proof, enabling passwordless, phishing-resistant access.

02

Proof of Accreditation (KYC)

A DeFi protocol requires Know Your Customer (KYC) compliance. It sends a Presentation Request asking for a credential from a trusted issuer certifying the user's jurisdiction and accreditation status. The user can selectively disclose only the necessary information (e.g., "is accredited: true") without revealing their full identity document, balancing compliance with privacy.

03

Age-Gated Access

A service restricting access based on age, like an alcohol retailer or mature-content platform. The Presentation Request asks for a credential containing a birthdate claim. Using zero-knowledge proofs (ZKPs), the user can generate a proof that they are over 18 or 21 without revealing their exact birth date, maximizing privacy while meeting legal requirements.

04

Professional Credential Verification

A hiring platform or client needs to verify a freelancer's qualifications. Instead of manual document checks, they issue a Presentation Request for credentials like university degrees, professional licenses, or completion certificates from recognized issuers. The cryptographic verifiability of the presented credentials eliminates fraud and reduces administrative overhead.

05

Selective Disclosure for Privacy

A user needs to prove they reside in a specific city for a local service. The Presentation Request asks for a proof of residence. The user's wallet can create a derived proof from their full credential, disclosing only the city field while hiding their full address. This demonstrates the core privacy principle of data minimization inherent in Presentation Requests.

06

Cross-Platform Reputation Portability

A user wants to leverage their reputation from one platform (e.g., a high-rating on a freelance site) on another platform (e.g., a lending protocol). The new platform sends a Presentation Request for a verifiable attestation of their reputation score. The user presents a credential issued by the first platform, enabling portable, user-controlled reputation across the web.

VERIFIABLE CREDENTIALS PROTOCOLS

Presentation Request vs. Related Concepts

A technical comparison of the Presentation Request mechanism with related credential exchange and verification concepts.

Feature / MechanismPresentation Request (W3C VP)Credential Offer (W3C OID4VCI)Authentication Request (OIDC/SIOPv2)

Primary Purpose

Request proof of specific claims from a Holder

Offer a specific credential to a Holder

Request user authentication and identity data

Protocol Standard

W3C Verifiable Presentations

OpenID for Verifiable Credential Issuance (OID4VCI)

OpenID Connect (OIDC) / Self-Issued OpenID Provider v2

Initiating Party

Verifier (Relying Party)

Issuer

Relying Party (Client)

Core Data Structure

Presentation Definition (JSON)

Credential Offer Object (JSON)

Authentication Request Object (JWT/JSON)

Response Type

Verifiable Presentation (VP)

Verifiable Credential (VC)

ID Token (JWT) with claims

Selective Disclosure

Holder Binding (Proof)

Cryptographic Proof Format

Linked Data Proofs, JWT

Linked Data Proofs, JWT, SD-JWT

JWT

security-considerations
PRESENTATION REQUEST

Security and Privacy Considerations

A Presentation Request is a structured query for verifiable data. Its security and privacy properties are foundational to trust in decentralized identity systems.

01

Data Minimization & Selective Disclosure

A core privacy principle enforced by the request format. It allows the Verifier to request only the specific claims needed, not the entire credential. The Holder can then choose to disclose:

  • A single attribute (e.g., just a birth year "over 21").
  • A cryptographic proof of a claim without revealing the raw data (using zero-knowledge proofs).
  • This prevents unnecessary data exposure and limits correlation.
02

Request Integrity and Non-Repudiation

Presentation Requests are typically signed by the Verifier. This cryptographic signature ensures:

  • Authenticity: The Holder can verify the request originated from a legitimate Verifier.
  • Integrity: The request parameters (requested claims, challenge nonce) cannot be altered in transit.
  • Non-repudiation: The Verifier cannot later deny making the specific request. The signed request acts as an audit trail.
03

Replay Attack Prevention

To prevent a malicious actor from reusing a previously submitted Presentation, requests include a unique challenge nonce and often a domain or expiration timestamp.

  • The nonce is a cryptographically random string that must be included in the Holder's signed response, making each Presentation unique.
  • The domain binds the request to a specific Verifier's origin (e.g., a website domain).
  • Together, these mechanisms ensure a Presentation cannot be replayed in a different context or after expiry.
04

Verifier Authentication & Trust

The security of the entire flow depends on the Holder correctly authenticating the Verifier. This is not automatic. Risks include:

  • Phishing Verifiers: Malicious sites mimicking legitimate ones to steal credentials.
  • Holder Responsibility: Wallets/agents must implement robust Verifier Identity checks, often via DID resolution and TLS certificate validation for web-based requests.
  • Trust Registries: Some ecosystems use decentralized registries to maintain a list of authorized/revoked Verifier DIDs.
05

Privacy-Preserving Proof Formats

The request can specify advanced proof formats that enhance privacy:

  • Zero-Knowledge Proof (ZKP) Requests: Ask for a proof of a statement (e.g., "age >= 18") without revealing the exact birth date.
  • BBS+ Signatures: Allow selective disclosure of attributes from a single cryptographic signature.
  • Blinded Signatures: Enable issuance of credentials without the Issuer learning the Holder's identifier.
  • Supporting these formats in the request enables unlinkable and minimal disclosures.
06

Schema & Policy Enforcement

The request defines the required credential schema and optional issuer DID. This allows the Holder's wallet to:

  • Validate that the offered credential matches the expected data structure.
  • Check the credential's status against a revocation registry.
  • Verify the Issuer's DID is from a trusted source (if specified).
  • Enforce presentation policies (e.g., "require a government ID AND a proof of residency"). This shifts policy logic to the client side.
PRESENTATION REQUEST

Frequently Asked Questions (FAQ)

Common questions about the Presentation Request, a core component of the Chainlink Proof of Reserve system that enables independent verification of reserve data.

A Presentation Request is a formal, on-chain query initiated by a smart contract to request a Proof of Reserve (PoR) attestation from a designated Chainlink oracle network. It triggers the off-chain verification process where oracles fetch, validate, and cryptographically sign the latest reserve data before delivering it back on-chain as a verifiable attestation. This mechanism provides a trust-minimized and automated way for DeFi protocols to confirm that assets like wBTC or wETH are fully backed by their underlying reserves.

Key Components:

  • Requesting Contract: The smart contract (e.g., a lending protocol) that calls the oracle.
  • Specification: Defines the data source (e.g., a specific custodian's attestation page), the signing oracle nodes, and the update frequency.
  • Response: The resulting signed attestation containing the reserve balance and timestamp, posted on-chain.
ecosystem-usage
PRESENTATION REQUEST

Ecosystem Usage and Standards

A Presentation Request is a structured data object, typically formatted in JSON, that specifies the exact Verifiable Credentials a Verifier requires from a Holder within a decentralized identity exchange. It defines the proof request within protocols like Decentralized Identifiers (DIDs) and Verifiable Credentials (VCs).

01

Core Structure & Components

A Presentation Request is a machine-readable query that defines what a Holder must prove. Its key components include:

  • Challenge: A cryptographic nonce to prevent replay attacks.
  • Domain: Context for the request (e.g., the Verifier's DID).
  • Requested Credentials: The specific claims or credential types required, often using schemas or specific DID methods.
  • Proof Requirements: The allowed signature suites (e.g., Ed25519Signature2018) and optional constraints like credential status or issuance date.
02

Role in the VC Flow

The Presentation Request is the second step in the core Verifiable Credentials interaction model, acting as the Verifier's "ask."

  1. Issuance: An Issuer provides a Verifiable Credential to a Holder.
  2. Request: A Verifier sends a Presentation Request to the Holder.
  3. Presentation: The Holder uses a wallet or agent to select compliant credentials, generate proofs, and create a Verifiable Presentation in response.
  4. Verification: The Verifier validates the presentation against the original request.
03

Standardized Formats

Interoperability is driven by standard request formats that ensure different wallets and verifiers can communicate.

  • W3C Presentation Exchange (PE): A specification defining a presentation_definition object for expressing complex credential requirements, dependencies, and disclosure rules.
  • DIF Presentation Exchange: An implementation and extension of the W3C PE spec by the Decentralized Identity Foundation.
  • ISO/IEC 18013-5 (mDL): Defines a specific request format for mobile Driver's Licenses using QR codes.
04

Example: A Simple Request

A minimal JSON Presentation Request asking for proof of being over 18 might look like this:

json
{
  "challenge": "a1b2c3d4-e5f6-7890",
  "domain": "verifier.example.com",
  "presentation_definition": {
    "id": "proof-of-age",
    "input_descriptors": [{
      "id": "age_descriptor",
      "constraints": {
        "fields": [{
          "path": ["$.credentialSubject.age"],
          "filter": {"minimum": 18}
        }]
      }
    }]
  }
}

This requests a credential where the age claim is greater than or equal to 18.

05

Advanced Constraints & Policies

Requests can encode sophisticated logic for real-world use cases:

  • Predicate Proofs: Requesting proof a claim meets a condition (e.g., age >= 21) without revealing the exact value (zero-knowledge proof).
  • Credential Status: Requiring the credential to not be revoked (checked against a revocation registry).
  • Holder Binding: Proving the presenter is the same subject listed in the credential, often via a DID Auth signature.
  • Selective Disclosure: Allowing the Holder to reveal only specific claims from a larger credential.
ENQUIRY

Get In Touch
today.

Our experts will offer a free quote and a 30min call to discuss your project.

NDA Protected
24h Response
Directly to Engineering Team
10+
Protocols Shipped
$20M+
TVL Overall
NDA Protected Directly to Engineering Team
Presentation Request - Verifiable Credential Query | ChainScore Glossary