Hide the salaries, not the compliance.
A ZK-gated payroll engine: prove every employee is KYC-verified and the total is correct — without revealing a salary or address on-chain.
verify_and_release(proof, signals)
→ valid → disburse USDC ✓
→ tampered → false ✗
Stellar Hacks: Real-World ZK · DoraHacks
Salary exposure
Map the treasury wallet, read every salary. Competitors poach your senior engineers with a number in hand.
Auditability gap
Prove KYC & correctness to tax authorities and VCs — but today you choose total exposure or opaque off-chain flows. No middle.
The CFO compiles a real Noir + UltraHonk proof: every employee in the KYC set, total payroll correct — without revealing addresses or salaries.
Masked
salaries & addresses hidden
KYC-gated
Poseidon2 Merkle membership
Disclosable
Secp256k1 auditor view key
Atomic
verify_and_release escrow
$ npm run prove:demo
1. CFO imports payroll CSV → names mapped, salts applied
2. real Noir UltraHonk proof (14,592 bytes)
signals: [total_payroll, treasury_balance, kyc_root]
3. submit verify_proof / verify_and_release on Soroban
on-chain verify_proof => true ✓
tampered => false ✗
4. auditor Secp256k1 view key → decrypt → audit salaries
A real on-chain UltraHonk proof. Web app = UX sandbox that simulates proving; real crypto = prove:demo + deployed contract. In-browser prover is a roadmap item.
ZK Circuit
Noir 1.0.0-beta.9 + Poseidon2 · KYC Merkle membership + payroll-sum correctness · nargo test passes
Proof system
Barretenberg UltraHonk 0.87.0 (keccak oracle) · 14,592-byte proof · verifies off-chain + on-chain
Verifier
Rust/Soroban + rs-soroban-ultrahonk · Protocol 26 BN254 MSM + scalar-field host fns fit the check in budget
Settlement
Soroban SAC token · verify_and_release disburses USDC only on a valid proof
A pure-WASM verifier wouldn't fit the transaction budget — Zebra leans on Protocol 26 BN254 host functions. Poseidon2 lines up with Stellar's native hash family.
Fastest-growing
stablecoin payroll rail for remote-first & global-contractor companies.
Universal pain
every company paying from a public treasury leaks its comp table.
TAM
= everyone who pays salaries on-chain: startups, DAOs, contractor platforms.
Per-payroll-run SaaS — a fee per confidential payroll batch processed.
Compliance tier — auditor portal + selective-disclosure key management for regulated employers.
Treasury integrations — connectors for DAO tooling, contractor platforms, accounting suites.
Cost moat — native BN254 host fns make on-chain UltraHonk verification economical.
| Public payroll | Off-chain payroll | Zebra | |
|---|---|---|---|
| Salaries private | ❌ | ✅ | ✅ |
| On-chain settlement | ✅ | ❌ | ✅ |
| KYC-provable | ⚠️ | ⚠️ trust us | ✅ ZK Merkle |
| Auditable | too much | ❌ opaque | ✅ view key |
| Cost | gas | bank fees | sub-cent |
Only Zebra is confidential and provably compliant at the same time.
✅ Verifies on testnet
Real Noir UltraHonk proof accepted on-chain — npm run prove:demo.
✅ Negative control
Tampered inputs return false on-chain.
✅ Real toolchain
Noir 1.0.0-beta.9 + bb 0.87.0; rebuilt the circuit that was the source of earlier mock proofs.
✅ Full flow tested
cargo test (escrow/auditor + duplicate-nullifier), 107-test harness, Playwright E2E.
30 DAYS
In-browser bb.js proving; stellar.expert verified; live confidential payroll demo.
60 DAYS
Sindri decentralized prover for larger batches; scheduled/recurring payroll.
90 DAYS
Multi-currency payroll, accounting/DAO connectors, first design-partner company.
Edy Cu
full-stack + applied-ZK engineer
Solo-built the Noir/UltraHonk payroll circuit (Poseidon2 KYC membership + sum correctness), the Rust/Soroban verifier + escrow embedding rs-soroban-ultrahonk, the ECIES auditor view-key flow, and the Next.js CFO/Auditor portals. One of five real on-chain ZK products shipped for this hackathon.
Zebra is the confidentiality layer that makes on-chain payroll adoptable — private to competitors, transparent to auditors, settled on Stellar.