Blockchain Basicsintermediatearticle

KYC/AML On-Chain: zkKYC, Galxe Passport, Civic, KILT — Privacy vs Compliance | VCC

Compare zkKYC, Galxe Passport, Civic Gateway, and KILT for on-chain KYC. Privacy vs compliance trade-offs, Travel Rule readiness, and dev integration guide.

Vietcardano teamTeam

Đội ngũ biên tập VietCardanoCommunity — các chuyên gia blockchain và Cardano, cung cấp nội dung giáo dục và nghiên cứu chuyên sâu cho cộng đồng.

Published August 31, 2026Updated August 30, 2026

Onchain KYC has become the critical infrastructure layer for bridging traditional finance with decentralized protocols. Yet every implementation faces a fundamental compliance trilemma: you can optimize for Privacy, Compliance, or Usability — but not all three simultaneously. This article dissects the four leading approaches — zkKYC, Soulbound Tokens (Galxe Passport), Market-based Verification (Civic Gateway), and W3C DID/VC Standards (KILT) — so compliance officers and developers can choose based on their actual constraints, not marketing claims.

Primary keyword: onchain KYC Secondary keywords: zkKYC, Galxe Passport, Civic, KILT, selective disclosure, travel rule


Why Traditional KYC Breaks on Blockchain

Traditional KYC was designed for centralized institutions with trusted databases. Blockchain breaks every assumption:

  • Centralized honeypots: The 2023 Binance KYC leak exposed 1M+ users' PII. Celsius' bankruptcy revealed unencrypted identity data on AWS S3 buckets. On-chain, there is no "delete" button.
  • FATF Travel Rule mismatch: The Financial Action Task Force requires VASPs to share originator/beneficiary data for transfers >$1,000 (IVMS101 format). But DeFi has no VASP — just pseudonymous addresses interacting with smart contracts.
  • Onboarding friction: Chainalysis estimates 60-80% drop-off during KYC for DeFi protocols. Vietnamese users, accustomed to Momo/ZaloPay's 30-second onboarding, abandon flows requiring document uploads and video calls.
Flowchart - Traditional KYC failure modes on blockchain

The core problem: blockchain is public by default, compliance is private by requirement. Any solution must reconcile this without creating new centralization vectors.


The Four Approaches to On-Chain Identity

ApproachCore PrimitivePrivacy ModelCompliance ReadinessMain Trade-off
zkKYCZK-SNARKs/STARKsSelective disclosure via ZK proofsHigh (Travel Rule compatible)Complex UX, trusted setup
Galxe PassportSoulbound Tokens (SBT)On-chain visibility, v2 adds ZKMedium (issuer-dependent)Centralized issuer
Civic GatewayMarket-based verifiersSelective via Gateway protocolMedium (Gatekeeper quality)Incentive alignment
KILT ProtocolW3C DID + VCSelective disclosure (BBS+)High (standards-based)Polkadot ecosystem lock-in

Approach 1 — zkKYC: Zero-Knowledge Proofs for Selective Disclosure

How It Works

zkKYC moves verification off-chain and submits only a zero-knowledge proof on-chain. The flow:

  1. Issuance: User completes KYC with a trusted issuer (Polygon ID, zkMe, Rarimo). Issuer signs a credential (hash of PII + attributes) into a Merkle tree.
  2. Proof Generation: User locally generates a ZK-SNARK proving: "I possess a valid credential in the Merkle tree" + "I satisfy predicate P (e.g., age > 18, not sanctioned)" — without revealing the credential itself.
  3. On-chain Verification: Smart contract verifies the proof. Nullifier prevents double-spending the same credential.
Diagram - zkKYC architecture flow: User → Issuer → Merkle Tree → ZK Proof → Verifier Contract

Key Players

ProtocolStandardIdentities IssuedNotable Integration
Polygon IDIden3 (custom ZK)2M+Aave, Uniswap hooks, Polygon zkEVM
zkMeZK-SNARK (Circom)500K+BNB Chain, Linea, zkSync
RarimoZK-SNARK (Halo2)300K+Social recovery, cross-chain identity

Technical reality: Polygon ID's TypeScript SDK is production-ready (~200k gas per verification). zkMe offers mobile SDKs but requires Circom circuit knowledge for custom predicates. Rarimo focuses on social graphs — different threat model.

When to Choose zkKYC

  • Priority: Maximum privacy + regulatory compliance
  • Team: Has ZK engineering capacity or budget for audited circuits
  • Jurisdiction: FATF/MiCA compliant regions requiring Travel Rule adherence
  • Avoid if: Building for non-technical users, need rapid MVP, or operate in jurisdictions banning privacy tools

Approach 2 — Galxe Passport: Soulbound Tokens as Identity

The SBT Model

Galxe Passport mints a non-transferable ERC-721 (Soulbound Token) representing verified identity. Unlike zkKYC, the credential is the on-chain token — visible to everyone.

Issuance flow:

  1. User completes KYC via Galxe's partnered providers (Sumsub, Veriff, etc.)
  2. Galxe mints Passport SBT to user's address
  3. Protocols check balanceOf(user) > 0 or query Passport metadata

Diagram - Galxe Passport issuance flow: User → KYC Provider → Galxe → SBT Mint → Protocol Integration

v2: zkGalxe Adds Privacy Layer

Galxe Passport v2 (2024) introduced zkGalxe — ZK proofs over the SBT metadata. Users can now prove "I hold a valid Passport" without revealing which Passport or its attributes. This addresses the core SBT privacy critique.

Adoption metrics (2024):

  • 14M+ unique users across Galxe ecosystem
  • 3.5M+ Passport holders
  • 4,000+ integrated protocols (Linea, Scroll, Mantle, Berachain)

Centralization Risk

Galxe is the sole issuer. If Galxe censors, goes offline, or is compelled by regulators, 3.5M identities are affected. No revocation registry exists — expired Passports remain valid on-chain until manually burned.

When to choose Galxe Passport:

  • Need instant integration with 4000+ protocols
  • User base already in Galxe ecosystem (quest platforms, airdrop farmers)
  • Compliance requirements accept centralized issuer model
  • Avoid if: Censorship resistance is non-negotiable, or need cross-ecosystem portability


Approach 3 — Civic & Gateway: Market-Based Verification

Gateway Protocol Architecture

Civic's Gateway protocol (via Identity.com) introduces economic incentives for verification:

  1. Requester (protocol) posts a verification request with reward (CVC tokens)
  2. Gatekeepers (verified entities: exchanges, KYC providers, DAOs) bid to verify
  3. User selects Gatekeeper, completes KYC, receives credential
  4. Credential stored on-chain via Gateway's registry; Gatekeeper earns CVC
Diagram - Civic Gateway verification flow: Requester → Gatekeepers (bid) → User → Credential Registry

Differentiation: Competing Verifiers

Unlike Galxe (single issuer) or zkKYC (fixed issuer set), Gateway creates a market for verification. Gatekeepers compete on price, speed, jurisdiction coverage, and reputation. Users choose based on trust requirements.

Multi-chain reality: Gateway operates on Solana, Polygon, BSC, Base, and Ethereum mainnet. CVC token bridges via Wormhole — adding bridge risk.

Incentive Alignment Challenges

  • Gatekeeper quality: No slashing for bad verifications (reputation only)
  • CVC volatility: Rewards denominated in volatile token
  • Sybil resistance: Gatekeeper onboarding requires Identity.com approval — re-centralization

When to choose Civic Gateway:

  • Need multi-chain coverage without separate integrations
  • Want competitive verification pricing
  • Accept token-incentivized trust model
  • Avoid if: Require deterministic compliance guarantees, or operate in jurisdictions restricting utility tokens


Approach 4 — KILT Protocol: W3C DID/VC Standards on Polkadot

Standards-First Architecture

KILT implements W3C Decentralized Identifiers (DIDs) and Verifiable Credentials (VCs) natively on its Polkadot parachain. This is not a proprietary standard — it's the same spec used by EU eIDAS 2.0, Microsoft Entra Verified ID, and ISO/IEC 18013-5 (mDL).

Core components:

  • DIDs: did:kilt:4nx... — user-controlled identifiers
  • CTypes (Claim Types): JSON schemas defining credential structure (e.g., "KYC-CType" with fields: name, dob, nationality, documentHash)
  • Attesters: Trusted entities (banks, governments, KYC providers) that sign credentials
  • Revocation Registry: On-chain bitmap for efficient credential status checks

Polkadot Ecosystem Dependency

KILT's parachain architecture means:

  • Native to Polkadot: Native XCMP messaging to other parachains (Acala, Moonbeam, Astar)
  • EVM access: Via Moonbeam (EVM-compatible parachain) or bridges — adds latency and trust assumptions
  • No native Ethereum mainnet deployment: Developers targeting Ethereum DeFi face friction

Adoption: Energy Web Chain (energy sector), Polkadot ecosystem projects (Acala, Parallel Finance), German government pilot (GAIA-X).

When to Choose KILT

  • Priority: Standards compliance, interoperability with tradfi/government systems
  • Stack: Building on Polkadot or Substrate
  • Regulatory: Need W3C VC alignment for EU/US regulatory dialogues
  • Avoid if: Primary target is Ethereum/EVM DeFi, team lacks Substrate/Rust expertise

Selective Disclosure: The Technical Bridge

Selective disclosure is where privacy meets compliance. Three technical approaches dominate:

TechniqueMechanismStandardUsed By
BBS+ SignaturesMulti-message signatures with selective revealIETF draft, ISO 23264KILT, cheqd, Dock
SD-JWTJWT with selective disclosure via hash digestsIETF RFC 9599EU eIDAS 2.0, Microsoft Entra
ZK-SNARKs (Merkle)Proof of membership + predicate satisfactionCustom circuitsPolygon ID, zkMe, Rarimo
Comparison - Selective disclosure techniques: BBS+ vs SD-JWT vs ZK-SNARK

Travel Rule + Selective Disclosure = Compliant Privacy

The FATF Travel Rule requires transmitting: originator name, account number, address, national ID, DOB + beneficiary name, account number.

Selective disclosure enables:

  • Originator proves "I am KYC'd by licensed VASP X" without revealing name/address to beneficiary
  • Beneficiary proves "I am not on sanctions list" without revealing identity to originator
  • VASPs exchange IVMS101 payloads off-chain; ZK proofs attest to payload validity on-chain

Open regulatory question: Will FATF accept ZK proofs as "reliable, independent source documents" per Recommendation 10? Current guidance is silent. Most VASPs currently transmit full IVMS101 — selective disclosure remains theoretical for Travel Rule compliance.


Compliance Officer Decision Framework

Use this checklist to match your constraints to the right approach:

ConstraintzkKYCGalxe PassportCivic GatewayKILT
Max privacy required✅ Best❌ Public SBT✅ Selective✅ Selective
FATF Travel Rule ready✅ (with IVMS101)⚠️ Issuer-dependent⚠️ Gatekeeper-dependent✅ (W3C VC)
Fastest integration❌ Complex SDK✅ 4000+ protocols✅ Multi-chain SDK❌ Polkadot only
Censorship resistance✅ (decentralized verifiers)❌ Single issuer⚠️ Market-based✅ (decentralized)
Standards compliance❌ Proprietary❌ Proprietary❌ Proprietary✅ W3C DID/VC
Vietnam/local KYC providers⚠️ Limited✅ Sumsub/Veriff integrated✅ Local Gatekeepers possible⚠️ Limited
Flowchart - Which onchain KYC for your use case? Decision tree

Decision logic:

  1. Building on Polkadot/Substrate? → KILT
  2. Need maximum privacy + have ZK engineering? → zkKYC (Polygon ID for EVM, zkMe for multi-chain)
  3. Need fastest go-to-market + accept centralization? → Galxe Passport
  4. Need multi-chain + competitive verification market? → Civic Gateway
  5. Regulatory dialogue requires W3C standards? → KILT (or advocate for zkKYC standards)


Developer Integration Reality Check

MetricPolygon ID (zkKYC)Galxe PassportCivic GatewayKILT
SDK LanguageTypeScript, Rust, React NativeTypeScript (Passport SDK)TypeScript, React NativeRust, TypeScript (Polkadot JS)
Verification Gas~200-500k gas~150k gas (SBT mint)~180k gas (credential)~250k gas (VC verify)
Wallet SupportMetaMask Snaps, WC v2, AAAll EVM walletsAll EVM + Solana walletsPolkadot.js, Talisman, SubWallet
Custom PredicatesCircom circuits (audit needed)Limited (v2 zkGalxe)Gatekeeper-definedCType schemas (no code)
Mainnet Ready✅ Polygon, Ethereum, L2s✅ Ethereum, L2s✅ Multi-chain✅ Polkadot + Moonbeam

Hard truths:

  • zkKYC circuits require audits. A bug in age>18 circuit = compliance failure. Budget $50-100k for circuit audit.
  • Galxe Passport = vendor lock-in. Migration means re-KYC all users.
  • Civic Gateway = CVC token dependency. Protocol economics affect verification costs.
  • KILT = Polkadot commitment. Not a library you "add" — it's an architecture decision.


Vietnam Context: High Adoption, Unique Constraints

Vietnam ranks top 5 globally for crypto adoption (Chainalysis 2023), yet operates in a regulatory grey zone:

  • No comprehensive crypto law: SBV (State Bank) prohibits crypto payments; Decree 107/2023 prepares AML/CTF framework for future VASP licensing.
  • Circular 14/2024/TT-NHNN: Banks must monitor crypto-related transactions — de facto KYC pressure on ramps.
  • Local payment rails: Momo (30M users), ZaloPay (25M users) dominate. Any on-chain KYC must integrate with these for fiat on/off-ramp.
  • Terminology: "KYC" used directly in tech circles; "Xác thực danh tính" for general audience. "Token gắn liền" for SBT.

Vietnamese opportunity: A privacy-preserving KYC that plugs into Momo/ZaloPay via API, supports Vietnamese ID cards (CCCD), and outputs ZK proofs for DeFi protocols — this doesn't exist yet. First mover captures the market.


FAQ

1. Is onchain KYC legally compliant? Depends on jurisdiction. FATF Travel Rule accepts "reliable, independent source documents" — zkKYC proofs may qualify but untested. EU MiCA requires CASP licensing; on-chain KYC can support compliance but doesn't replace licensing. Always engage local counsel.

2. What happens if a zkKYC issuer goes offline? Users retain credentials locally. Verification continues if verifier contract has the issuer's verification key. Risk: issuer key rotation requires user re-credentialing. Polygon ID supports key rotation via governance; zkMe less mature.

3. Can Soulbound Tokens be revoked? ERC-721 has no native revocation. Galxe relies on off-chain metadata expiry (ignored by naive integrators). KILT's revocation registry is the only robust on-chain solution. Always check revocation status before trusting any credential.

4. How does selective disclosure work with Travel Rule? Theoretically: VASPs exchange full IVMS101 off-chain; ZK proofs attest to "IVMS101 payload matches KYC record" on-chain. Practically: No VASP does this today. Regulatory clarity needed.

5. Which protocol has the best developer experience? Polygon ID for EVM teams (TypeScript SDK, extensive docs, active Discord). KILT for Polkadot/Substrate teams. Galxe for quest/airdrop platforms needing instant user verification. Civic for multi-chain apps accepting token economics.

6. What are the gas costs for on-chain verification?

  • zkKYC verification: 200-500k gas (~$5-15 on Ethereum, <$0.01 on L2s)
  • SBT mint/transfer: 150-200k gas
  • VC verification (KILT): 250-350k gas
  • Recommendation: Deploy verifiers on L2 (Arbitrum, Base, Polygon) or use account abstraction to sponsor gas.


Conclusion

There is no silver bullet for onchain KYC. The compliance trilemma forces explicit trade-offs:

  • zkKYC wins on privacy and standards alignment — but demands ZK engineering maturity
  • Galxe Passport wins on distribution and speed — but centralizes trust in one issuer
  • Civic Gateway wins on multi-chain flexibility and market dynamics — but introduces token volatility and incentive complexity
  • KILT wins on regulatory credibility via W3C standards — but locks you into Polkadot

Start with your threat model, not the technology. Map your jurisdiction's requirements, your users' privacy expectations, your team's technical capacity, and your protocol's composability needs. Then choose the approach whose trade-offs you can defend to regulators, users, and your engineering team.

The next frontier: interoperability standards (DIDComm, CAIP-10, ERC-4337 account abstraction for credential portability) and regulatory clarity on ZK proof acceptance. Until then, build modular — abstract the identity layer so you can swap implementations as the landscape evolves.


Article updated: 2026-08-20 Author: Blockchain Compliance Researcher + Smart Contract Developer Sources: FATF Guidance 2021, Polygon ID/zkMe/Galxe/Civic/KILT official docs, W3C DID/VC specs, Chainalysis 2023, on-chain metrics via Dune Analytics

Tags:

onchain KYCzkKYCGalxe PassportCivicKILTselective disclosuretravel rule