Privacy-preserving KYC verification for the ACBU stablecoin platform.
ACBU-ZK lets users prove they meet compliance requirements — KYC tier and jurisdiction — without revealing their personal data on the Stellar blockchain.
ACBU serves African users and institutions who need regulatory compliance. Without privacy:
| Approach | Problem |
|---|---|
| Store KYC on-chain | Everyone sees your passport data. Forever. |
| Trust a central server | Single point of failure. Users must trust the database. |
| No compliance | Institutions can't use the platform. |
ACBU-ZK uses zero-knowledge proofs to cryptographically prove compliance without revealing the underlying data.
"I have enhanced KYC and I'm in Nigeria" → proven on Stellar.
KYC level, country, and all personal data → never revealed on Stellar.
1. VERIFY IDENTITY (Redacted KYC)
┌────────────────────────────────────────┐
│ Upload ID docs → AI checks format │
│ Human validators review REDACTED docs │
│ (Names ████, ID numbers ████, etc.) │
│ Consensus → your account is verified │
└────────────────────────────────────────┘
2. GENERATE ZK PROOF (Browser)
┌────────────────────────────────────────┐
│ Your credentials stay in your browser. │
│ A mathematical proof is generated │
│ proving you meet pool requirements │
│ WITHOUT revealing your actual data. │
└────────────────────────────────────────┘
3. SUBMIT TO STELLAR
┌────────────────────────────────────────┐
│ Only the proof is sent to Stellar. │
│ Contract verifies it using BN254 │
│ elliptic curve cryptography. │
│ Your wallet is flagged as compliant. │
└────────────────────────────────────────┘
4. ACCESS RESTRICTED POOLS
┌────────────────────────────────────────┐
│ Pool contract checks: is this wallet │
│ verified? → Yes → transaction proceeds │
│ No one on-chain can see your KYC level │
│ or country. │
└────────────────────────────────────────┘
| Visible on Stellar | Hidden from Stellar |
|---|---|
commitment (cryptographic hash) |
Your actual KYC level |
required_kyc (pool rule) |
Your actual country |
allowed_country (pool rule) |
Your name, address, ID number |
nullifier (prevents double-use) |
Any personal data at all |
acbu-zk/
├── circuits/ # Noir ZK circuits
│ └── zk_comply_circuit/ # The compliance proof circuit
├── contracts/ # Soroban smart contracts
│ ├── zk_verifier/ # On-chain proof verifier + nullifier storage
│ └── zk_gate/ # Pool gating contract (cross-contract calls)
├── frontend/ # React + TypeScript UI
│ └── zk-comply-frontend/
├── sdk/ # TypeScript SDK
│ └── src/
│ ├── poseidon.ts # Poseidon2 hash helpers
│ ├── prover.ts # Proof generation via Noir WASM
│ └── contracts.ts # Stellar contract interactions
└── docs/ # Documentation
Stellar Hacks: Real-World ZK — June 15–29, 2026
Built on Stellar Protocol 26 (Yardstick) with native BN254 curve operations and Poseidon hash support. Uses Noir for ZK circuit development and Soroban for on-chain verification.
MIT