OpenID Metadata
Via the openid-metadata config, the verifier service can be configured to expose details such as verifier name and logo in a standardized way with other services such as digital wallets. These services can then use this information to display a human-readable verifier name and logo to the end-user during credential exchange.
Learn more about the client_name and logo_uri info exposure in the OAuth 2.0
standard here.
The configured info will be exposed via the public
endpoint /.well-known/openid-configuration.
The new OpenID4VP 1.0 specification introduces additional objects to the client metadata object. These are:
jwks: OPTIONAL. A JSON Web Key Set, as defined in RFC7591, that contains one or more public keys, such as those used by the Wallet as an input to a key agreement that may be used for encryption of the Authorization Response see Section 8.3, or where the Wallet will require the public key of the Verifier to generate a Verifiable Presentation. This allows the Verifier to pass ephemeral keys specific to this Authorization Request. Public keys included in this parameter MUST NOT be used to verify the signature of signed Authorization Requests. Each JWK in the set MUST have a kid (Key ID) parameter that uniquely identifies the key within the context of the request.encrypted_response_enc_values_supported: OPTIONAL. Non-empty array of strings, where each string is a JWE RFC7516 enc algorithm that can be used as the content encryption algorithm for encrypting the Response. When a response_mode requiring encryption of the Response (such as dc_api.jwt or direct_post.jwt) is specified, this MUST be present for anything other than the default single value of A128GCM. Otherwise, this SHOULD be absent.vp_formats_supported: REQUIRED when not available to the Wallet via another mechanism. As defined in Section 11.1.
Get OpenID Metadata
Endpoint: /v1/{target}/verifier-service-api/configuration/openid-metadata/view | API Reference
Example Request
curl -X 'GET' \
'https://{orgID}.enterprise-sandbox.waltid.dev/v1/{target}/verifier-service-api/configuration/view' \
-H 'Authorization: Bearer {yourToken}' \
-H 'Content-Type: application/json'
Path Parameters
orgID: - When performing operations within an organization, it is essential to use the organization's Base URL or another valid host alias. For example, if your organization is namedtest, your default Base URL will betest.enterprise-sandbox.walt.devwhen using the sandbox environment.target: resourceIdentifier - The target indicates the organization + tenant + verifier service from which to receive the configuration({organizationID}.{tenantID}.{verifierServiceID}), e.g.waltid.tenant1.verifier1
Example Response
200- metadata retrieved successfully.
{
"baseUrl": "http://org.enterprise.localhost:3000",
"clientId": "did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiU05JZ1ItTHZzSEUtNkhUUGxYYUpQVDVubHRZMFpqZlA0VkpTWEwzQ2ZkMCIsIngiOiJIVWM1ZHY1eFREV3VMVmZQcFdvVXBWTjZ1QTNJNzBsVzVnNEhoMG5VaDQ0In0",
"clientMetadata": {
"client_name": "walt.id Enterprise Verifier",
"logo_uri": "https://cdn.walt.id/verifier/logo.png",
"jwks": {
"keys": [
{
"kid": "did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiU05JZ1ItTHZzSEUtNkhUUGxYYUpQVDVubHRZMFpqZlA0VkpTWEwzQ2ZkMCIsIngiOiJIVWM1ZHY1eFREV3VMVmZQcFdvVXBWTjZ1QTNJNzBsVzVnNEhoMG5VaDQ0In0",
"kty": "EC",
"crv": "P-256",
"x": "IVc5dv5xEDWtUFVfpPowUoVn6uASJ70lW5g3Hh0nUh44"
}
]
},
"encrypted_response_enc_values_supported": [
"A128GCM"
],
"vp_formats_supported": [
"vp_jwt"
]
}
}
baseUrlString: The base URL of the verifier.clientIdString: The client ID of the verifier.clientMetadataObject: The client metadata of the verifier.client_nameString: Human-readable string name of the verifier.logo_uriString: URL string that references a logo for the verifier.jwksObject: The JSON Web Key Set of the verifier.encrypted_response_enc_values_supportedArray: The encrypted response enc values supported by the verifier.vp_formats_supportedArray: The VP formats supported by the verifier.
401- Invalid authentication
Update OpenID Metadata
Endpoint: /v1/{target}/verifier-service-api/configuration/update | API Reference
Example Request
curl -X 'PUT' \
'https://{orgID}.enterprise-sandbox.waltid.dev/v1/{target}/verifier-service-api/configuration/openid-metadata/update' \
-H 'Authorization: Bearer {yourToken}' \
-H 'Content-Type: application/json' \
-d '{
"baseUrl": "http://org.enterprise.localhost:3000",
"clientId": "did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiU05JZ1ItTHZzSEUtNkhUUGxYYUpQVDVubHRZMFpqZlA0VkpTWEwzQ2ZkMCIsIngiOiJIVWM1ZHY1eFREV3VMVmZQcFdvVXBWTjZ1QTNJNzBsVzVnNEhoMG5VaDQ0In0",
"clientMetadata": {
"client_name": "walt.id Enterprise Verifier",
"logo_uri": "https://cdn.walt.id/verifier/logo.png"
"jwks": {
"keys": [
{
"kid": "did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiU05JZ1ItTHZzSEUtNkhUUGxYYUpQVDVubHRZMFpqZlA0VkpTWEwzQ2ZkMCIsIngiOiJIVWM1ZHY1eFREV3VMVmZQcFdvVXBWTjZ1QTNJNzBsVzVnNEhoMG5VaDQ0In0",
"kty": "EC",
"crv": "P-256",
"x": "IVc5dv5xEDWtUFVfpPowUoVn6uASJ70lW5g3Hh0nUh44"
}
]
},
"encrypted_response_enc_values_supported": [
"A128GCM"
],
"vp_formats_supported": [
"vp_jwt"
]
}'
}'
Path Parameters
orgID: - When performing operations within an organization, it is essential to use the organization's Base URL or another valid host alias. For example, if your organization is namedtest, your default Base URL will betest.enterprise-sandbox.walt.devwhen using the sandbox environment.target: resourceIdentifier - The target indicates the organization + tenant + verifier service in which to update the configuration({organizationID}.{tenantID}.{verifierServiceID}), e.g.waltid.tenant1.verifier1
Body
{
"client_name": "walt.id Enterprise Verifier",
"logo_uri": "http://cdn.walt.id/verifier/logo.png"
"jwks": {
"keys": [
{
"kid": "did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiU05JZ1ItTHZzSEUtNkhUUGxYYUpQVDVubHRZMFpqZlA0VkpTWEwzQ2ZkMCIsIngiOiJIVWM1ZHY1eFREV3VMVmZQcFdvVXBWTjZ1QTNJNzBsVzVnNEhoMG5VaDQ0In0",
"kty": "EC",
"crv": "P-256",
"x": "IVc5dv5xEDWtUFVfpPowUoVn6uASJ70lW5g3Hh0nUh44"
}
]
}
"encrypted_response_enc_values_supported": [
"A128GCM"
],
"vp_formats_supported": [
"vp_jwt"
]
}
Body Parameters
name(optional) String: Human-readable string client_name of the verifier.logo_uri(optional) String: URL string that references a logo for the verifier.jwks(optional) Object: The JSON Web Key Set of the verifier.encrypted_response_enc_values_supported(optional) Array: The encrypted response enc values supported by the verifier.vp_formats_supported(optional) Array: The VP formats supported by the verifier.
Example Response
200- metadata updated successfully.
{
"baseUrl": "http://org.enterprise.localhost:3000",
"clientId": "did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiU05JZ1ItTHZzSEUtNkhUUGxYYUpQVDVubHRZMFpqZlA0VkpTWEwzQ2ZkMCIsIngiOiJIVWM1ZHY1eFREV3VMVmZQcFdvVXBWTjZ1QTNJNzBsVzVnNEhoMG5VaDQ0In0",
"clientMetadata": {
"client_name": "walt.id Enterprise Verifier",
"logo_uri": "https://cdn.walt.id/verifier/logo.png",
"jwks": {
"keys": [
{
"kid": "did:jwk:eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoiU05JZ1ItTHZzSEUtNkhUUGxYYUpQVDVubHRZMFpqZlA0VkpTWEwzQ2ZkMCIsIngiOiJIVWM1ZHY1eFREV3VMVmZQcFdvVXBWTjZ1QTNJNzBsVzVnNEhoMG5VaDQ0In0",
"kty": "EC",
"crv": "P-256",
"x": "IVc5dv5xEDWtUFVfpPowUoVn6uASJ70lW5g3Hh0nUh44"
}
]
},
"encrypted_response_enc_values_supported": [
"A128GCM"
],
"vp_formats_supported": [
"vp_jwt"
]
}
}
401- Invalid authentication
