Testnet demo. Runs on Sepolia and Solana devnet with test tokens only. No real assets or money. Known limitations
How it works

From asset to compliant transfer

The flow implemented in this prototype, step by step.

1. A custodian registers an asset

The AssetRegistry contract deploys a capped ERC-20 token for the asset. On Solana, the issuer creates a Token-2022 mint with a transfer hook, default-frozen accounts and a permanent delegate.

2. The investor proves eligibility

The backend turns the investor's inputs into a Noir zero-knowledge proof that they are 18+, KYC-verified and not sanctioned. The proof is tied to their wallet address and reveals nothing else.

3. Eligibility is recorded on-chain

On Ethereum, the ComplianceManager verifies the proof itself and records an approval with an expiry. On Solana, an attester checks the proof off-chain and writes an allowlist entry, which also unfreezes the investor's account.

4. The token enforces the rules

Every transfer checks both parties. Non-approved wallets can't receive tokens. Enforcement roles can freeze holdings and force transfers for legal recovery.

Not covered by this prototype

Legal structuring (for example an SPV that owns the asset), custody, and real KYC providers. In the demo, the inputs to the ZK proof are typed in by the user rather than signed by a KYC provider, so the proof only shows that the user claimed them.

See the compliance rules live →