Skip to main content
Version: v0.25.0 (Latest)

Credential Designs: EuPid and Mdl

A credential design defines a credential type: its format bindings, its claims with display labels, and per-claim policy such as selective disclosure. This walkthrough creates two designs through the credential-design API (API reference):

  • EuPid, a European personal identity credential in dc+sd-jwt format, bound by its verifiable credential type (vct) and credential configuration id.
  • Mdl, a mobile driving licence in mso_mdoc format, bound by the ISO 18013-5 doctype org.iso.18013.5.1.mDL.

EuPid (SD-JWT)

SD-JWT claims carry an sdPolicy. Claims marked ALWAYS are selectively disclosable: the holder chooses whether to reveal them at presentation time. Here family name, given name, and issuing country are disclosable while date of birth and nationality are always present:

Create EuPid SD-JWT design

Endpoint: POST /api/credential-design/v1/designs/credentials

Captured response: 201 Created

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

The display layer is attached separately. Upload the EuPid logo asset, create localized render variants, and attach those variants to the credential design:

Upload EuPid logo asset

Endpoint: POST /api/credential-design/v1/designs/credentials/00000000-0000-4000-8000-000000000000/assets/en/LOGO

Captured response: 201 Created

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

Create EuPid render variant (en)

Endpoint: POST /api/credential-design/v1/designs/render/variants

Captured response: 201 Created

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

Create EuPid render variant (nl)

Endpoint: POST /api/credential-design/v1/designs/render/variants

Captured response: 201 Created

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

Attach render variants to EuPid design

Endpoint: PUT /api/credential-design/v1/designs/credentials/00000000-0000-4000-8000-000000000000

Captured response: 200 OK

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

Mdl (ISO mdoc)

mdoc claims are namespace-qualified: every claim path starts with the ISO 18013-5 namespace. The portrait is transported as base64 image data and driving privileges as a structured array:

Create Mdl mdoc design

Endpoint: POST /api/credential-design/v1/designs/credentials

Captured response: 201 Created

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

The Mdl uses the same asset and render-variant flow:

Upload Mdl logo asset

Endpoint: POST /api/credential-design/v1/designs/credentials/00000000-0000-4000-8000-000000000000/assets/en/LOGO

Captured response: 201 Created

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

Create Mdl render variant (en)

Endpoint: POST /api/credential-design/v1/designs/render/variants

Captured response: 201 Created

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

Attach render variant to Mdl design

Endpoint: PUT /api/credential-design/v1/designs/credentials/00000000-0000-4000-8000-000000000000

Captured response: 200 OK

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

Listing designs

List credential designs

Endpoint: GET /api/credential-design/v1/designs/credentials

Captured response: 200 OK

This captured endpoint is shown from the E2E run; it is not mapped to one of the generated EDK REST API reference pages.

Live against connected environment

Connect an environment to rewrite this call to real service bases and run it.

The issuer service uses the bound credentialConfigurationId values to publish entries in credential_configurations_supported. For SD-JWT VC credentials, the bound vct also drives the hosted VCT metadata; the render variants and assets above are what wallets use to display the branded credential.

Next, create the status list that revocation will use.