Overview

Credential Profiles are the foundation of the Issuer2 API's profile-based architecture. A profile defines all the default values needed to issue a specific type of credential, making it easy to create consistent credential offers without repeating configuration.

What is a Credential Profile?

A credential profile is a reusable configuration that contains:

  • Credential Configuration ID – The type of credential this profile issues (must match a supported credential type in your issuer metadata)
  • Issuer Identity – The DID, key, and/or X.509 certificate chain used to sign credentials
  • Credential Data – Default data template for the credential
  • Data Mapping – Dynamic data functions for populating credential fields
  • ID Token Claims Mapping – Mapping from external IdP claims to credential data (for authorization code flow)
  • mDoc Data Mapping – Type conversions for mDoc/mDL credential fields
  • Selective Disclosure – Selective disclosure configuration for SD-JWT credentials
  • Notifications – Webhook settings for issuance events

Profiles are defined in the issuer2-profiles.conf configuration file and loaded when the service starts. For the full field reference, examples for every credential format, and how to write and reload the file, see Issuer Profiles Configuration.

The waltid-identity repository ships with a set of ready-to-use default profiles — you don't need to write your own to issue your first credential. See Credential Issuance to try one immediately.

Supported Credential Formats

Profiles can be created for any credential format supported:

FormatDescription
dc+sd-jwtIETF SD-JWT Verifiable Credentials
jwt_vc_jsonW3C Verifiable Credentials (JWT)
mso_mdocISO 18013-5 Mobile Documents (mDL)

Reading Profiles via the API

Once configured, profiles are available to read (but not create or edit) via the API:

List All Profiles

curl -X GET 'http://localhost:7002/issuer2/profiles'

Get a Specific Profile

curl -X GET 'http://localhost:7002/issuer2/profiles/{profileId}'

Use this to confirm a profile you added to issuer2-profiles.conf was picked up correctly after restarting the service.

Next Steps

Last updated on July 1, 2026