few.
ExploreReward Pools
AnalyticsDocs
© 2026 few.fun
DocsTermsPrivacyRisk
Not financial advice.

Contents

  • How launches work
  • Paired assets
  • The curve
  • Graduation
  • Fees
  • Addresses
  • Listing a token elsewhere
  • The creator wallet
  • Contracts

Docs

How launches, paired assets and fees work on few.fun. Every launch is a real Uniswap V4 pool from block one, paired against ether or a tokenised equity, with its liquidity burned.

How launches work

One transaction does everything. It deploys the token with a fixed supply of 1,000,000,000, opens a Uniswap V4 pool for it, places the entire supply into that pool as liquidity, and burns the position that holds it.

There is no presale, no team allocation, no bonding curve to graduate out of and no second contract holding your money. The token trades in a real pool from its first block.

The liquidity is burned, not locked. The position is a Uniswap NFT and it is sent to the burn address in the launch transaction — so there is no locker contract to trust, no unlock date, and nothing for anyone to change their mind about. You can check the owner of the position yourself; the token page links to it.

  • Launch — add an image, pick what it trades against, sign once.
  • Trade — buy and sell in the pool immediately; there is no waiting period.
  • Keep earning — every trade pays a fee, and most of it is the creator's to claim.

Paired assets

A launch can trade against ether or against a tokenised equity — NVDA, TSLA, GOOGL and dozens more. This is the one thing this chain can do that others cannot, and it is a real pairing rather than a label: buyers spend that asset, fees accrue in it, and the graduation figure is measured in it.

Pairing against NVDA means the pool holds NVDA on the other side. Anyone who wants to buy needs some first, which narrows the audience and is the point — a token paired to an equity is a bet on the pair, not on ether.

The list is what the protocol has registered a price for, read live from the factory. An equity has to have a deep enough market on this chain to price its opening honestly, so the list is shorter than the set of tokens that exist, and it grows as those markets do.

An equity is a Robinhood Stock Token, and Robinhood charges 0.3% of its own to convert in and out of one. None of that reaches this protocol and none of it is charged on a trade inside the pool — it applies at the edges, when someone turns cash into the token or the token back into cash. It is stated on the trade panel because every buyer in an equity-quoted pool crosses that edge to get there and again to leave.

The choice is permanent. A pool's currencies are fixed when it opens.

The curve

The whole supply is placed on one side of the pool — all token, none of the paired asset — across a price range starting at the launch price. Buyers take that inventory and the price walks up the range. That is the curve: it is the shape of a Uniswap position, not a separate contract.

It behaves the way you expect. Early buys are cheaper than late ones, large orders move price further than small ones, and the interface shows the estimated impact before you confirm. Selling walks the price back down the same range.

Because there is no separate curve contract there is also nothing to migrate out of, and no moment where liquidity is in transit and can be front-run.

A creator may buy first, in the same transaction, capped at a small share of supply. That buy pays the same fee and walks the same curve as everybody else's — it is not a discount, it is just first.

Graduation

Graduation is a milestone, not a move. When enough of the paired asset has accumulated inside the burned position, the launch is marked as graduated and the progress bar fills.

Nothing migrates. Trading continues in exactly the same pool, at the same address, with the same burned liquidity. The label tells you a launch found real depth — that is all it claims.

The threshold is set per asset, because the same milestone is a different number in a different unit. It is the same market value whether a pool is quoted in ether or in an equity; the create page states the figure for whatever you pick.

Only what the pool's own curve has taken in counts. Tokens sent directly to the pool are ignored, so the bar cannot be faked.

Fees

Every trade pays 1%, charged in whatever the pool is quoted in. The pool's own Uniswap fee is zero — the whole charge is ours, taken by the hook, and Uniswap takes none of it.

A creator may add a tax on top, up to 10%, chosen at launch and fixed there. Traders then pay the sum of the two, and the token page states the real rate for the pool you are looking at rather than the default.

The protocol's cut does not move. It is 30% of the base 1% and nothing of the creator's tax — 0.3% of every trade, on every pool, whatever the creator charges. Everything else is the creator's. So a pool with no tax pays its creator 0.7% and one with a 5% tax pays 5.7%.

Fees are held by the hook until someone claims them. A claim is open to anyone to call, and it can only ever pay two addresses: the wallet named at launch and the protocol treasury. Calling it on someone else's pool spends your gas to move their money — which is why the button only appears on your own profile, and why nobody can redirect a claim. A Cashback pool is the exception: its creator gave up their share at launch, and the hook spends that share buying the token back from its own pool and burning it — on its own as the token trades, or whenever anyone runs it. No wallet is ever paid that share. A Holder Rewards pool gives the share up the other way: the hook sends it to the token, which splits it among everyone holding the token in proportion to their balance, and each holder claims their own part from the token page. The protocol's own share goes to a treasury contract that spends it buying EASE on its pool and burns what it buys — on its own, inside the settlement that paid it. Fees paid in an equity wait there instead, since there is no on-chain way to turn them into EASE.

Network gas is separate. It is paid to Robinhood Chain validators, not to us, and varies with congestion.

So is the issuer's fee on a pool quoted in an equity: Robinhood charges 0.3% to convert in and out of a stock token, at the edges rather than on any trade here. Three charges, three recipients, and only the first is ours.

Addresses

Everything below is on Robinhood Chain, chain id 4663. The ones at the top are ours; the rest belong to Uniswap and are the standard deployments this chain ships with. A launch factory and its hook name each other, so a newer factory is deployed beside the older one rather than in its place — every token keeps trading through the pair that launched it.

The factory and the hook are verified on the explorer, and every token they deploy verifies automatically within about a minute — the deployer emits byte-identical bytecode for every launch, so the explorer matches it on sight.

  • Launch factory

    Where launches go today. Deploys the token, opens the pool, seeds it and burns the position. One call.

    0xd9a00394a318Ff2E2397fcB01E47CF2D1961FF3f
  • Fee hook

    Charges and splits every trade on that factory's pools. No owner, no setters, no upgrade path.

    0x7Fa46639D6c4CB000f2107CB6038C404b4A6A0CC
  • Creator lock

    Holds whatever a creator locked of their first buy until the date they chose. No owner; nothing opens a lock early.

    0x14eF6FCbDD2604d0194c7c5dd535352BFca50C55
  • Protocol treasury

    Receives the protocol's share of every fee on this factory's pools and spends it buying EASE to burn. ETH can leave it no other way.

    0x718D0E0450F3141c2cAB2E54D3a884Ef6bd073D8
  • Token deployer

    The template the factory clones. Produces the ERC-20 itself.

    0xA7DA7Ace0418BabccF7Be2DA46c647dF607eE281
  • Holder-rewards token deployer

    The template for Holder Rewards launches: the same ERC-20 with a ledger of what each holder is owed.

    0xE73A9BC52CcC22bFD3401c6A0Def7caaD79d6f29
  • First launch factory

    The factory before this one. Every token it launched still trades through it.

    0x77C6180Ce3Ce8Abdec72B5E21fFcB7Ba5F44A1c6
  • First fee hook

    Bound to the first factory; prices its pools' trades.

    0x76F394C502F195C8171d1671104A2E7bcF8660Cc
  • Uniswap V4 PoolManager

    The singleton every pool lives inside. Not ours.

    0x8366a39CC670B4001A1121B8F6A443A643e40951
  • Universal Router

    What swaps are routed through. Not ours.

    0x8876789976dEcBfCbBbe364623C63652db8C0904
  • Permit2

    Approvals for selling. Canonical address, same on every chain.

    0x000000000022D473030F116dDEE9F6B43aC78BA3

Listing a token elsewhere

If you run a trading venue, a scanner or a wallet and want to carry few.fun launches, everything you need is on chain and none of it needs us. There is no API key, no allowlist and nothing to sign.

Find launches by watching the factory. It emits one event per launch carrying the token, the pool key and the creator, and `launched(address)` answers for any token after the fact — including whether it was launched here at all, which is the check worth doing before you trust anything else on this page about a given address.

Price a pool the way you would price any Uniswap V4 pool: read the PoolManager. `poolKeyOf(token)` gives you the key, and its hash is the pool id. The pool's own Uniswap fee is zero — the whole trading fee is taken by the hook, so a quote built from the fee tier alone will be too generous. `feeBps()` on the hook plus the pool's own extra tax is the real rate.

Route swaps through the Universal Router, not the PoolManager. Note that the router deployed on this chain still expects a `sqrtPriceLimitX96` word in its exact-input parameters, between `amountOutMinimum` and `hookData`; pass zero for no limit. Omitting it does not fail cleanly — the call reverts with no data on any pool quoted in an equity, and silently succeeds on one quoted in ether.

Token metadata lives on the token contract, written at launch and immutable. `imageCid()` is an IPFS CID, not a URL — resolve it through whichever gateway you use. `links()` returns website, twitter and telegram in that order, each an empty string when the creator left it blank. There is no off-chain metadata file and no token list to subscribe to.

factory.poolKeyOf(address token) → PoolKey
currency0, currency1, fee, tickSpacing, hooks. currency0 is always the quote asset.
factory.launched(address token) → Launch
Reverts for anything this factory did not deploy. Carries the quote asset id and the creator's tax.
factory.getQuoteAsset(uint256 id) → QuoteAsset
The asset a pool is priced in, its opening tick and its graduation threshold.
hook.feeBps() → uint256
The base rate, in basis points. Add the launch's own extraFeeBps for what a trader pays.
hook.claimable(PoolKey key) → (uint256, uint256)
Owed to the creator and to the protocol. claim(key) pays both; anyone may call it.
token.imageCid() → string
IPFS CID for the artwork. Empty when the creator uploaded none.
token.links() → (string, string, string)
website, twitter, telegram. Also readable individually.
token.creator() / token.launchedAt()
Who launched it and when. Informational — the fee wallet is held by the hook, not here.

The creator wallet

The address that launches a token is not necessarily the address that earns from it. A launch names a wallet for fees, and from that moment it is the only address that can ever be paid — not the launcher, not us, not a later owner of anything.

Left blank, it is the wallet you launch from. Set to something else, it is that, permanently: it is written into the pool at launch and there is no function anywhere that changes it. A mistyped address here cannot be corrected, which is why the form shows it back to you before you sign.

Fees from every token a wallet earns on can be collected together, in one transaction, from its profile page.

Contracts

Every launch is created by one factory, and every pool is priced by one hook. Both are verified on the explorer, and every token they deploy is verified automatically within about a minute of launching — the source is identical for every launch, so the explorer recognises it on sight.

The hook has no owner. Not a renounced owner, not a timelocked one — the contract has no ownership functions at all. Its fee, the split, the treasury it pays and the ceiling on what a creator may charge are compiled into it and cannot be changed by anyone, including us.

The factory does have an owner, who can register new paired assets, reprice one, add a launch template and move the launch fee. None of that touches a pool that already exists: a pool's price, its liquidity, its fee wallet and its split were all fixed in its own launch transaction.

The liquidity position is burned at launch and never comes back. Neither the creator nor we can withdraw it, and you do not have to take our word for it — the position is an NFT and its owner is the burn address.

Ready to launch something?

Launch a Token