Integration

Launchpad Docs

Integrate Axon Fun on Robinhood Chain — launch tokens, trade the bonding curve, and route post-graduation swaps through Uniswap V3.

Addresses

Deployed contracts

AxonLaunchpad

Core

Deploy tokens + bonding curves via CREATE2

AxonDexRouter

Core

Post-graduation Uniswap V3 buy/sell routing

AxonV3Migrator

Core

Migrates curve liquidity to Uniswap V3 on graduation

CurveBytecode

Lib

Linked library for curve deployment bytecode

V3 Factory

Uni

Pool factory on Robinhood Chain

SwapRouter02

Uni

V3 swap router used by AxonDexRouter

Position Manager

Uni

LP NFT minting on graduation

WETH

Uni

Wrapped ETH pair token for V3 pools

Each launch also deploys a unique BondingCurve and AxonToken via CREATE2. Token & curve addresses always end in …666.

Lifecycle

Architecture

01

Launch

createLaunch deploys curve + token via CREATE2 (…666)

02

Bonding

Buy/sell until 4.2 ETH · 2% fee

03

Graduate

80% → locked V3 LP · 20% → platform

04

DEX

AxonDexRouter routes Uniswap V3 buys & sells

Guide

1. Launch a token

Call createLaunch on the launchpad. Pay at least 0.0005 ETH launch fee; any extra ETH in the same tx is an optional creator dev-buy.

createLaunch
// AxonLaunchpad.createLaunch
function createLaunch(
  string name,
  string symbol,
  string metadataURI,   // ipfs:// or https:// JSON
  uint256 minTokensOut, // 0 if no dev-buy
  bytes32 curveSalt,    // CREATE2 — must end in 666
  bytes32 tokenSalt     // CREATE2 — must end in 666
) external payable returns (address curve, address token);

// viem / wagmi
await writeContract({
  address: LAUNCHPAD_ADDRESS,
  abi: launchpadAbi,
  functionName: "createLaunch",
  args: [name, symbol, metadataURI, 0n, curveSalt, tokenSalt],
  value: parseEther("0.0005"),
});
  • · Metadata: launchpad.launches(launchId) or curveToLaunchId(curve)
  • · Token → curve: AxonToken(token).curve()

Guide

2. Buy on bonding curve

Send ETH to buy. 2% fee (1% platform ETH + 1% creator tokens accrued on curve).

buy + quoteBuy
function buy(uint256 minTokensOut) external payable;

await writeContract({
  address: curveAddress,
  abi: bondingCurveAbi,
  functionName: "buy",
  args: [minTokensOut],
  value: parseEther("0.1"),
});

const [tokensOut] = await readContract({
  address: curveAddress,
  abi: bondingCurveAbi,
  functionName: "quoteBuy",
  args: [parseEther("0.1")],
});

Guide

3. Sell on bonding curve

Approve the curve, then call sell.

approve + sell
await writeContract({
  address: tokenAddress,
  abi: erc20Abi,
  functionName: "approve",
  args: [curveAddress, tokenAmount],
});

function sell(uint256 tokenAmount, uint256 minEthOut) external;

await writeContract({
  address: curveAddress,
  abi: bondingCurveAbi,
  functionName: "sell",
  args: [tokenAmount, minEthOut],
});

Guide

4. Trade after graduation

When curve.graduated() is true, use AxonDexRouter for Uniswap V3 swaps (also records volume on the curve).

uniBuy / uniSell
const DEX_ROUTER = "0xaB680aEF1aeF1724D2510E912d5120190E83111b";

function uniBuy(address curve, uint256 minTokensOut) external payable;

await writeContract({
  address: DEX_ROUTER,
  abi: dexRouterAbi,
  functionName: "uniBuy",
  args: [curveAddress, minTokensOut],
  value: parseEther("0.1"),
});

// Approve DEX_ROUTER, then:
await writeContract({
  address: DEX_ROUTER,
  abi: dexRouterAbi,
  functionName: "uniSell",
  args: [curveAddress, tokenAmount, minEthOut],
});

Guide

5. Read on-chain state

views
// BondingCurve
curve.token()
curve.creator()
curve.graduated()
curve.uniswapPool()
curve.currentPrice()
curve.tokensRemaining()
curve.ethCollected()
curve.tokensSold()
curve.graduationTarget()      // 4.2 ETH
curve.claimLpFees(minWeth)    // creator: 20% WETH / 80% buyback-burn
curve.claimCreatorFees(minEthOut) // creator: 80% burn / 20% ETH

// AxonToken
token.curve()

Guide

6. Index trades

Pre-graduation trades emit on the curve. Launches emit on the launchpad.

events
event Buy(address indexed buyer, uint256 ethIn, uint256 tokensOut, uint256 newPrice);
event Sell(address indexed seller, uint256 tokensIn, uint256 ethOut, uint256 newPrice);
event DevBuy(address indexed creator, uint256 ethIn, uint256 tokensOut, uint256 newPrice);
event Graduated(address pool, uint256 ethLiquidity, uint256 tokenLiquidity, uint256 ethToDev);

event LaunchCreated(
  uint256 indexed launchId,
  address curve,
  address token,
  address creator,
  string name,
  string symbol
);

// Blockscout
// GET /api/v2/addresses/{curve}/logs

Math

7. Token supply & curve

Total supply

1,000,000,000

tokens

Curve sale

800,000,000

tokens

Uniswap LP

200,000,000

tokens

Virtual ETH

1.45

ETH

Virtual tokens

1,073,000,000

tokens

Graduation

4.2

ETH net

Supply allocation

80% curve sale
20% LP