The OID4VCI specification allows you to define credential configurations. These configuration 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

{
    "given_name": {
        "display": [
            {
                "name": "Given Name",
                "locale": "en-US"
            },
            {
                "name": "Vorname",
                "locale": "de-DE"
            }
        ]
    },
    "family_name": {
        "display": [
            {
                "name": "Surname",
                "locale": "en-US"
            },
            {
                "name": "Nachname",
                "locale": "de-DE"
            }
        ]
    },
    "email": {},
    "phone_number": {},
    "address": {
        "street_address": {},
        "locality": {},
        "region": {},
        "country": {}
    },
    "birthdate": {},
    "is_over_18": {},
    "is_over_21": {},
    "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 You can also see that from these claims only the birth_date claim is mandatory. This means that the issuer will always include this claim in the credential. For the other claims it depends on the issuer implementation. If a wallet does not request the inclusion of these claims the issuer might not include them in the issued credential. In reality we notice that most issuers (including ours for now) simply issues all claim regardless and thus this feature is not really used much at present.

The claims: object

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