Open-Source · Decentralised · Zero-PII

Prove who you
are. Reveal nothing.

A self-custodied identity credential that lets you prove age, nationality, and document validity at any checkout — without surrendering your documents to anyone, ever again.

privid verify — live proof
Identity UUID
7f3a9c2e-b841-4d06-a517-3f8e1c902d74
Verifier Queries
Age ≥ 18?PASS
Citizen of EU?PASS
Verified < 3 yrs?PASS
UUID unique?PASS
0 bytes PII transmittedZK proof · 380ms
The Problem

KYC as it stands is a liability, not a solution.

Marketplace operators need identity verification. But current tools force them to become data processors for millions of government documents — creating a liability that dwarfs the original compliance problem.

Legal Liability

Existing KYC services force platforms to ingest, store, and remain legally liable for raw identity documents they have no safe way to hold.

Repeated Friction

Users re-submit the same documents to every new marketplace. Identity verification is a silo, not a portable credential.

🔒

Centralised Risk

A breach at any KYC provider exposes millions of users' passports, addresses, and biometrics in a single event.

0

bytes of PII stored by any node after session

4hr

from API key to first live verification

<30%

user drop-off through one-time verification

How It Works

Four steps. One credential. Infinite re-use.

Document Scan or Gov API

Verify Once

Present your government document via camera, NFC tap, or government API. The node reads, extracts four attributes, and immediately discards the raw data — nothing touches disk.

Extracts: year of birth · nationality · doc type · expiry
01
Cryptographic Commitment

UUID Generated

A UUID is derived deterministically from your verified attributes plus random entropy. The node generates it in memory, hands it to your device, and retains nothing. You are the sole custodian.

Node stores: nullifier hash only — no UUID, no attributes
02
Self-Custodied Wallet

Carry Your Credential

Your UUID, salt, and ZK proving key live on your device like a crypto wallet. Portable, reusable, and valid across any platform that integrates the PrivID SDK.

Works on: smartphone · desktop · Raspberry Pi
03
Zero-Knowledge Proof

Prove at Checkout

When a marketplace requests verification, your device generates a ZK proof against their specific query. They receive only pass/fail. No raw data ever leaves your device.

Query types: age threshold · nationality · freshness · uniqueness
04
Zero-Knowledge Proof Engine

Verifiers ask claims. Never attributes.

The year of birth is never transmitted. The ZK proof computes current year minus committed birth year internally — the verifier receives only the comparison result. Proof generation runs on the user's device. No central authority participates.

Verifier QueryProof Returns
"Is this user 18 or older?"Pass / Fail
"Is this user a citizen of country X?"Pass / Fail
"Verified in the last 3 years?"Pass / Fail
"Is this UUID unique and active?"Pass / Fail
System Architecture

The UUID is not random. It is a structured cryptographic object.

Derived deterministically from verified attributes plus entropy, the UUID is the user's portable identity address — analogous to a crypto wallet address. Two users with identical attributes produce different UUIDs.

7f3a9c2e-b841-4d06-a517-3f8e1c902d74
UUID Cryptographic Commitments
Year of BirthAge threshold proofs — never the year itself
NationalityIs / is not from country X
Verification YearFreshness checks per verifier policy
Node IdentifierConfirms attesting node ran verified code
Random EntropyIdentical attributes → different UUIDs
Store-Nothing Node Architecture

A witness, not a vault.

Node operators cannot read, export, or reconstruct any user's identity. The open-source codebase is the guarantee — not a contractual agreement with a vendor. Runs on any hardware from a smartphone to a Raspberry Pi.

In-Memory Only

All document processing happens in RAM. No disk writes occur at any point in a verification session.

Cryptographic Zeroing

Session variables are cryptographically zeroed after the credential handoff. Nothing lingers.

Nullifier Registry

The only persistent data: one-way hashes recording which documents produced a UUID — not which UUID.

Code Attestation

Each node publishes its public key and a hash of the exact open-source version it runs. Verifiers can confirm independently.

Document Freshness Controls

Policy belongs to the marketplace.

The UUID carries a cryptographic commitment to the year of last verification. Verifiers set their own freshness policy independently — accept any UUID, accept only those verified within N years, or reject and demand re-verification. The system surfaces the commitment; the decision is yours.

Accept any verified UUID regardless of age
Accept UUIDs verified within the last X years
Reject and demand re-verification if too old
Fraud Reporting & Invalidation

Quorum-based. No single point of authority.

Five independent verified UUIDs must flag a target before it is frozen. Anti-collusion rules prevent coordinated attacks. Invalidation is recorded on the distributed ledger as a state change — no PII exposed at any point.

Signals required to freeze5
Max signals from one node1
Reporting UUID must predate target by30 days
Reports per UUID per target1 max
Who It's For

Four roles. One shared guarantee: no PII anywhere.

Marketplace Operator

Verify at checkout. Store nothing.

Integrate via SDK or REST API. Set your own age threshold, nationality policy, and freshness requirement per transaction type. Your legal team will approve it — you never receive or store any identity document.

SDKREST APIPer-transaction policyLegal-safe
Read Integration Docs
01
End User

Verify once. Reuse everywhere.

Complete one verification through any trusted node. Your credential lives on your device like a crypto wallet — portable, self-custodied, and valid across every compatible platform indefinitely.

Self-custodiedOne-time setupCross-platformNo re-submission
Get Your Credential
02
Node Operator

Run a witness node. Retain nothing.

Process verifications on any hardware — smartphone, desktop, or Raspberry Pi. Witness document verification, generate cryptographic proofs, hand everything to the user, and retain only a nullifier hash.

Any hardwareOpen-sourceNo central permissionNullifier only
Run a Node
03
Verifier

Query claims. Never raw data.

At transaction time, submit a structured query — minimum age, nationality, freshness threshold. Receive a binary pass/fail tied to a UUID. ZK proof internals, raw attributes, and PII are never transmitted to you.

Binary pass/failStructured queriesUUID-tiedNo PII
Verifier API Reference
04

Integrate in under 4 hours.

API key to first live verification — that's the benchmark. The SDK handles proof verification, UUID resolution, and freshness checks out of the box.