Documentation preview. These pages target Registryctl v0.15.0, which is not published yet. Public download commands will not work until that release exists. For runnable released instructions, use v0.13.0.
Issue a credential through OpenID4VCI
const url = 'https://example.com/oid4vci/credential';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"credential_configuration_id":"example","credential_identifier":"example","format":"dc+sd-jwt","proof":{"jwt":"example","proof_type":"jwt"},"proofs":{"jwt":["example"]},"vct":"https://example.com"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/oid4vci/credential \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "credential_configuration_id": "example", "credential_identifier": "example", "format": "dc+sd-jwt", "proof": { "jwt": "example", "proof_type": "jwt" }, "proofs": { "jwt": [ "example" ] }, "vct": "https://example.com" }'Materializes at most one dc+sd-jwt credential from the immutable registry-backed evaluation transaction authorized before the issuer-initiated offer. The access token supplies the transaction nonce, holder proof must use EdDSA with did:jwk, and an exact retry returns the cached response without another Relay call or signature. Source-free, delegated, and legacy evaluations are not issuable. Error responses use the OpenID4VCI error envelope, not RFC 9457 Problem Details.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Example
dc+sd-jwtobject
Example
jwtobject
Responses
Section titled “Responses”Credential response
object
object
Example
{ "credential": "eyJhbGciOiJFZERTQSIsInR5cCI6ImRjK3NkLWp3dCJ9.payload.signature~disclosure~", "format": "dc+sd-jwt"}Invalid credential request, proof, or type
object
Example
{ "error": "invalid_proof", "error_description": "credential proof is invalid"}Invalid credential access token
object
Example
{ "error": "invalid_token", "error_description": "credential access token is invalid"}Credential request is denied
object
Example
{ "error": "access_denied", "error_description": "credential request is denied"}Credential request is rate limited
object
Example
{ "error": "temporarily_unavailable", "error_description": "credential request is rate limited"}OpenID4VCI issuer failed
object
Example
{ "error": "server_error", "error_description": "credential issuer failed"}