A credential definition is an issuer template. It tells wallets what kind of credential you issue and which claim paths can appear in it. Definitions move in one direction: Published definitions are immutable. Create a new version when wallet-visible fields need to change.
Credential-definition lifecycle methods (createDraft, update, publish, archive, and lifecycle list filters) ship in @authbound/server 0.3.0 and later. Use create() when you want a published definition immediately, or the draft workflow when staging is intentional.

Dashboard builder

The dashboard builder starts from a template or custom definition, then walks through Details, Fields, Appearance, and Review. Check the wallet and API previews, save a draft while editing, and publish when ready. Issuance navigation requires enablement for your organization. A new organization may not have it enabled. Ask your Authbound contact if the Credentials section is absent.

Create and publish immediately

POST /v1/issuer/credential-definitions create sends explicit published intent. A published definition must include claims and pass publish-readiness validation.
Direct REST callers send "lifecycleStatus": "published". If the field is omitted, the backend creates a draft.

Work in a draft

Use a draft when the definition is not ready for issuance.
An unready publish returns credential_definition_not_publishable with bounded details.issues entries. Reusing a publish idempotency key for a different definition returns HTTP 409.

List definitions

GET /v1/issuer/credential-definitions
REST callers use ?lifecycle_status=draft, published, or archived. Omitting the filter returns the active view, which can include owned drafts. Global definitions are visible only while active and published; archived results are project-owned.

Retrieve and update a draft

Update accepts drafts only. Published and archived definitions return HTTP 409 with published_credential_definition_immutable or archived_credential_definition_immutable. IDs from another project or environment return the same 404 response as an absent ID.

Archive a definition

POST /v1/issuer/credential-definitions/{credentialDefinitionId}/archive
Archiving removes a definition from new issuance resolution. Existing issuance records remain auditable.

Wallet-visible fields and management metadata

Wallet-visible fields include title, aliases, rendering, and claim display names. Definition metadata is authenticated management metadata; wallets do not discover it, and it is not embedded in issued credentials. Keep all these fields free of secrets and unnecessary personal data. Put user-specific data in issuance claims. Definition metadata accepts JSON values with runtime limits: eight levels, 1,024 total nodes, 128 entries per object or array, and 2,048 characters per string. Prototype-related keys are rejected. Authbound’s structural issuer metadata is never returned through the public metadata field.