Core contract map
- Factory
- Deploys standard tokens and curves with one immutable launch configuration.
- Registry
- Records canonical creator, curve, token, pool, and graduation identity.
- Curve
- Quotes and settles pre-bond USDC trades and triggers graduation.
- Graduator
- Creates the v3 pool and permanently hands the position NFT to the vault.
- Liquidity vault
- Owns locked positions, harvests fees, reserves the liquidity share, and compounds it.
- Creator escrow
- Stores pull-payment balances for creators.
- Community escrow
- Stores fee funding assigned to the epoch manager.
- Epoch manager
- Funds bounded reward epochs, finalizes Merkle roots, and verifies trader claims.
Privileged roles
Owner roles can set designated factory, graduator, accrual source, community recipient, root proposer, and ownership handoffs where the respective contract permits. Deployment scripts must perform all required wiring while the deployer owns the contracts, verify the stored addresses, then transfer each role to its intended owner.
Why deployment order matters
Claim verification
Creator claims read a contract balance keyed by fee asset and creator. Trader claims require a finalized root, unclaimed leaf index, valid proof, open deadline, and enough epoch funding. The browser may use an indexer to locate candidates, but the contract re-verifies the proof.
- Claim buttons fail closed when readiness cannot be checked.
- A zero claimable balance never produces a transaction.
- Wrong-chain wallets are rejected before signing.
- Receipts must succeed before the interface marks a claim complete.
Deployment verification checklist
- Read chain ID directly from the selected RPC.
- Compare runtime bytecode hashes with the deployment manifest.
- Read factory, registry, graduator, vault, escrow, and epoch links on-chain.
- Confirm the fee tier and fee-distribution version.
- Confirm creator/community accrual sources and epoch recipient.
- Run local create, trade, graduation, harvest, compound, fund, finalize, and claim tests.
- Run a small-value live canary only with explicit owner authority.
Never paste a private key into the browser, repository, logs, or issue tracker. Mainnet mutation requires the actual role holder to sign; source changes alone do not alter deployed bytecode.