The OID4VCI specification allows you to define credential configurations. These configurations can optionally contain branding as explained in the Credential Branding section.

An important part of the credential configuration are the claims. This is basically a definition per credential format on what properties (claims should be present in the credential), whether they are required and how they should be displayed in the language of choice. The latter means that locales are supported.

Claim Name Labeling Beyond the overall credential name, individual claims within the credential can include locale-specific display names. For instance, if the credential includes a claim such as “firstName,” it can be displayed as “First Name” in English, “Nombre” in Spanish, or “Prénom” in French, in accordance with the corresponding display configuration.

Credential format specific

The claims are credential format specific, but contain elements and objects that are the same across the formats. An example is how claims are identified. For ISO 18013-5 Mdocs for instance those will be namespaces, whilst for SD-JWTs they are the claims which can be nested objects/claims.

IETF SD-JWT

Below you can see an example of a SD-JWT. As you can see the claims can have display objects, but also sub object like address.country

You can clearly see that the attribute identified as given_name will be displayed as Given Name if locale en-US is being used, and Vorname if locale de-DE is being used

The claims: object

{
  "claims": [
    {
      "path": ["given_name"],
      "display": [
        {
          "name": "Given Name",
          "locale": "en-US"
        },
        {
          "name": "Vorname",
          "locale": "de-DE"
        }
      ]
    },
    {
      "path": ["family_name"],
      "display": [
        {
          "name": "Surname",
          "locale": "en-US"
        },
        {
          "name": "Nachname",
          "locale": "de-DE"
        }
      ]
    },
    {
      "path": ["email"]
    },
    {
      "path": ["phone_number"]
    },
    {
      "path": ["address"],
      "display": [
        {
          "name": "Address",
          "locale": "en-US"
        }
      ]
    },
    {
      "path": ["address", "street_address"]
    },
    {
      "path": ["address", "locality"]
    },
    {
      "path": ["address", "region"]
    },
    {
      "path": ["address", "country"]
    },
    {
      "path": ["birthdate"]
    },
    {
      "path": ["is_over_18"]
    },
    {
      "path": ["is_over_21"]
    },
    {
      "path": ["is_over_65"]
    }
  ]
}

ISO Mdoc

Below you can see an example of an ISO Mdoc. As you can see the claims all start with the namespace org.iso.18013.5.1

You can clearly see that the attribute identified as given_name will be displayed as Given Name if locale en-US is being used, and 名前 if locale ja-JP is being used The birth_date claim has "mandatory": true, which has different meanings depending on context:

  1. In Issuer Metadata (credential_configurations_supported): When mandatory: true, it means the Issuer will always include this claim in issued credentials (unless overridden by profile rules).

  2. In Authorization Details (Authorization Request): When mandatory: true, it means the Wallet will accept the credential only if it contains that claim. The Wallet is indicating a requirement.

These are related but distinct semantics - the first is about issuer behavior, the second is about wallet acceptance criteria.

For ISO mDL (mdoc) format, claims path pointers contain exactly two string elements:

  1. The namespace (e.g., "org.iso.18013.5.1")
  2. The data element identifier (e.g., "given_name")

The claims: object

{
  "claims": [
    {
      "path": ["org.iso.18013.5.1", "given_name"],
      "display": [
        {
          "name": "Given Name",
          "locale": "en-US"
        },
        {
          "name": "名前",
          "locale": "ja-JP"
        }
      ]
    },
    {
      "path": ["org.iso.18013.5.1", "family_name"],
      "display": [
        {
          "name": "Surname",
          "locale": "en-US"
        }
      ]
    },
    {
      "path": ["org.iso.18013.5.1", "birth_date"],
      "mandatory": true
    },
    {
      "path": ["org.iso.18013.5.1.aamva", "organ_donor"]
    }
  ]
}