L IntegrAuth Lab

← All practicals

P46

Run the real credential issuance protocol

Create an offer, exchange the pre-authorized code, prove your key — and watch a cnf-bound credential land in your wallet.

  1. 1

    On the Verifiable Credentials lab, create an OpenID4VCI credential offer.

    A real issuer never hands a wallet the credential directly — it hands over a pre-authorized_code + PIN, each stored ONLY as a SHA-256 hash, single-use, short-lived.

  2. 2

    Run the wallet: exchange the code (+ PIN) for an access token, mint a holder keypair, and build a signed proof.

    The token endpoint mints a fresh c_nonce alongside the access token; the credential endpoint will demand a proof JWT naming that EXACT nonce — a stale or foreign one is rejected outright, the core anti-replay defense.

  3. 3

    Watch the credential land in your wallet and inspect its cnf claim.

    Unlike the one-click shortcut above, this credential is cryptographically bound to the specific key that proved possession — cnf: { jwk } — exactly RFC 7800's confirmation-key mechanism.

Do it

Do the steps above on the lab page, then come back and check your progress.

Open the lab →

🩻 X-ray — what actually happened

Your own insert-only audit trail — the real server events, sanitized (never a secret), each linked to the lesson that explains it.