Individual Verifications
Individual Verifications let users complete identity checks once and reuse them across any integrated application. Powered by zero-knowledge proofs, verifications are privacy-preserving — apps learn that a user passed KYC, not their name or ID number.
Unlike Stamps-based verification, which aggregates multiple signals into a composite score, Individual Verifications provide specific, targeted proofs such as government ID verification, phone number uniqueness, or biometric liveness checks.
Choosing the right verification approach
Human Passport offers multiple verification methods:
- Stamps - Aggregate multiple signals into a composite score. Best for general Sybil resistance.
- Models - ML-powered scoring with zero user friction. Best for frictionless verification.
- Individual Verifications - Privacy-preserving KYC, phone, biometrics, and AML checks. Best for regulatory compliance or stronger identity guarantees.
Why Individual Verifications?
| Traditional KYC | Individual Verifications | |
|---|---|---|
| Data shared | Full PII (name, ID number, address) | Only pass/fail — zero personal data |
| Reusability | Verify separately per app | Verify once, reuse everywhere |
| Compliance | Varies by provider | Built-in KYC and AML (Clean Hands) |
| User experience | Minutes of forms per app | One-time verification + instant reuse |
| Sybil resistance | Depends on implementation | Built-in — attestations are tied to verified individuals |
How Zero-Knowledge Proofs Work
- Verification: The user completes an identity check (e.g., government ID scan) with an identity verification provider.
- Credential creation: A cryptographic credential is created and stored client-side. Personal data never leaves the user’s device.
- Proof generation: When an app needs proof, the user generates a ZK proof — a compact cryptographic certificate that proves “I passed KYC” without revealing any underlying data.
- On-chain attestation: The proof is verified and recorded on-chain as an attestation via Sign Protocol  (on Optimism/Base) or as an SBT on Stellar.
Think of it like a bouncer checking your ID at a bar. The bouncer confirms you’re over 21, but the bar never sees your name, address, or birthdate. ZKPs work the same way — cryptographic proof of a fact, with zero personal data disclosed.
Each verification type (Gov ID, Phone, Biometrics, Clean Hands) uses a different ZK circuit — a specific proof program. See Attestation Protocols for circuit and schema IDs.
Available Verification Types
| Verification | Description | Link |
|---|---|---|
| Government ID (KYC) | Verify identity via government-issued ID (passport, driver’s license, national ID) | id.human.tech/gov-id  |
| Phone | Verify a unique phone number | id.human.tech/phone  |
| Biometrics | Non-identifying face uniqueness and liveness check | id.human.tech/biometrics  |
| Proof of Clean Hands | Sanctions and PEP list verification (AML compliance) | id.human.tech/clean-hands  |
Sandbox Environment
For testing and development, sandbox versions are available:
| Verification | Sandbox Link |
|---|---|
| Government ID (KYC) | id.human.tech/sandbox/gov-id  |
| Phone | id.human.tech/sandbox/phone  |
| Proof of Clean Hands | id.human.tech/sandbox/clean-hands  |
| Biometrics | Coming soon |
Supported Chains
Individual Verifications issue attestations via Sign Protocol  on multiple chains:
- Optimism - Primary chain with full verification support
- Base - Clean Hands and Biometrics attestations
- Stellar - Soroban smart contract integration (Gov ID, Phone) — Stellar Integration
See the Supported Chains page for chain-specific details.
Basic Integration Flow
Quickstart: Check if a user is KYC-verified
A single API call checks whether an address has a valid verification:
curl 'https://api.holonym.io/sybil-resistance/gov-id/optimism?user=USER_ADDRESS&action-id=123456789'// Verified user
{ "result": true, "expirationDate": 1770922106 }
// Not verified
{ "result": false }That’s it — one API call. For on-chain verification, query Sign Protocol attestations directly. See API Reference for all endpoints or Attestation Protocols for on-chain queries.
Integration Options
Choose the integration method that best fits your use case:
| Use Case | Method | Description |
|---|---|---|
| Simple verification checks | API Reference | Query verification status with simple true/false responses |
| On-chain contracts | Attestation Protocols | Query Sign Protocol attestations directly |
| Client-side dApps | SDK Integration | Embed verification flows in your application |
| Stellar integration | Stellar Integration | Query SBTs on Stellar via Soroban |
Next Steps
- API Reference - Query verification status via REST API
- Attestation Protocols - Query attestations directly from Sign Protocol
- Testing - Test your integration on Base Sepolia
- Stellar Integration - Integrate on Stellar via Soroban SBTs
- API Playground  - Try out API endpoints interactively