Skip to Content
DocsDidcomm ProtocolsEzrah OpenID For VC

Ezrah DIDComm Protocol: OpenID4VC Protocols

Ezrah supports the DIDComm implementation of two major OpenID for Verifiable Credential Protocols:

  • openid4vcp: Requesting Verifiable Credentials
  • openid4vcp-presentation: Presenting Verifiable Credentials

This document outlines how to initiate and interact with these flows using Ezrah’s DIDComm protocol payload structure.


Protocol Types

openid4vcp

Used by an issuer (e.g., organization) to initiate a credential issuance process.

Example Payload

{ type: "https://docs.ezrah.co/docs/didcomm-protocols/openid4vcp", id: verificationModel.id, from: organization.identifier?.did, body: { goal_code: `Login with ${organization.name}`, goal: verificationModel.purpose, verification_model: verificationModel.id, source: organization.name, }, attachments: [ { media_type: "application/json", data: { json: { presentation: "string" } } } ], }
Fields
FieldDescription
typeProtocol URI for openid4vcp
idUnique identifier for the verification request, typically the verificationModel.id
fromDID of the requesting organization
body.goal_codeDisplayed message, e.g. Login with Acme Inc.
body.goalPurpose of the verification (e.g., login, KYC, registration)
body.verification_modelReference to the verification model
body.sourceHuman-readable name of the organization
attachmentsContains the presentation definition required for issuance

openid4vcp-presentation

Used by a holder to present credentials in response to a request.

Expected Behavior

Upon receiving a openid4vcp request:

  • A wallet or agent will interpret the presentation definition and construct a Verifiable Presentation.
  • The holder responds with a openid4vcp-presentation message.

Example Payload (Conceptual)

{ type: "https://docs.ezrah.co/docs/didcomm-protocols/openid4vcp-presentation", id: "unique-uuid-id", from: holderDid, to: verifierDid, body: { }, attachments: [ { format: "application/vc+ld+json", data: { base64: base64urlEncode(presentation) } } ] }

Compatibility


Use Cases

  • Decentralized Login
  • Reusable KYC
  • Verifiable Proof of Membership
  • Onboarding Automation
  • Trustless Access Control
  • Credential Authentication

Last updated on