Skip to main content
UIP (Universal Identity Protocol) turns a government-issued credential in a user’s digital wallet — like a US mobile driver’s license in Apple Wallet or Google Wallet — into a verified result your app can trust: their name, that they’re over 21, or a legally meaningful signature on your document. You never build a verification stack, store a document, or touch a wallet SDK. You create a session, hand the user a link, and receive a signed webhook when their wallet completes it on-device.
curl https://api.uip.digital/v1/sessions \
  -H "Authorization: Bearer $UIP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "steps": [ { "primitive": "age_verify", "params": { "min_age": 21 } } ] }'
{
  "id": "sess_abc123",
  "url": "https://uip.digital/s/sess_abc123",
  "status": "created",
  "expires": "2026-06-07T12:34:56Z"
}

Start here

What is UIP?

The model in two minutes: primitives, wallets, and sessions.

Quickstart

Create your first session and receive a verified result end to end.

Primitives

identify, age_verify, sign, light_sign — and how to chain them.

API Reference

Every endpoint, request, and response.

What you can build

Identity verification

Government-attested name, date of birth, country, and document number — no document upload, no OCR, no liveness vendor.

Anonymous age gates

Prove a user is over 18 or 21. You receive only true/false — never the birth date.

Document signatures

A legally meaningful signature bound to a verified identity, with a permanent, tamper-evident audit reference.

Terms acceptance

A lightweight signature over short inline terms — consent you can prove later.

Why it’s different

Government-attested

Claims come from a real issuing authority’s signed credential and are verified cryptographically — not self-asserted, not OCR’d.

Composable

Compose identify, age_verify, and sign into one session. The user completes them in one flow; you get one webhook per step.

Pay per result

You’re charged only for steps that successfully verify — from 0.01.Everynewaccountstartswith0.01**. Every new account starts with **20 in launch credit.