Authbound issuance lets your backend turn trusted business data into wallet credentials. The shortest path is: define the credential once, map one user record into claims, and create an OpenID4VCI wallet offer.

Flow

1

Create a credential definition

Define the credential type, wallet display metadata, format, and claim paths.
2

Map your application data

Convert a trusted record from your system into the claim object expected by the definition.
3

Create a credential offer

Call authbound.openId4Vc.issuance.createOffer from your server.
4

Show the wallet handoff

Return offerUri for a mobile link and offerQrUri for a QR code.

Initialize the server client

Create a definition

A credential offer always references an existing credential definition by credentialDefinitionId (or vct). If the definition does not exist for the project behind your secret key, the offer call returns 404 credential_definition_not_found. Use this idempotent helper so the same code works on first run and on every subsequent run.
If two processes run this helper at the same time, the slower create fails with HTTP 409 and code credential_definition_conflict. Catch that and call get again.

Create an offer

Show the offer to the user

Use offer.offerQrUri for a QR code and offer.offerUri for a mobile wallet link.
The createOffer response is a wallet handoff, not the credential itself. The credential is only issued to the wallet after it redeems the offer. Track status with authbound.openId4Vc.issuance.get(offer.id) and act on credential_issued, failed, or expired.

Next

Next.js issuance guide

App Router server actions, ensure-definition helpers, and offer rendering.

Node.js issuance guide

A complete runnable Node server.

Credential definitions

Define the credential type and claim paths your business will issue.

Credential offers

Lifecycle, transaction codes, cancellation, and status polling.