Skip to content
Starcurve
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.

LayerNowTo go live
Curve mathsExact, in integersUnchanged
Launch / trade / claimSimulated ledgerContract writes via viem/wagmi
Board, tape, chartsSimulated ledgerRebuild from Launched/Trade logs
Poolx·y=k stand-inUniswap v4 StateView + swaps
Muse researchSample dataResearch pipeline + explorer API
WalletMock providerEIP-1193 / WalletConnect