Skip to main content

What is a Wallet Unit Attestation?

A Wallet Unit Attestation (WUA) is how a Wallet Provider vouches, to an Issuer or a Verifier, for two things about a user's wallet:

  1. that the wallet instance is genuine and in good standing, and
  2. that the keys it will bind a credential to are held in secure hardware (a WSCD, Wallet Secure Cryptographic Device).

Following EU ARF 2.9.0 and its Topic C discussion, the WUA is made of two parts:

PartWhat it attestsMedia type
WIA (Wallet Instance Attestation)The wallet instance itselfoauth-client-attestation+jwt
KA (Key Attestation)The public keys held in the WSCDkey-attestation+jwt
WUA = WIA ( the wallet instance ) + KA ( the keys in the WSCD )

During issuance, the Wallet Unit sends a key proof of possession (openid4vci-proof+jwt) that signs with an attested private key and carries the KA inside its header, so proof of possession and key attestation travel together. The Issuer verifies both, then binds the credential to that key.

This playground lets you build and decode each of these, and see precisely where OpenID4VCI v1.0 and TS3 v1.5 (the EUDI profile) diverge.

Illustrative aid

Everything here is generated in your browser for teaching. The sample certificates are self-signed (subject O=iGrant.io), not trust anchors, and the keys are freshly generated each visit. The tokens are really signed with ES256 so they decode and verify against the embedded keys, but nothing here is normative.

Where to go next