Contracts
Factory, Router, curves, zap, locker, Raises, and staking.
The system is a small set of contracts with one job each. The factory and router are the entry points for launching. Resolve each launch's curve and token from create receipts rather than hardcoding them.
- LaunchFactory
- Deploys each token + bonding curve with economics params.
- Router
- createToken / createAndBuy / buy / sell convenience entry.
- BondingCurve
- One per launch. Prices and settles pre-graduation trades.
- LaunchToken
- Fixed-supply ERC-20 minted entirely to its curve.
- LaunchZap
- USDG↔WETH periphery for curve buys and sells.
- LaunchLens
- Indexer-friendly launch records.
- LiquidityLocker
- Holds graduated Uniswap V4 position NFTs permanently.
- RaiseFactory / Raise / Governor
- USDG crowdfunding and futarchy stack.
- FeeStakingFactory / Pool
- Opt-in holder staking funded by fee ETH.
Deployed addresses
Live on chain ID 4663 (Robinhood Chain). Confirm on the explorer before interacting. Reference: Robinhood Chain contracts.
- LiquidityLocker
- RaiseFactory
- FeeStakingFactory
- GraduationRouter
Canonical tokens and Uniswap
- Uniswap V4 PoolManager
- Uniswap V4 PositionManager
- Uniswap V4 Universal Router
- Uniswap V3 Factory (USDG zaps)
- Uniswap V3 SwapRouter02 (USDG zaps)
Load a contract with viem
tsgetRouter.ts
import { createPublicClient, http, getContract } from "viem";
import { trancepadChain } from "./chain"; // your defineChain for Robinhood Chain
import RouterAbi from "@launchx/shared/abis/Router.json"; // or copy from shared/abis
const client = createPublicClient({
chain: trancepadChain,
transport: http(), // or https://your-api/rpc for the read proxy
});
export const router = getContract({
address: "0xf4070f50Aed754c12d781d21de9986742017A2B8" as `0x${string}`,
abi: RouterAbi,
client,
});Building a Dune query, DefiLlama adapter, or launchpad registry? Use Indexers and analytics for Factory attribution, event topics, and the machine-readable pack.