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.