Learn · Protocol
Architecture
One launchpad contract, cloned tokens, a pool manager, no server.
launch() ──▶ ┌──────────────── Launchpad ────────────────┐
buy/sell ──▶ │ one curve per coin ── sold out ──▶ pool │
claim() ──▶ │ fees owed per wallet (pull, never push) │
collect() ──▶ │ locked LP positions + their fees │
└──────┬─────────────────────────┬───────────┘
│ clone + init │ unlock/swap/settle
┌─────▼──────┐ ┌───────▼────────┐
│ CoinToken │ │ Pool manager │
│ (EIP-1167) │ │ (Uniswap v4) │
└────────────┘ └────────────────┘This codebase
The frontend talks to the protocol only through adapters in src/adapters: launchpad, trading, liquidity and wallet. The shipped adapters run on an in-browser simulated ledger that applies the same curve maths. Swapping them for chain-backed adapters doesn’t touch a single component.
| Layer | Now | To go live |
|---|---|---|
| Curve maths | Exact, in integers | Unchanged |
| Launch / trade / claim | Simulated ledger | Contract writes via viem/wagmi |
| Board, tape, charts | Simulated ledger | Rebuild from Launched/Trade logs |
| Pool | x·y=k stand-in | Uniswap v4 StateView + swaps |
| Muse research | Sample data | Research pipeline + explorer API |
| Wallet | Mock provider | EIP-1193 / WalletConnect |