Skip to main content
UIP’s reach grows one government wallet at a time. New wallets are prioritized by how quickly and cheaply they can come online — free and openly reachable rails ship first, paid or jurisdiction-gated ones later. Each new wallet is “just another adapter” behind the same API you already use.
This is a forward-looking plan, not a commitment of dates. The hard part is rarely the code — it’s eligibility: some national systems gate access by where you’re legally incorporated. Live, authoritative support is always the capability matrix at GET /v1/wallets.

Stack 1 — Active today

🇺🇸 Apple Wallet — US mDL

ISO 18013-5 mobile driver’s license over the W3C Digital Credentials API. All primitives.

🇺🇸 Google Wallet — US mDL

Same ISO mdoc, verified identically. All primitives.
WalletRegionPrimitivesCost to you
Apple Wallet · Google Wallet🇺🇸 United Statesidentify · age_verify · sign · light_signPer UIP pricing only

Stack 2 — Coming soon

Ordered by how soon and how cheaply each can come online (free/open first):
#WalletRegionPrimitives (planned)Access & cost
1Singpass — sgID🇸🇬 Singaporeidentify · age_verifyFree, openly reachable. Native over-18/over-21 flags. The first international rail.
2EUDI Wallet🇪🇺 European Unionidentify · age_verify · signGovernment wallet over OpenID4VP; verification against EU trust lists. Rolls out as member states issue.
3UAE PASS🇦🇪 UAEidentify · signNational government wallet. Planned.
4Nafath🇸🇦 Saudi ArabiaidentifyNational government identity. Planned.
5DigiLocker🇮🇳 Indiaidentify · age_verify · sign (eSign)Gated: requires an India-registered entity; eSign is paid (~₹12–15/signature). Under evaluation.
Why Singpass first? sgID is free, reachable by a foreign company without a local entity, and exposes privacy-preserving age flags that map cleanly onto age_verify. Lowest barrier, lowest cost — so it leads.

Access realities (why some rails wait)

Not every national system is open to a private, foreign company. These aren’t wallet limitations — they’re eligibility ones, and they span a spectrum from “delayed” to “closed”. We surface them honestly rather than promising rails we can’t ship:
  • 🇬🇧 United Kingdom — delayed by regulation, not closed. The GOV.UK Wallet exists, but it isn’t yet open to private verifiers like UIP. We’re on hold until the UK government opens the program to companies — a when, not an if. (Distinct from the hard walls below.)
  • 🇮🇳 India — DigiLocker requires an Indian legal entity. Gated until that exists; eSign remains paid via a licensed provider regardless.
  • 🇧🇷 Brazil — gov.br is not integrable by a private/foreign company at all (restricted to public-sector bodies by law — a hard wall, not a delay). Brazilian coverage, if it comes, would run through private KYC bureaus + ICP-Brasil signing — a different rail, not a government wallet.

Transport

Today’s wallets use the W3C Digital Credentials API (DC_API) — the browser’s native wallet flow. The national wallets above are OIDC redirect identity providers instead; UIP is adding an OIDC_REDIRECT transport (a browser redirect to the national IdP and back). It’s the one shared prerequisite that unlocks the whole international stack — and once it lands, your API surface is unchanged: same POST /v1/sessions, same webhooks.

Primitives ahead

envelope — multi-party signing

Today’s primitives are single-subject. envelope will orchestrate N distinct signers (Alice → Bob → Carol), each with their own verified identity, over one shared document — for multi-party agreements and cross-jurisdiction signing.

More disclosure blocks

As wallets expose more attested fields, identify gains more blocks — requested the same way you request first_name today.

Build on what's live

US mDL via Apple & Google Wallet is production-ready now. Start there; new wallets arrive behind the same API.