Launch

Docs

Overview

Integrate Mizo — launch tokens on any supported chain, trade on the bonding curve, and route post-graduation swaps through the chain's DEX or Mizo Swap.

How Mizo is organised

Mizo is one hub with a launchpad on every chain. Two levels, and nothing lives at both:

  • Hub levelSwap, Bridge, Portfolio, Analytics and these docs. Global, chain-agnostic, always on the left rail.
  • Chain level — open a chain from Explore and you get that chain's wall, its coins, each coin's page and Create token. A token belongs to exactly one chain.

Routes follow the same split: /explore picks a chain, /hood is that chain, /hood/<address> is a coin inside it, /create creates one there.

EVM chains Robinhood · Base · Ethereum · BNB · Stable

One Solidity stack, deployed per chain. The contracts below are identical everywhere; only addresses and the gas asset change (Stable settles gas in USDT0). Addresses shown are Robinhood Chain — switch chains and this page follows; each chain's own docs page lists the same set.

HoodxFactory0xF93075d2a7866bd137Eb5fbee594258DBf1D46CbDeploys tokens + bonding curves via CREATE2; graduates the raise into the DEX pool
LockX0x3B944264e8f28Bc2904fd26E8737A748Ffa5c96DLocks the graduation LP permanently; fees stay claimable, split 80% creator / 20% platform
Uniswap V3 SwapRouter020xCaf681a66D020601342297493863E78C959E5cb2Canonical Uniswap V3 router — post-graduation trading

Each launch also deploys a unique BondingCurve and token via CREATE2. Vanity suffixes are per chain:

ChainToken address ends in
Robinhood663
Stable988
Ethereum001
BNB056
Base453
TONno vanity rule (address form differs)
Solanano vanity rule (address form differs)

Integrate with viem/wagmi or ethers; one ABI set covers all five EVM chains.

TON

TON runs the same product on a different machine: the factory and curves are Tolk contracts, tokens are jettons (TEP-74), and wallets connect through TON Connect (inside the same Sign up / Log in door). Semantics are identical — same curve maths, same graduation waterfall, same 2% fee split — but messages are asynchronous, so a buy settles across blocks instead of one transaction receipt.

  • Factory — deploys curve + jetton-minter pair; launch fee in TON.
  • Curve — holds TON, mints jettons on buy, burns on sell; graduates to a DeDust pool with the LP held permanently locked (fees stay claimable, 80/20 creator/platform).
  • Addresses are workchain-0 (EQ…); the EVM vanity-suffix rule does not apply on TON.

Solana

On Solana the launchpad rides Meteora Dynamic Bonding Curve under our partner config — one program owns every curve, launching creates accounts, not new code. Tokens are SPL mints; graduation migrates liquidity to Meteora DAMM v2 with permanently locked positions (80% creator / 20% platform fee split). After graduation the pool is routable via Jupiter or Mizo Swap.

Architecture

  1. Launch call HoodxFactory.createLaunch to deploy curve + token.
  2. Bonding curve — users buy/sell on the curve until the chain's graduation target (0.02 ETH here) is raised (2% trade fee).
  3. Graduation — when the target is reached, the raise (minus small graduation fees) seeds a Uniswap V3 pool whose LP is locked permanently in LockX; the remainder splits 80% creator / 20% platform.
  4. LP fees — the LP never unlocks, but its trading fees keep accruing and stay claimable (collectFees() has no time gate): token side burned, WETH side split 80% creator / 20% platform.
  5. DEX trading — after graduation, trade the pool on Uniswap V3 or via Mizo Swap.

1. Launch a token

Call createLaunch on the factory of the chain you're in. Pay at least the chain's launch fee (launchpad.launchFee()); any extra ETH in the same tx is used as an optional creator dev-buy.

// HoodxFactory.createLaunch
function createLaunch(
  string name,
  string symbol,
  string metadataURI,   // ipfs:// or https:// JSON with name, symbol, image, socials
  uint256 minTokensOut, // slippage guard for optional dev-buy (0 if no dev-buy)
  bytes32 curveSalt,    // CREATE2 salt — curve address must end in 663
  bytes32 tokenSalt     // CREATE2 salt — token address must end in 663
) external payable returns (address curve, address token);

// Example (viem / wagmi)
const launchFee = await readContract({
  address: "0xF93075d2a7866bd137Eb5fbee594258DBf1D46Cb",
  abi: launchpadAbi,
  functionName: "launchFee",
});
await writeContract({
  address: "0xF93075d2a7866bd137Eb5fbee594258DBf1D46Cb",
  abi: launchpadAbi,
  functionName: "createLaunch",
  args: [name, symbol, metadataURI, 0n, curveSalt, tokenSalt],
  value: launchFee, // launch fee only; any extra ETH is a dev-buy
});

Read launch metadata: launchpad.launches(launchId) or launchpad.curveToLaunchId(curve). Resolve token → curve: Hoodx(token).curve().

2. Buy on the bonding curve pre-graduation

Send ETH to the curve's buy. A 2% fee is taken (1% platform + 1% creator, accrued from curve trading).

// BondingCurve.buy — curve must not be graduated
function buy(uint256 minTokensOut) external payable;

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

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

3. Sell on the bonding curve

Approve the curve for the token amount, then call sell. Same 2% fee, paid from the native output.

// 1. Approve curve to spend tokens
await writeContract({
  address: tokenAddress,
  abi: erc20Abi,
  functionName: "approve",
  args: [curveAddress, tokenAmount],
});

// 2. Sell
function sell(uint256 tokenAmount, uint256 minEthOut) external;

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

4. Graduation

Graduation is automatic. The buy that crosses the target triggers migration: the Uniswap V3 pool is created, LP is minted to LockX, and the curve stops accepting trades. From then on the coin trades on the DEX — the coin page switches its trade panel from "Bonding curve" to "DEX" without changing URL.

// Post-graduation trading is canonical Uniswap V3 — pool: token/WETH, 1% fee tier.
const SWAP_ROUTER = "0xCaf681a66D020601342297493863E78C959E5cb2"; // canonical SwapRouter02

await writeContract({
  address: SWAP_ROUTER,
  abi: swapRouter02Abi,
  functionName: "exactInputSingle",
  args: [{
    tokenIn: WETH, tokenOut: tokenAddress, fee: 10000,
    recipient: me, amountIn, amountOutMinimum, sqrtPriceLimitX96: 0n,
  }],
});

Token supply & curve math

  • Total supply: 1,000,000,000 tokens
  • Bonding curve sale: 800,000,000 tokens
  • DEX LP allocation: 200,000,000 tokens (migrated at graduation)
  • Virtual reserves: 0.006825 ETH + 1,073,000,000 virtual tokens (constant-product AMM)
  • Graduation target: 0.02 ETH net collected

Read on-chain state

// BondingCurve views
curve.token()            // Hoodx token address
curve.creator()          // launch creator
curve.graduated()        // true after migration
curve.uniswapPool()      // V3 pool (zero before grad)
curve.currentPrice()     // spot price in wei per token
curve.tokensRemaining()  // unsold sale inventory (800M cap)
curve.ethCollected()     // net ETH in curve
curve.tokensSold()
curve.graduationTarget() // 0.02 ETH target

// Hoodx token
token.curve()            // bonding curve address

// Creator fees accrue on the CURVE in native ETH (1% of every trade)
curve.claimCreatorFees() // permissionless; pays the accrued fees to the creator

// Trade events (index these on the curve)
event Buy(address indexed buyer, uint256 ethIn, uint256 tokensOut, uint256 newPrice);
event Sell(address indexed seller, uint256 tokensIn, uint256 ethOut, uint256 newPrice);
event Graduated(address pool, uint256 ethLiquidity, uint256 tokenLiquidity, uint256 ethToDev);

Fetch historical logs from the explorer or any RPC eth_getLogs against the curve address.

Token states

A token card carries exactly two computed states, both mechanical: NEW (recently launched) and GRAD (graduated — LP locked, trading on the DEX). Nothing is delisted; there is no editorial grading, no manual overrides, and the product says so.

Fees & custody

Mizo is non-custodial — every create, buy, sell and graduation runs on-chain straight from your wallet; the platform contract never holds your funds. Fees settle directly: the launch fee and the platform's 1% of the 2% curve fee go to the fee wallet, the creator's matching 1% to the creator, and the graduation cut splits per the waterfall above. Because the LP is locked without a time gate, the position itself can never be withdrawn — only its trading fees are ever collected.

Never: safe, guaranteed, vetted, approved, recommended. Chain docs: Robinhood · Stable · Ethereum · BNB · Base · TON · Solana. Factory on Robinhood Chain: 0xF93075d2…1D46Cb