Live today
Apple Wallet
US mobile driver’s license (mDL), over the W3C Digital Credentials API in Safari.
Google Wallet
US mobile driver’s license (mDL), over the W3C Digital Credentials API in Chrome.
identify, age_verify, sign, light_sign).
How the wallet flow works
UIP uses the W3C Digital Credentials API (DC_API): the browser, not UIP, talks
to the wallet on the device.
Request
UIP builds an OpenID4VP request (which fields, a per-request encryption key, a
fresh nonce) and the hosted page hands it to
navigator.credentials.get().Present
The user approves in their wallet. The wallet returns an encrypted, signed
response to the page, which relays it to UIP.
Verify
UIP decrypts it server-side and verifies it
cryptographically before emitting your webhook.
The capability matrix
Never hard-code which wallet supports which primitive — read it at runtime. From your backend, call the authenticatedGET /v1/catalog, which
returns wallet capabilities plus the primitives the platform supports.
The hosted page uses the public, no-auth GET /v1/wallets
(the user’s browser has no API key). Both derive the per-primitive booleans from the
live adapters, so they can’t drift from reality.