Technical docs
On chain
Smart contracts & deployments
PoolManager interface, deployed testnet addresses, and build commands.
PoolManager locks tokens on commit and pays out on withdraw. The leaf is Poseidon(secret, nullifier, amount); a rolling Poseidon accumulator tracks the root. An ASP compliance layer (approve/block) gates deposits, with admin pause and protocol fees. This is a Phase 1 PoC; real ZK settlement will use Nethermind’s pool integration.
| Function | Type | Description |
|---|---|---|
initialize | admin | Set admin, fee recipient, fee bps (one time) |
commit | core | Deposit tokens, store Poseidon leaf + nullifier |
withdraw | core | Reveal nullifiers + proof, pay recipient (batch) |
set_asp / approve / block | admin | KYB whitelist + sanctions blocklist |
pause / unpause / set_fee | admin | Emergency stop and fee control |
get_state / is_nullifier_spent | view | Pool root, size, config and nullifier status |
Live Stellar testnet addresses. Click any address to open it on StellarExpert (testnet):
| Contract / account | Role | Address | Status |
|---|---|---|---|
| PoolManager | ZK commitment pool | CDSOHQQNPLBEMH6WBC6646IH4TJ4SYWLICP6XWJTB7CARWGWPMCPHJAS | Live |
| Payment pool account | Receives link payments | GATXUXOFATDQXLKJCIU7G22V5NNUE7J5OP3KJKMJNBAPRM5VYQ3K7DKN | Live |
| CCTP Token Messenger | Burn / mint USDC | CDNG7HXAPBWICI2E3AUBP3YZWZELJLYSB6F5CC7WLDTLTHVM74SLRTHP | Circle testnet |
| CCTP Message Transmitter | Cross chain messages | CBJ6MTCKKZG73PMDZCJMSFRD7DQEMI4FKDH7CGDSV4W6FHCRBCQAVVJY | Circle testnet |
| CCTP Forwarder | Inbound Stellar mints | CA66Q2WFBND6V4UEB7RD4SAXSVIWMD6RA4X3U32ELVFGXV5PJK4T4VSZ | Circle testnet |
| USDC (Soroban) | Bridged USDC on Stellar | CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA | Circle testnet |
PoolManager holds live testnet commitments. Only redeploy via
contracts/deploy-testnet.sh when WASM changes; then update NEXT_PUBLIC_POOLMANAGER_CONTRACT_ID and src/lib/doc/testnet-contracts.ts. Redeploying creates a new empty pool.