Skip to Content
Building with PassportIndividual VerificationsIntroduction

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 KYCIndividual Verifications
Data sharedFull PII (name, ID number, address)Only pass/fail — zero personal data
ReusabilityVerify separately per appVerify once, reuse everywhere
ComplianceVaries by providerBuilt-in KYC and AML (Clean Hands)
User experienceMinutes of forms per appOne-time verification + instant reuse
Sybil resistanceDepends on implementationBuilt-in — attestations are tied to verified individuals

How Zero-Knowledge Proofs Work

  1. Verification: The user completes an identity check (e.g., government ID scan) with an identity verification provider.
  2. Credential creation: A cryptographic credential is created and stored client-side. Personal data never leaves the user’s device.
  3. 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.
  4. 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

VerificationDescriptionLink
Government ID (KYC)Verify identity via government-issued ID (passport, driver’s license, national ID)id.human.tech/gov-id 
PhoneVerify a unique phone numberid.human.tech/phone 
BiometricsNon-identifying face uniqueness and liveness checkid.human.tech/biometrics 
Proof of Clean HandsSanctions and PEP list verification (AML compliance)id.human.tech/clean-hands 

Sandbox Environment

For testing and development, sandbox versions are available:

VerificationSandbox Link
Government ID (KYC)id.human.tech/sandbox/gov-id 
Phoneid.human.tech/sandbox/phone 
Proof of Clean Handsid.human.tech/sandbox/clean-hands 
BiometricsComing 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 CaseMethodDescription
Simple verification checksAPI ReferenceQuery verification status with simple true/false responses
On-chain contractsAttestation ProtocolsQuery Sign Protocol attestations directly
Client-side dAppsSDK IntegrationEmbed verification flows in your application
Stellar integrationStellar IntegrationQuery SBTs on Stellar via Soroban

Next Steps

Last updated on