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:
| Format | Description |
|---|---|
dc+sd-jwt | IETF SD-JWT Verifiable Credentials |
jwt_vc_json | W3C Verifiable Credentials (JWT) |
mso_mdoc | ISO 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
- Issue a Credential – Try issuing a credential using a ready-made default profile
- Issuer Profiles Configuration – The full field reference for writing your own profiles
- Credential Offers – Create offers from your profiles
