Skip to main content
Every token on veto.fun lives the same on-chain life. No special cases, no admin shortcuts, no “trust us”. The rules below are enforced by the contracts for every launch, including ours.

Stage 1: Launch

A creator calls the launchpad with a name, ticker, and metadata URI (image and description, pinned to IPFS). One transaction deploys the token and opens its bonding curve.
  • Supply: exactly 1,000,000,000 tokens (18 decimals), minted once. The token has no owner, no mint function, no pause, no blacklist, and no transfer fees.
  • Creation fee: a flat 0.001 ETH, plus network gas.
  • Optional dev buy: the creator can attach ETH to the launch transaction to make the very first buy, at the same public starting price as everyone else. The creator receives zero free tokens.

Stage 2: Bonding-curve trading

793,100,000 tokens (79.31% of supply) are sold on a constant-product bonding curve (x · y = k over virtual reserves). The price is purely a function of curve state:
  • Every buy pushes the price up; every sell pushes it down. It’s deterministic, with no order book and no market maker.
  • A 1% fee is taken in ETH on every trade: 0.7% to the protocol, 0.3% to the token’s creator. See Fees.
  • Quotes are exact: what the contract quotes is what you get, protected by slippage limits and deadlines you set.
The trading widget on each token page shows the live price, the curve progress bar, and the amount of ETH still needed to graduate.

Stage 3: Graduation

When the buy that empties the 793.1M curve allocation lands, the curve graduates:
  • The final buy is partially filled to exactly the remaining supply, and any excess ETH is refunded automatically.
  • The curve freezes permanently. No more curve trades, and it can never reopen.
Anyone can then trigger the migration (it’s permissionless and free): the raised ETH is paired with the reserved 206,900,000 tokens (20.69% of supply) to create a full-range Uniswap v3 pool at the final curve price, so there is no price gap between the curve and the pool.
The Uniswap v3 LP position is minted directly into an immutable FeeLocker vault with no withdrawal function. The liquidity is locked forever and can never be pulled by the creator, the team, or anyone else. Only the accumulated swap fees can be collected. See Graduation.

Stage 4: Life after graduation

The token is now a plain ERC-20 with a live Uniswap v3 pool on Robinhood Chain:
  • Tradable by any wallet, aggregator, or trading bot, not just on veto.fun.
  • Uniswap swap fees accumulate to the locked LP position and are split 30/70 between the creator and the protocol treasury (the same ratio as curve fees), claimable at any time.
  • The token contract itself never changes: same address, same fixed supply, no admin keys.

What can never happen

Deep dive: the bonding curve math

Exact reserves, formulas, and graduation numbers.