Protocol registry
Why there is a protocol registry
Section titled “Why there is a protocol registry”The Digital Credentials API is designed to be agnostic to:
- credential formats (for example, JSON-LD, JWT-based formats, mdoc)
- exchange protocols (presentation)
- issuance protocols (issuance)
Instead of standardizing one protocol, the API standardizes a single browser-mediated entry point. Protocols are then identified and selected via a protocol identifier.
A protocol identifier is a string used in each request object:
{ "protocol": "example-protocol", "data": {}}What a protocol must define
Section titled “What a protocol must define”To be usable through the DC API, a protocol is expected to define:
- a request structure for
data(presentation and/or issuance) - a response structure for
DigitalCredential.data - validation rules for these structures
For presentation protocols (used with navigator.credentials.get()), the registry inclusion criteria include support for encrypted responses, and requiring encryption when responses contain personally identifiable information.
Registry status
Section titled “Registry status”The W3C specification includes a registry section and describes a change process. The registry itself is expected to evolve, and the set of required protocols may change over time.
Treat protocol identifiers as part of an interoperability contract between:
- the website
- the user agent
- the wallet
How this relates to Vidos
Section titled “How this relates to Vidos”Vidos uses protocol identifiers when integrating OpenID4VP with the Digital Credentials API.
In Vidos shared types, the OpenID4VP DC API profile protocol identifiers include:
openid4vp-v1-unsignedopenid4vp-v1-signedopenid4vp-v1-multisigned
These identifiers guide how an OpenID4VP authorization request is packaged into the data field, and how the wallet response is interpreted.
For details, see Digital Credentials API integration (OpenID4VP).