Live · v2.0

Government wallets,
one API.

Compose identity primitives — identify, sign, age-verify, chain them — into government-attested workflows that hold up in court.

Live: Apple Wallet · Google Wallet · US mDL — EUDI, UK & more rolling out

$20 launch credit on signup · no card required

Session
identify
Wallet
Approved
Reference
ses_a8f2c1
Primitives
4+
Wallets
2
Latency
<500ms
Audit
10y+
Capabilities

Primitives that compose.

Three atomic primitives — identify, sign, age-verify — plus two composition shapes — envelope (N signers) and chain (sequential gates). Each one is a single API call, government-attested by the user's wallet, same shape across every jurisdiction we support.

01 / IDENTIFY

Request the exact attributes you need

Declare in the API call what you want: name, country, full date of birth, an age range, or just age_over_18. The user's wallet presents that list, the user approves, and only those signed fields come back. No KYC vendor, no document upload.

  • Pre-selected fields — name, country, address, doc validity, fiscal residency, …
  • Age at any granularity: full DoB, range, or just an age_over_X boolean
  • Selective disclosure by design — the wallet shares only what you requested
$0.01 / call
02 / SIGN

Legally binding signatures

Send a document hash, get back a cryptographic signature produced by the user's wallet. Binding under the legal framework of the signer's country — same call shape regardless of jurisdiction.

  • Government-attested signer identity
  • Hardware-backed key in the user's wallet
  • PAdES / JAdES / XAdES output, court-admissible
from $0.03 / signature
03 / COMPOSE

Cross-jurisdiction envelopes

N signers across N wallets across N countries, in a single envelope. A contract signed by parties in Germany, India, and the US, every signature government-attested — one API call.

  • Multi-party, single envelope
  • Multi-jurisdiction trust roots
  • One audit chain, end-to-end verifiable
from $1.00 / envelope
Signature coverage

Live in the US.
Rolling out, jurisdiction by jurisdiction.

Each country's signatures are governed by that country's law — not a tiered taxonomy. Today: US ESIGN / UETA. Tomorrow: every wallet ecosystem we ship brings its own legal framework with it.

USSGEUGBSAAE
Live now Planned rollout No directives yet

Each new wallet ecosystem brings its own legal framework with it — we don't need to invent or partner separately for the qualified tier in any jurisdiction we serve. When EU integration ships, EUDI Wallet authentication unlocks QES through any EU qualified trust service provider under eIDAS 2.0; no QTSP contract on UIP's end.

Chaining

One call,
many primitives.

Chain is a primitive of primitives — gate any sequence of identify, sign, age-verify, or anything else you can prove with a wallet. UIP's session manager walks the user through every step, fails fast on any miss.

POST /v1/sessions
// Sequential gates. Each must pass before the next runs.
{
  "chain": [
    {
      "primitive": "identify",
      "require": { "country": "US" }
    },
    {
      "primitive": "age_verify",
      "require": { "min": 21 }
    },
    {
      "primitive": "sign",
      "content_hash": "0x4f8a…"
    }
  ]
}
3 signed responses · 1 audit chain · 1 webhook
What the user sees
  1. 01
    identify· country == US

    Wallet returns signed presentation, country attribute proves US issuance.

  2. 02
    age_verify· min: 21

    Wallet returns pass/fail on the age threshold — never reveals the date of birth.

  3. 03
    sign· content_hash

    Wallet produces a hardware-backed signature on the document hash. Done.

Without chaining, you'd glue together three separate sessions, manage your own state machine, and pray no one drops in the middle. With chaining, UIP's session manager handles the sequence, the conditional gates, and the rollback. One user journey. One audit chain. One webhook on success.

How it works

From document
to credential, in minutes.

01

Integrate

Drop UIP into your app. One API call per primitive — identify, sign, age_verify, light_sign — across every government wallet your users already carry.

REST · Webhooks · SDKs
02

Compose

Combine primitives into workflows: multi-party envelopes across jurisdictions, notarized signatures, delegated signing. Each step is government-attested and cryptographically chained.

Apple Wallet · Google Wallet · US mDL
03

Audit

Every transaction produces an append-only audit row signed by UIP. Customers and signers can export a proof zip that re-verifies offline — court-admissible in every major jurisdiction.

PAdES · JAdES · XAdES
Use cases

Workflows you can ship this quarter.

Twenty real workflows already mapped onto UIP primitives. Hover any card to read it.

Audit chain

Permanent, verifiable records

Every primitive call writes an immutable, cryptographically chained row. Re-verifiable offline. Court-admissible by design.

01

Append

Every transaction writes an append-only row containing the wallet-signed presentation hash, the issuer cert chain, an RFC 3161 trusted timestamp, and UIP's own HSM signature.

02

Re-verify offline

Anyone holding the original document and the audit row can re-verify the signature independently — no UIP service needed. Court-admissible by design.

03

Publish chain head

The daily chain-head hash is published publicly, so retroactive tampering is detectable. The audit format is open — even UIP cannot quietly rewrite history.

Pricing

Priced per action. Nothing else.

No subscriptions, no seat licenses, no tiers to negotiate. You pay a small amount for each verification or signature — and nothing when your app is idle.

01 / IDENTIFY

Identify API

$0.01 / verification

Per successful wallet identity response returned to your webhook.

  • Biometric + device attestation
  • Verified name, DOB, country, doc status
  • Sub-500 ms end-to-end response
  • Webhook delivery of signed assertion
02 / AGE VERIFY

Age Verify API

$0.01 / check

Per anonymous age check — the wallet proves the threshold without revealing the birth date.

  • Anonymous — a yes/no, never the birth date
  • Wallet proves the age_over_NN predicate
  • Sub-500 ms end-to-end response
  • Webhook delivery of the signed result
03 / LIGHT SIGN

Light Sign API

$0.02 / signature

Per signed attestation over short inline terms — consent, ToS, disclosures. No document upload.

  • Signs inline terms — consent, ToS, disclosures
  • Wallet-issued, hardware-backed signature
  • Bound to the exact wording shown (WYSIWYS)
  • No file upload — terms up to ~1,000 words
04 / SIGN

Sign API

$0.03 / signature

Per legally binding signature, governed by the signer's jurisdiction (US ESIGN Act and UETA today). Backed by a government-attested wallet identity.

  • Binding under the signer's jurisdictional law (US ESIGN/UETA today)
  • Wallet-issued, hardware-backed signature
  • Precise UTC timestamp per signature
  • Permanent audit chain reference
Start building
Every new account

$20 in API credit on your first business

Register a business for the first time and start with $20 in API credit — roughly 2,000 verifications or 666 signatures. Applies to the first business per user.

Claim your credit

Every call writes a permanent audit reference — queryable any time, at no extra cost, for a full history of who did what and when.

FAQ

Frequently
asked
questions.

Everything you need to know about UIP before you ship your first integration.

Still need help?

Contact us

UIP — the Universal Identity Protocol — is the developer platform for government-attested workflows. You call a primitive (identify, sign, age-verify, light-sign, multi-party envelope), we route to the right government wallet for your user's country, and your webhook receives a cryptographically signed response.

Live now

Government wallets,
one API.

Sessions in, signed wallet responses out. $20 in launch credit when you sign up — no card required.