██████████████ ████████ ██████████████

ZER0ID

Privacy-native identity verification. Prove who you are without revealing who you are. Built on zero-knowledge cryptography.

0
PII STORED
<15s
VERIFY TIME
3
USER TAPS
$0.02
PER PROOF
SCROLL
The Problem

KYC is a liability disguised as compliance.

Every platform stores your passport, face, and address in a centralized database. Then they get breached. In 2024 alone, 3.2 billion identity records were exposed across financial services, healthcare, and government systems. The average breach costs $4.88 million and takes 277 days to detect. The system designed to protect you is the biggest threat to your privacy.

Verify with 10 services — your identity leaks from 10 attack surfaces. The fundamental architecture is broken. ZER0ID replaces it.

RECORDS EXPOSED 2024
AVG BREACH COST
days
AVG DETECTION TIME
How It Works

Prove without revealing.

Five steps. Sub-second. Your data never leaves your device. Click any step for the full technical detail.

CAPTURE0.0s

User presents a government-issued ID document to their device camera or NFC reader. On-device ML detects document type, extracts edges, and validates authenticity markers — holograms, microprint patterns, MRZ checksums. No image is transmitted. No server ever sees the document.

01
EXTRACT0.2s

On-device OCR extracts structured fields — date of birth, nationality, document expiry, name hash. These become the private witness inputs to the ZK circuit. The raw document image is immediately discarded from memory. Your face, your name, your address — none of it persists anywhere.

02
HASH0.3s

Private inputs are hashed using Poseidon — a hash function specifically designed for efficient computation inside zero-knowledge circuits. Unlike SHA-256 (which requires ~25,000 constraints per hash), Poseidon needs only ~300 constraints, making proof generation fast enough for real-time verification.

03
PROVE0.8s

A Groth16 zero-knowledge proof is generated entirely on-device using WASM. The proof is exactly 3 elliptic curve points (128 bytes) regardless of how complex the statement being proved is. It proves 'I have a valid document showing I meet your requirements' without revealing any document data.

04
VERIFY0.01s

Verification is a single elliptic curve pairing check — it takes 10 milliseconds on any modern device and can also run on-chain in a smart contract for ~230K gas. The verifier learns only that the proof is valid. Not your age. Not your country. Not your name. Just 'verified' or 'not verified'.

05
Use Cases

Identity for every industry.

From DeFi protocols to enterprise fintech — ZER0ID replaces surveillance-based identity with cryptographic proof.

Compliant DeFi Without the Surveillance

Prediction markets, DEXs, lending protocols, and token launches need to verify users without becoming data custodians. ZER0ID lets you gate access by jurisdiction and age without storing a single passport scan. When regulators ask 'do you KYC?', the answer is yes — cryptographically.

KEY METRIC
100x cheaper than traditional KYC for on-chain applications
INTEGRATION
Smart contract calls Groth16Verifier.verify(proof, publicInputs) — 230K gas
Sybil-resistant airdrop distribution — one claim per human, zero bots
Jurisdiction gating for token sales — prove you're not in a restricted country
DAO governance — one person, one vote, cryptographically enforced
DeFi lending KYC — meet compliance without centralized identity databases
Progressive Trust

Reveal only what's needed.

Not every app needs your passport. Five trust levels, each proving progressively more about you while revealing progressively nothing.

LEVEL 0
Unique Human

Prove you're a unique person without revealing anything about yourself. A cryptographic nullifier ensures one identity per application — no double-dipping, no Sybil attacks. The nullifier is deterministic but unlinkable across different apps, preserving pseudonymity.

HOW IT WORKS

The circuit takes a secret identity key (stored on-device) and the app's domain as inputs, producing a deterministic nullifier N = Poseidon(identityKey, appDomain). Two different apps get two different nullifiers — but the same app always gets the same one for the same person. No PII involved at any stage.

PROOF CONSTRAINT
Sybil-resistant nullifier
PERFORMANCE
~2,000 R1CS constraints · 0.3s prove time
USE CASES
Social platformsDAO votingAirdrop claimsBot prevention
Quick Start

Three lines. That's it.

Drop-in SDK. Zero PII on your servers. Full compliance out of the box. Ship privacy-native identity in an afternoon.

quick-start.ts
import { ZeroId } from '@zeroid/sdk'

const proof = await ZeroId.verify({
  level: 3,
  checks: ['age', 'sanctions', 'liveness'],
})

// That's it. Zero PII touched your servers.
console.log(proof.nullifier)
// → 0x7a3f...9e12
app.tsx — React Widget
import { ZeroIdProvider, ZeroIdGate } from '@zeroid/react'

function App() {
  return (
    <ZeroIdProvider appId="your-app-id">
      <ZeroIdGate
        level={2}
        minAge={18}
        onVerified={(proof) => grantAccess(proof)}
        theme="dark"
      >
        <ProtectedContent />
      </ZeroIdGate>
    </ZeroIdProvider>
  )
}
React Widget

Drop-in. Customizable. Accessible.

The ZeroIdGate component wraps any content that requires identity verification. When an unverified user encounters the gate, it renders an inline verification flow — document scan, proof generation, and callback — all within your existing UI. No redirects. No popups. No iframes.

Dark and light themes with full CSS variable customization
Built-in accessibility — WCAG 2.1 AA compliant
SSR-compatible with Next.js App Router
TypeScript-first — full type definitions for all props and callbacks
Animated state transitions — loading, scanning, proving, verified
Server-Side

Verify proofs. Store nothing.

Server-side verification is a single function call. The proof is mathematically verified, the nullifier is checked for uniqueness, and the trust level is confirmed. Your database stores a nullifier hash and a boolean — not a name, not a face, not an address.

Proof verification in < 10ms (elliptic curve pairing check)
Built-in nullifier deduplication
Webhook support for async verification flows
Express middleware and Fastify plugin included
Optional: encrypted escrow blob forwarding to regulator endpoint
server.ts — Verification
import { ZeroIdServer } from '@zeroid/server'

const zeroid = new ZeroIdServer({
  apiKey: process.env.ZEROID_API_KEY,
})

app.post('/verify', async (req, res) => {
  const result = await zeroid.verify(proof, publicInputs)

  if (result.valid) {
    // Store nullifier, not identity
    await db.users.update({
      nullifier: result.nullifier,
      verified: true,
    })
  }
})
Architecture

Full-stack zero knowledge.

Four layers. Each one designed so that compromising any single layer reveals nothing about your users.

DEVICESecure Enclave
WebAuthn PasskeyZeroID CredentialWASM ProverTFLite Document AI
SDK@zeroid/*
React WidgetClient APIProof GenerationCredential Manager
SERVERNode.js / Express
Credential IssuanceProof VerificationAES-256-GCM EscrowOFAC Merkle Builder
CHAINEVM (any)
Groth16Verifier.solNullifierRegistry.solERC-4337 AccountsEscrow Access Control
Why ZER0ID

The old way dies here.

Every row is a liability eliminated. Every green cell is a problem that no longer exists.

ZER0IDLEGACY KYC
PII StoredZeroFull database
Breach Liability$0 exposure$4.88M avg
Verification Speed< 15 seconds24–48 hours
User Experience3 taps, one screenUpload + selfie + wait
Cross-Platform ReuseOne proof, unlimited appsRe-verify per service
Regulatory ComplianceCryptographic escrowPlaintext subpoena risk
Cost Per Verification~$0.02$2–5
Data ResidencyOn user's device onlyCloud servers (multi-region)
GDPR / Right to DeleteNothing to deleteManual data purge process
Compliance

Cryptographic escrow.

Data exists — encrypted for a specific regulator, accessible only with legal process. Nobody else can read it. Ever.

NORMAL OPERATIONS
App receives → nullifier + proof + trust level
App stores → nullifier hash + boolean
App knows → "this user is verified at Level N"
PII exposure → zero. mathematically impossible.
REGULATORY AUDIT
Regulator presents → valid court order + RSA private key
Escrow decrypts → AES-256-GCM blob for that specific user
Regulator receives → original identity document data
Mass access → impossible. one key per user per regulator.
GDPR
Compliant by design — no PII to delete
SOC 2 Type II
Escrow infrastructure audited annually
eIDAS
EU electronic identification compatible
MiCA
Crypto asset service provider ready
PCI DSS
No cardholder data in scope
HIPAA
Healthcare identity without PHI exposure
CCPA
No personal information collected
OFAC/SDN
Weekly Merkle tree updates from sanctions lists
Stack

Built with.

Circom 2.1.8
Circuit compiler
Groth16
BN254 pairing proofs
Poseidon
ZK-friendly hash (t=6)
EdDSA
Credential signatures
snarkjs
WASM prover + verifier
ERC-4337
Account abstraction
WebAuthn
Passkey binding
AES-256-GCM
Escrow encryption
Pricing

Start free. Scale infinitely.

No credit card required for Developer tier. Enterprise includes dedicated support and custom circuit development.

DEVELOPER
Free

For builders exploring ZK identity. Full SDK access, testnet proofs, and documentation.

1,000 verifications / month
Testnet proof generation
L0–L2 trust levels
React widget + REST API
Community Discord support
MIT-licensed SDK
Start Building
MOST POPULAR
GROWTH
$299/mo

For products shipping to production. Mainnet proofs, higher trust levels, and priority support.

50,000 verifications / month
Mainnet proof generation
L0–L3 trust levels
Webhook callbacks
Custom branding on widget
99.9% uptime SLA
Priority email support
Dashboard analytics
Start Free Trial
ENTERPRISE
Custom

For regulated industries. Full KYC/AML, cryptographic escrow, on-premise deployment, dedicated support.

Unlimited verifications
L0–L4 trust levels (incl. accredited)
Cryptographic escrow for regulators
On-premise / private cloud deployment
Custom circuit development
OFAC/sanctions list integration
SOC 2 Type II compliance package
Dedicated solutions engineer
Custom SLA + 24/7 support
Contact Sales

All plans include: documentation, Discord community, SDK updates, and testnet access.
Volume discounts available for 100K+ monthly verifications.

For Developers

Everything you need to ship.

Five packages. Full TypeScript. MIT-licensed SDK. Deploy privacy-native identity in production today.

PACKAGES
@zeroid/sdk1.0.0 · 42KB gzipped

Core SDK — proof generation, credential management, verification

@zeroid/react1.0.0 · 18KB gzipped

React components — drop-in verification widget, hooks, context provider

@zeroid/server1.0.0 · 35KB gzipped

Server-side — proof verification, credential issuance, escrow management

@zeroid/contracts1.0.0 · 12KB

Solidity — Groth16Verifier, NullifierRegistry, ERC-4337 integration

@zeroid/circuits1.0.0 · 8KB

Circom circuits — all trust levels, constraint-optimized, audited

INSTALL
npm install @zeroid/sdk @zeroid/react
SUPPORTED FRAMEWORKS
React / Next.js
Full support
Vue / Nuxt
SDK only
Svelte / SvelteKit
SDK only
React Native
Beta
Node.js / Express
Full support
Python / FastAPI
Community
DEPLOYMENT OPTIONS
Cloud (Managed)
Hosted verification service. Zero infrastructure to manage. Deploy in minutes.
On-Premise
Run the full stack in your own infrastructure. Air-gapped option available.
Hybrid
Proof generation on-device, verification through your own servers + our escrow.
RESOURCES
Documentation
API Reference
Circuit Specs
Security Audit
FAQ

Everything you need to know.

Real answers. No marketing speak.

Your identity.
Your device.
Nobody else.

Privacy-native identity infrastructure for the post-breach era.
Built by THE SECRET LAB as part of the VEIL ecosystem.