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.

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.