how fee routing works
every coin on verhulst is a pump.fun coin: same bonding curve, same trading, same graduation to pumpswap. what verhulst adds is what happens to a coin's creator fees. each coin is treated as a flock on a pasture, and its growth is measured the way Pierre-François Verhulst measured populations in 1838, with logistic growth:
dP/dt = r·P·(1 − P/K) verhulst, 1838 P = vS the curve's virtual SOL ΔP = x − y SOL of buys − sells, per bucket g = ΔP / P growth rate per head
0 · whose fees
pump.fun pays a creator fee on every trade to the coin's creator. a coin launched on verhulst sets that creator to a program address, ["creator", mint], so only the program can collect and move those fees. the launcher does not receive them. for every other pump.fun coin the page shows a simulation of the same rule on that coin's live trades, labelled "sim".
1 · observations
the program reads the coin's pump.fun curve. each time it is cranked, the change in the curve's virtual sol since the last crank is one observation: sol in is a buy, sol out is a sell. verhulst cranks inside every trade it sends, and a keeper cranks after trades made anywhere else, so one observation is about one trade. no trade, no observation.
2 · the window and the phase
the last 100 observations are split into 10 buckets of 10, aligned to the newest. time is counted in buckets, not seconds. per bucket, x is the sol of buys (arrivals) and y the sol of sells (departures). starting from the reserve now and stepping back one bucket at a time, the program knows the reserve P each bucket opened at, and its growth rate per head, g = (x − y) / P, in parts per billion. the phase reads the last two:
g = g[n−1] Δg = g[n−1] − g[n−2] g > 0, Δg ≥ 0 → exponential → fees buy the coin back, then burn it g > 0, Δg < 0 → saturation → fees keep accumulating g < 0 → decline → fees move to the floor reserve g = 0 → equilibrium → fees keep accumulating fewer than 2 buckets → counting (warmup) → fees keep accumulating
Malthus's exponential keeps the rate per head steady; Verhulst's point was that it falls as the pasture fills. so growth at a steady or rising rate is exponential, and growth at a falling rate, saturation. a flock that follows Verhulst's curve exactly reads saturation all the way up. vaults under 0.001 sol wait for the next crank instead of paying for a tiny buyback.
3 · burn and floor
a burn is an ordinary pump.fun buy made by the program with the collected fees, followed by burning every token it bought. the floor reserve is a program-owned account, ["floor", mint]. the program has no instruction that moves lamports out of it: no withdraw, no close, no admin path, no redemption. the test suite proves this by scanning the source and the idl and by checking the balance never decreases across random crank sequences.
outstanding supply = total supply − total burned floor backing per token = floor reserve ÷ outstanding supply
floor backing per token can only rise. it is not a claim, not a promise and not a price support: the price can fall below it. nobody can withdraw the floor.
4 · verhulst's line (the estimates)
when at least 3 buckets exist, each gives a point, the reserve it opened at and its growth rate, and a straight line is fitted through them by least squares: Verhulst's g = r − (r/K)·P. r is the rate it gives an empty pasture; K, the reserve where it reaches zero, where arrivals and departures would balance. K exists only when the rate fell as the reserve rose. on each coin's page, the logistic curve built from r and K is drawn over the window it came from, never beyond it.
S₁ = Σ P_k S₂ = Σ P_k² Sg = Σ g_k SPg = Σ P_k·g_k k = 0 … n−1 D = n·S₂ − S₁² r = (S₂·Sg − S₁·SPg) / D K = (S₂·Sg − S₁·SPg) / −(n·SPg − S₁·Sg)
r and K describe the recent past of one market. they are not used by the routing and they forecast nothing; K is a level of the curve's virtual sol, not a price or a market-cap target. the program computes them in 128-bit integers; this app runs the same integer arithmetic, and its test suite replays 363 windows generated by the program's own tests. full spec in docs/MECHANISM.md.
5 · after graduation
when a coin completes its curve and moves to pumpswap, the curve stops changing: no new observations, no more buybacks on the curve. a decline phase still moves collected fees to the floor.
the population words are a way to read past trade flow, not a model of what comes next. nothing on this page is advice or a prediction. memecoins are highly speculative and most go to zero. paper mode is a simulation.