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

Credential Request

A Credential Request is a structured message, often from a holder to an issuer, formally requesting the issuance of a specific type of verifiable credential.
Chainscore © 2026
definition
DECENTRALIZED IDENTITY

What is a Credential Request?

A Credential Request is a formal, machine-readable query for specific verifiable data, enabling privacy-preserving and user-centric data exchange.

A Credential Request is a structured data object, often formatted in JSON or JSON-LD, that specifies the type, format, and constraints of a Verifiable Credential a Verifier wishes to receive from a Holder. It is a core mechanism in decentralized identity protocols like W3C Verifiable Credentials and Decentralized Identifiers (DIDs), enabling selective disclosure. The request defines the required claims (e.g., "date of birth"), the trusted issuers, and optionally, the cryptographic proof type the verifier will accept. This creates a standardized, interoperable way for services to ask for proof without dictating how the user stores or manages their credentials.

The process typically involves a Presentation Exchange, where the verifier sends the Credential Request to the holder's digital wallet. The wallet software interprets the request, checks the user's available credentials, and allows the user to consent to sharing a subset of the requested data. This is a key shift from traditional authentication, moving from "give us your data to store" to "prove you have this attested claim." For example, a financial service might issue a request asking for proof that the user is over 18 and is a resident of a specific country, without needing to see their full passport details.

Technically, a Credential Request is defined by a Presentation Definition in specifications like the Presentation Exchange (PE) specification. This definition can mandate specific credential schemas, require credentials from certain DID-based issuers, and set policies for credential status (e.g., not revoked). It supports complex logic, such as requiring one credential from a list of acceptable issuers or a combination of credentials to satisfy a policy. This granularity allows for rich, context-aware trust frameworks while minimizing data exposure.

For developers, implementing Credential Request handling is central to building SSI (Self-Sovereign Identity)-compatible applications. On the verifier side, it involves generating a well-formed request and exposing it via an API. On the holder/wallet side, it requires a presentation submission engine that can match credentials against the request's constraints, create a Verifiable Presentation, and sign it with the holder's cryptographic keys. Libraries like Veramo and Aries Framework provide toolkits to manage this exchange, abstracting the underlying cryptographic complexity.

how-it-works
DECENTRALIZED IDENTITY

How a Credential Request Works

A Credential Request is the formal process by which a verifier asks a holder to present a cryptographically verifiable credential, initiating a selective disclosure of identity data.

A Credential Request is a structured query, often formatted as a Presentation Definition or a Presentation Request, that specifies the type, format, and constraints of the verifiable credentials a user (the holder) must provide. It is issued by a verifier—such as a dApp, service, or institution—to request proof of specific claims, like age, membership, or accreditation. This request is the starting point for any Verifiable Presentation, ensuring the data shared is precisely what is needed for the transaction, minimizing unnecessary data exposure and adhering to data minimization principles.

The request typically includes several key components: the type of credential required (e.g., a KYC credential), the trusted issuers from whom it must be issued, and optional constraints on the claims within it (e.g., birthdate must indicate an age over 21). This structure is defined by standards like the W3C Verifiable Credentials Data Model and Decentralized Identifiers (DIDs). The holder's wallet receives this request, scans their digital wallet for matching credentials, and prepares a response that satisfies all specified conditions without revealing extraneous information.

Upon receiving the request, the holder's identity wallet evaluates which stored credentials fulfill the requirements. The holder then authorizes the creation of a Verifiable Presentation, which packages the relevant credentials—or selective proofs derived from them, like zero-knowledge proofs—and signs it with their DID. This presentation is sent back to the verifier, who cryptographically verifies the signatures of both the holder and the original issuer, as well as the credential's status (e.g., checking for revocation on a revocation registry). This end-to-end flow establishes trust without relying on a central database.

This mechanism is fundamental to user-centric identity. Unlike traditional systems where users surrender full documents, credential requests enable selective disclosure. For example, to prove residency, a user could share a cryptographic proof derived from a government-issued ID that confirms they live in a specific jurisdiction, without revealing their exact address or ID number. This shifts control to the individual and enhances privacy while maintaining cryptographic assurance for the verifier.

In developer terms, implementing a credential request involves integrating libraries like Veramo or Sphereon's SSI-SDK to generate and parse presentation definitions. The verifier's backend creates a request, often as a JSON object following the Presentation Exchange (PEX) specification, and presents it to the user via a QR code or deep link. The user's wallet, acting as a holder agent, processes this request, and the resulting verifiable presentation is validated using DID resolvers and verification methods to complete the trust transaction.

key-features
VERIFIABLE CREDENTIALS

Key Features of a Credential Request

A Credential Request is a formal query from a Verifier to a Holder, specifying the exact data and proof requirements needed for access or verification. It defines the rules of the interaction within a decentralized identity framework.

01

Presentation Definition

The core specification within a Credential Request, formally defining what a Holder must prove. It uses a Presentation Definition object (as per the W3C Presentation Exchange specification) to specify:

  • Required Credential Types (e.g., a UniversityDegreeCredential)
  • Constraints on specific claims (e.g., degree.type must equal "Bachelor")
  • Proof Formats accepted (e.g., JSON Web Token, Data Integrity Proofs)
02

Challenge & Domain Binding

Security mechanisms to prevent replay attacks and ensure the response is intended for this specific request.

  • Challenge (nonce): A unique, random string the Holder must sign in their response, proving the response is fresh and not reused.
  • Domain: A URI (e.g., https://service.example.com) identifying the Verifier, which the Holder must include in their signature, binding the response to this specific requesting party.
03

Selective Disclosure

A privacy-preserving feature enabled by the request format. It allows a Holder to reveal only the specific claims required, not the entire credential. For example, a request for proof of age over 21 can be satisfied with a zero-knowledge proof or a BBS+ signature-derived proof, revealing only the validity of the statement without disclosing the exact birth date.

04

Verifier Identity & Purpose

Metadata establishing the legitimacy of the request.

  • Verifier's Decentralized Identifier (DID): The cryptographic identifier of the entity making the request, allowing the Holder to authenticate the Verifier.
  • Purpose Statement: A human- and machine-readable explanation of why the data is being requested (e.g., "To verify eligibility for a premium service tier"), promoting transparency and user consent.
05

Format Negotiation

The request specifies which credential and proof formats the Verifier's system can process. Common formats include:

  • JWT-VC / JWT-VP (JSON Web Token for Verifiable Credentials/Presentations)
  • SD-JWT (Selective Disclosure for JWT)
  • LDP-VC (Linked Data Proof Verifiable Credentials) This allows interoperability between different wallet and verifier implementations.
06

Response Instructions

Technical details for the Holder's wallet on how to submit the Verifiable Presentation. This typically includes:

  • Response Endpoint (callback URL): The HTTPS endpoint where the signed presentation should be submitted.
  • Response Type: The expected format of the response (e.g., vp_token as defined by OpenID for Verifiable Credentials).
  • State (optional): A session identifier passed from the request to the response, allowing the Verifier to correlate them.
technical-details
CREDENTIAL REQUEST

Technical Details & Message Structure

A Credential Request is a structured message that initiates the process of obtaining a verifiable credential from an issuer.

A Credential Request is a standardized data object, often formatted as a JSON structure, that a holder (or wallet) sends to an issuer to formally ask for a specific verifiable credential. This request contains all necessary metadata and parameters for the issuer to understand what is being requested, including the type of credential, the claims or attributes desired, and the intended recipient's Decentralized Identifier (DID). It serves as the formal, machine-readable initiation of the credential issuance workflow, ensuring both parties agree on the data to be attested before any cryptographic signing occurs.

The structure of a Credential Request is defined by open standards such as the W3C Verifiable Credentials Data Model and protocols like OpenID for Verifiable Credential Issuance (OIDC4VCI). A typical request includes key fields such as credential_definition, which specifies the credential schema and the specific claims, and proof, which contains a cryptographic signature from the holder's DID to authenticate the request. This ensures the request is non-repudiable and ties it to a specific identity, preventing unauthorized parties from requesting credentials on behalf of others.

From a developer's perspective, constructing a Credential Request involves gathering the user's consent, selecting the appropriate credential type from an issuer's credential offer, and generating a JSON Web Token (JWT) or a JSON-LD Proof to sign the request payload. The issuer's endpoint then validates this request—checking the signature, the requested schema, and its own policies—before proceeding to create and sign the corresponding Verifiable Credential. This structured exchange is fundamental to implementing secure, privacy-preserving, and interoperable digital identity systems.

examples
CREDENTIAL REQUEST

Examples & Use Cases

A Credential Request is the formal query for a user's verifiable credentials. These examples illustrate how this core mechanism enables trust and access across Web3 applications.

03

DeFi Credit Scoring

A lending protocol issues a Credential Request for a user's on-chain credit score or transaction history to determine loan eligibility and risk-adjusted interest rates.

  • Example: A user applies for an undercollateralized loan. The protocol requests a CreditScoreCredential from a trusted attestation network.
  • Data Sources: The credential can aggregate data like repayment history, wallet age, and asset diversity from multiple chains.
05

Cross-Platform Reputation

A user's reputation or achievements from one platform (e.g., a gaming DAO) can be ported to another via Credential Requests, enabling composable social graphs.

  • Example: A freelance marketplace requests a ContributorCredential from a developer's GitHub DAO to verify their proven track record.
  • Interoperability: This breaks down data silos, allowing users to build a portable, verifiable identity across Web3.
06

KYC/AML Compliance

Regulated DeFi protocols (ReFi) or exchanges use Credential Requests to obtain verified Know Your Customer (KYC) credentials from specialized issuers, without handling raw personal data.

  • Example: A compliant DEX requests a KYCClaimCredential from a user's identity wallet before allowing high-value trades.
  • Privacy: The user maintains control, sharing only the necessary proof (e.g., "is over 18 and verified") rather than their full ID document.
PROTOCOL COMPARISON

Credential Request vs. Related Concepts

A technical comparison of the Credential Request protocol against related mechanisms for identity and data exchange.

Feature / AttributeCredential Request (W3C VC-API)OAuth 2.0 Authorization RequestOpenID Connect Authentication Request

Primary Purpose

Request a specific Verifiable Credential

Request delegated access to an API resource

Request user authentication and identity claims

Core Data Object

Verifiable Credential

OAuth 2.0 Access Token (JWT/Bearer)

ID Token (JWT)

Verification Method

Cryptographic proof (e.g., digital signature)

Token validation against authorization server

Signature validation and issuer trust

Holder Control & Consent

Explicit, selective disclosure via Presentation Exchange

User consent for scope of access

User consent for sharing requested claims

Data Format Standard

W3C Verifiable Credentials Data Model

RFC 6749, RFC 6750

OpenID Connect Core 1.0

Portability & Sovereignty

True, credentials are held by the user (holder)

False, tokens are bound to specific relying parties

Limited, claims are issued per-session to a specific RP

Typical Use Case

Proving a degree, license, or KYC status

Granting an app access to a user's cloud storage

Logging a user into a website using a social provider

ecosystem-usage
CREDENTIAL REQUEST

Protocols & Ecosystem Usage

A Credential Request is a standardized query for verifiable credentials, enabling applications to request specific proofs from a user's digital wallet without exposing raw personal data. This mechanism is foundational for privacy-preserving identity and access control in decentralized systems.

01

Core Mechanism

A Credential Request is a structured data object, often formatted as JSON, that specifies the verifiable credentials a relying party (e.g., a dApp) requires. It defines the type of credential (e.g., Proof of Humanity, KYC attestation), the issuer (trusted entity), and optional predicates (e.g., 'age > 18'). The user's wallet evaluates this request against their held credentials to generate a cryptographic proof.

02

Use Case: Gated Access

Credential Requests enable token-gating and access control for web3 applications.

  • A DeFi protocol can request a credential proving the user is not a sanctioned entity before allowing a trade.
  • A DAO's governance portal can request a credential proving membership to unlock voting.
  • An NFT community can gate a Discord channel by requesting proof of ownership of a specific NFT, verified via a credential.
03

Technical Standards (W3C VC)

The W3C Verifiable Credentials (VC) Data Model provides the foundation. A request is often implemented as a Presentation Definition within the Decentralized Identity Foundation (DIF)'s Presentation Exchange specification. This standardizes how to request credentials, describe constraints, and format the resulting Verifiable Presentation that is shared back.

04

Wallet Interaction Flow

The user experience follows a clear sequence:

  1. Request: A dApp sends a Credential Request to the user's wallet.
  2. Evaluation: The wallet scans its stored credentials for a match.
  3. Consent: The wallet UI shows the user what is being requested and by whom.
  4. Response: If the user consents, the wallet creates a Verifiable Presentation—a cryptographically signed package containing the required proof—and sends it back to the requester.
05

Privacy-Preserving Features

Credential Requests are designed for data minimization and selective disclosure.

  • Zero-Knowledge Proofs (ZKPs): A user can prove they hold a credential meeting a condition (e.g., 'age > 21') without revealing their birth date or the credential's full contents.
  • DID Association: Requests are tied to a user's Decentralized Identifier (DID), preventing correlation across different services unless explicitly intended by the user.
06

Example: Sign-In with Ethereum (SIWE)

Sign-In with Ethereum (EIP-4361) is a foundational credential request. When a website asks you to 'Sign In with Ethereum,' it sends a request for a specific credential: a cryptographic signature from your Ethereum address. This proves control of the address, which can then be linked to other on-chain or off-chain credentials in your wallet, creating a portable identity layer without passwords.

security-considerations
CREDENTIAL REQUEST

Security & Privacy Considerations

A credential request is a critical security boundary where a user's verifiable credentials are solicited by a verifier. This process must balance proof verification with data minimization and user consent.

01

Data Minimization & Selective Disclosure

A core privacy principle where a verifier requests only the specific attributes needed for verification, not the entire credential. This prevents unnecessary data exposure.

  • Zero-Knowledge Proofs (ZKPs): Allow users to prove a claim (e.g., age > 21) without revealing their birth date.
  • BBS+ Signatures: Enable selective disclosure of specific fields from a signed credential.
  • Example: Proving residency in a jurisdiction by revealing only a country code, not a full address.
02

Verifier Authentication & Trust

The entity requesting credentials must be authenticated to prevent phishing and impersonation attacks. Users need assurance they are sharing data with a legitimate party.

  • Decentralized Identifiers (DIDs): Verifiers can present their own DIDs, allowing users to check their status on a verifiable data registry.
  • Trust Frameworks: Legal or industry-accredited frameworks (e.g., GAIN) define rules for accredited verifiers.
  • Risk: An unauthenticated request can lead to credential theft or fraudulent access.
03

Presentation Request Integrity

The presentation request itself—the data structure specifying what is being asked for—must be tamper-proof and clearly understood by the user's wallet.

  • Cryptographic Nonce: Prevents replay attacks by ensuring a request can only be used once.
  • Human-Readable Descriptions: The request should clearly state the verifier's name and the purpose of the data collection.
  • Standard Formats: Using W3C Verifiable Presentation Request formats ensures interoperability and reduces parsing errors that could lead to data leakage.
04

User Consent & Audit Trail

The credential request process must obtain explicit, informed consent from the user and create a record of the transaction for auditing.

  • Informed Consent UI: Wallets should display what data is requested, by whom, and for what purpose before approval.
  • Verifiable Presentations: The user's response is a signed Verifiable Presentation, providing cryptographic proof of consent for that specific request.
  • Auditability: This creates a non-repudiable log for both parties, crucial for regulatory compliance (e.g., GDPR).
05

Preventing Correlation & Tracking

A major privacy risk is a verifier using credential requests to link a user's activity across different services or sessions.

  • Unlinkable Presentations: Techniques like ZKPs and blinding can prevent a verifier from correlating multiple presentations from the same user.
  • Unique Session Identifiers: Each request/response pair should use unique, ephemeral identifiers not tied to a user's master DID.
  • Pseudonymity: Users may employ different pairwise DIDs for different verifiers to compartmentalize their digital identity.
06

Credential Binding & Replay Protection

Security measures to ensure a presented credential is bound to the legitimate holder and cannot be replayed by an attacker.

  • Holder Binding: Credentials are cryptographically bound to a user's DID key, preventing presentation by anyone else.
  • Challenge-Response: The verifier includes a unique challenge (nonce) in the request that must be signed in the user's response.
  • Expiration Timestamps: Requests and presentations have short validity windows to limit the attack surface for replay.
CREDENTIAL REQUEST

Frequently Asked Questions (FAQ)

Common questions about the process of requesting and verifying credentials within decentralized identity and verifiable credential frameworks.

A Credential Request is a structured message, often using a protocol like W3C Verifiable Credentials or OpenID Connect (OIDC), that a Verifier sends to a Holder to ask for the presentation of specific verifiable credentials. It specifies the type, format, and constraints of the credentials required for access or verification. The request typically includes a challenge (like a nonce) to prevent replay attacks and defines the presentation definition outlining the necessary claims. The holder's wallet or agent processes this request and, if the user consents, constructs a Verifiable Presentation containing the proofs to send back to the verifier.

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