> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uip.digital/llms.txt
> Use this file to discover all available pages before exploring further.

# UIP Documentation

> Government-attested identity, age checks, and document signatures — from the user's own digital wallet, in one small REST API.

**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.

```bash theme={null}
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 } } ] }'
```

```json theme={null}
{
  "id": "sess_abc123",
  "url": "https://uip.digital/s/sess_abc123",
  "status": "created",
  "expires": "2026-06-07T12:34:56Z"
}
```

## Start here

<CardGroup cols={2}>
  <Card title="What is UIP?" icon="circle-question" href="/what-is-uip">
    The model in two minutes: primitives, wallets, and sessions.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Create your first session and receive a verified result end to end.
  </Card>

  <Card title="Primitives" icon="cube" href="/core-concepts/primitives">
    `identify`, `age_verify`, `sign`, `light_sign` — and how to chain them.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/introduction">
    Every endpoint, request, and response.
  </Card>
</CardGroup>

## What you can build

<CardGroup cols={2}>
  <Card title="Identity verification" icon="id-card">
    Government-attested name, date of birth, country, and document number — no
    document upload, no OCR, no liveness vendor.
  </Card>

  <Card title="Anonymous age gates" icon="user-shield">
    Prove a user is over 18 or 21. You receive only `true`/`false` — never the
    birth date.
  </Card>

  <Card title="Document signatures" icon="signature">
    A legally meaningful signature bound to a verified identity, with a permanent,
    tamper-evident audit reference.
  </Card>

  <Card title="Terms acceptance" icon="file-signature">
    A lightweight signature over short inline terms — consent you can prove later.
  </Card>
</CardGroup>

## Why it's different

<CardGroup cols={3}>
  <Card title="Government-attested" icon="building-columns">
    Claims come from a real issuing authority's signed credential and are verified
    cryptographically — not self-asserted, not OCR'd.
  </Card>

  <Card title="Composable" icon="layer-group">
    Compose `identify`, `age_verify`, and `sign` into one session. The user
    completes them in one flow; you get one webhook per step.
  </Card>

  <Card title="Pay per result" icon="receipt">
    You're charged only for steps that successfully verify — from **$0.01**. Every
            new account starts with **$20** in launch credit.
  </Card>
</CardGroup>
