Docs

The whole mechanism, in one page.

FOMO100 is a pons v2 token on Robinhood Chain. Every trade of it pays a creator tax into a vault, the vault holds the coins the top of FOMO’s leaderboard hold most, and anyone can hand FOMO100 back to the vault for their slice of everything in it.

The token

FOMO100 was launched on pons.family, Robinhood Chain’s launchpad: a plain ERC-20 with a fixed supply of one billion, all of it minted once to its bonding curve. It trades there against ETH until the curve sells out (at 4.2 ETH of real reserve), then on a Uniswap v4 pool that pons creates and locks for good.

It was launched with the vault as its creator fee recipient and a 2% creator tax. So every buy and every sell, on the curve and later on the pool, pays the vault 2% plus the creator’s part of pons’s own 1% fee (70% of it). Those fees are credited to pons’s fee escrow; collect() brings them into the vault, and anyone may call it.

What backs it

The vault holds ETH (the fees not spent yet) and the coins the keeper bought with it. Every FOMO100 that exists outside the vault and the dead address counts the same: that is circulating(). One FOMO100 is a claim on 1 / circulating of everything the vault holds, whether it sits in a wallet, on the curve or in the pool.

So trading FOMO100 never dilutes anyone’s backing: only fees raise it, and only the coins’ own prices move it. When the market prices FOMO100 under its slice, buying it and handing it back pays, and that trade is what holds the price up. The backing is a floor, not a peg.

Handing it back

redeemInKind(amount, to, skip) takes your FOMO100, burns it, and sends you its slice of every coin in the vault and of its ETH. It touches no pool, charges no fee and has no pause. skip lets you leave a coin behind if its transfer reverts, so one broken coin cannot hold the others hostage.

redeem(amount, minEthOut, to) does the same and sells the coins for ETH on their pools on the way out, less a redeem fee (0.5% now, 1% at most) that stays in the vault with the holders who remain. If any pool cannot take its whole sale it reverts: the way past a broken pool is the one in kind.

How the coins are chosen

The roster is FOMO’s leaderboard: up to 150 traders and their wallets. For every coin those wallets hold, the keeper reads each wallet’s balance on chain and counts the traders whose position is worth more than dust. One trader, one vote: a coin’s score is how many of the 150 hold it, and the ETH they hold in it only breaks ties.

To be eligible a coin needs a Uniswap v4 pool against native ETH with enough depth, and a minimum number of holders. The top ten take the seats; weights follow the holder counts, capped per coin. The only input that is not on chain is who is on the leaderboard. Everything after that, anyone can recompute.

What the keeper can do

The keeper proposes coins, samples prices, collects the fees and calls rebalance(sells, buys). A rebalance sells coins for ETH and buys admitted coins with ETH, through each coin’s registered pool, inside the contract. There is no function that moves anything anywhere else.

  • A coin must be proposed on chain and wait out the admission delay before any of it is bought.
  • Each pool is traded only while within a band of the contract’s own price reference, and only if that reference is fresh.
  • Each trade carries a price limit and stops where it would have moved its pool by the impact cap.
  • ETH sold and ETH bought per day each stay under a share of the vault, measured at reference prices.
  • A coin just bought cannot weigh more than the weight cap.
  • FOMO100 itself can never be a component: a claim on a claim.

Live values and their ceilings are in the app, read from the contract.

The price reference

The contract keeps its own price for each coin: anyone can call poke(tokens), which records a pool’s price at most once every five minutes. The reference is the median of the last three samples and expires after forty-five minutes. To move it, someone has to hold a false price in a deep pool across two samples, against everyone paid to correct it. It never prices a redemption; it only decides whether the keeper may trade.

What the owner can do

Name FOMO100 once (setToken, which checks on pons that the launch pays the vault), set the keeper (zero retires it: the basket freezes, FOMO100 stays redeemable), the redeem fee and the limits, each inside a constant ceiling compiled into the contract. Veto a proposed coin. Allow a specific hook. It cannot pause handing back, withdraw anything or redirect the fees.

Contract surface

redeemInKind / redeem
Hand FOMO100 back for the coins themselves, or for ETH.
collect
Bring the fees pons owes the vault in. Permissionless.
poke
Sample pool prices. Permissionless.
propose / proposePool / adoptPool
Keeper. Announce a coin, or a move to a deeper pool; both wait the delay.
rebalance / dropDust
Keeper. Trade inside the bounds; write off a dead sliver under 0.1% of the vault.
proposeDrop / drop
Keeper. Write off a coin whose pool died, after the same public delay, so holders can take their part of it first.
basket / componentOf / nav / backingPerToken / marketPrice / pendingFees / redeemableFor
Views. What this site reads.

The vault is at 0x2CC41036E63F6af3305F13A023C6a89AfA288c67.

Risks

  • The vault holds memecoins. They are correlated, thin and can go to zero, and the backing with them.
  • FOMO100 trades above its backing most of the time. The part of the price over the backing is only what the market pays, and it can vanish.
  • The keeper is trusted with taste and timing. The bounds slow and shape what it can do; they do not make it right.
  • pons runs FOMO100’s market and its fee escrow, and pons’s owner can, after a public timelock, redirect a launch’s creator fees.
  • The contract is unaudited and owned by one key.
  • FOMO100 is independent. It is not affiliated with FOMO, pons, Robinhood or Uniswap.