Protocol
Architecture
The contracts, the indexer, and the frontend — and how they fit together.
System diagram
Creator ──▶ TokenFactory.createLaunch() ──▶ LaunchToken + BondingCurve
Users ──▶ BondingCurve.buy/sell ──▶ curve fills ──▶ auto-sweep
└─▶ TokenFactory.createGraduatedPool() ──▶ RamsesGraduationBridge
├─ creates Ramses V3 pool + mints full-range LP
├─ locks LP NFT in RamsesLpLocker (permanent)
└─ returns RamsesPoolWrapper (the curve's graduated pool)
RamsesLpLocker.collectFees() ──▶ RamsesPoolWrapper.forwardFees()
──▶ BondingCurve.handleGraduatedPoolFee() ──▶ 30/70 split ──▶ FeeEscrow
Ponder indexer ──▶ GraphQL ──▶ Next.js frontendContracts
| Contract | Role |
|---|---|
TokenFactory | Launch entry point; pins economics, deploys token + curve, drives graduation, owns admin levers. |
LaunchToken | Fixed-supply ERC-20 with on-chain metadata (logo, description, socials) set at construction. |
BondingCurve | Per-launch trading venue: constant-product pricing, fees, snipe tax, holder sharing, graduation sweep. |
LaunchAndBuyRouter | Atomic launch-and-buy, so a creator's opening buy can't be front-run by their own launch. |
RamsesGraduationBridge | IGraduationExecutor: creates the Ramses V3 pool, mints the full-range LP, locks it. |
RamsesPoolWrapper | Minimal pool interface for the curve; forwards swaps to Ramses and auto-collects fees. |
RamsesLpLocker | Permanent custody of the LP NFT; permissionless fee collection only. |
FeeEscrow | Shared pull-based escrow all fees are claimed from. |
BuybackVault | 5-year linear vesting for creator buybacks. |
RamsBuybackVault | Receives 10% of protocol fees; a keeper buys and permanently locks RAMS. |
Indexer
A Ponder indexer watches the factory and bridge, then dynamically discovers every curve, token, and pool wrapper from their events. It maintains:
pools— one row per curve or graduated pool, with avenuecolumn (curve/amm) so charts are continuous across graduation.trades— one immutable row perCurveBuy/CurveSell/Swap, with a normalized 1e18 fixed-point price.candles— rollup-on-write OHLC data.holders— per-token balances derived fromTransferlogs.
The frontend queries it over GraphQL (NEXT_PUBLIC_INDEXER_URL, default
http://localhost:42069/graphql in development).
Frontend
A Next.js app (this site): launch form, markets board, token pages with live charts and trade panels, analytics, claims, and portfolio. Wallet interaction uses wagmi/viem against Robinhood Chain.
Trust model
- Permanent: LP lock, escrow accounting, curve economics (immutable per launch), the 5-year buyback vesting.
- Owner-gated: adding launch configs, launch fee, pausing new launches, the buy-only trading pause, proposing (not executing) community takeovers.
- Permissionless: trading, sweeping fees, claiming, executing matured takeovers, retrying graduation, collecting pool fees.