Real-world ZK on Stellar testnet

Comply without revealing the person.

A private compliance gate for stablecoin transfers, tokenized assets, and regulated settlement flows on Stellar.

Stellar testnet live Groth16 verifier call Action unlock tx Explorer receipts
Proof flow

Only the compliance result reaches chain.

01

Private credential

User keeps identity, jurisdiction, KYC status, and limits off-chain.

02

Proof prepared

The demo prepares commitments and sends a Groth16 verification transaction first.

03

Action unlocks

After attestation, the contract records a one-time regulated action unlock.

Live deployment

Already deployed on Stellar testnet.

The app is wired to the deployed AnonCompliance contract and the initialized policy/verifier hashes.

Network
loading
Contract
loading
Groth16 verifier
loading
Policy hash
loading
Verifier hash
loading
Production status
testnet MVP, not mainnet audited

Interactive demo

Generate a private compliance proof.

Submissions now pass through a deployed Groth16 verifier contract before the compliance attestation is written to Stellar testnet. The current verifier artifact is the Stellar sample circuit, with an AnonCompliance circuit spec included as the next production step.

Signing mode

Wallet signing requires Freighter in this browser on Stellar testnet.

Subject commitment waiting
Public input hash waiting
Nullifier waiting
Proof hash waiting
Action hash waiting
  1. Groth16 proof verification
  2. Compliance attestation
  3. Regulated action unlock
Generate a proof to begin.

Production readiness

What is real, and what must harden next.

Live now

Testnet verification path

Hosted signer and wallet XDR flows submit real transactions to Stellar testnet.

Live now

Explorer audit trail

Every successful run returns separate links for proof verification, attestation, and action unlock.

Live now

Gated action

The Soroban contract rejects action unlocks unless a matching compliance attestation exists.

Next step

Compliance circuit swap

Replace the sample Groth16 circuit with the documented KYC and sanctions circuit before calling it production ZK compliance.

Next step

Security review

Audit the circuit, signer custody, replay/nullifier handling, and policy upgrade controls before mainnet.

Designed for regulated value movement.

Private stablecoin limits

Prove a transfer is policy-compliant without exposing the user's full profile.

RWA eligibility

Gate tokenized asset interactions behind private investor or jurisdiction proofs.

Institutional settlement

Record only attestations and nullifiers while keeping sensitive checks off-chain.

Hackathon path

Private proof. Public trust.

AnonCompliance lets institutions check what matters without exposing the person behind the wallet.

Run the proof demo

Project docs

How the demo works.

01

Generate proof data

The frontend creates policy commitments, a nullifier, and a proof payload for the selected compliance policy.

02

Verify ZK on Stellar

The backend calls the deployed Groth16 verifier contract and sends that verification to testnet so users can inspect the proof tx.

03

Record attestation

If verification passes, AnonCompliance records a nullifier and compliance attestation on Stellar testnet.

04

Unlock regulated action

The updated contract executes a one-time action unlock only after the attestation exists, then returns a third explorer receipt.

Current caveat: testnet submissions and verifier calls are real, while the embedded Groth16 circuit artifact is still the Stellar sample circuit. The production circuit should prove private kycPassed, sanctionsClear, and userSecret inputs, then expose only policyHash, nullifier, and eligible = 1.