how fee routing works
every coin on gravity is a pump.fun coin: same bonding curve, same trading, same graduation to pumpswap. what gravity adds is what happens to a coin's creator fees. each coin is treated as an apple thrown into the air, and its motion is measured the way Newton measured motion, with fluxions:
h = vS height: the curve's virtual SOL ḣ = x − y velocity: lift − weight (SOL of buys − sells), per bucket ḧ = ḣ[K−1] − ḣ[K−2] acceleration: change in velocity
0 · whose fees
pump.fun pays a creator fee on every trade to the coin's creator. a coin launched on gravity 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. gravity 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: like Newton's first law, nothing moves without a force.
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 (lift), y the sol of sells (weight), and ḣ = x − y the velocity: exactly how far traders moved the curve. the phase reads the signs of the last two buckets:
ḣ = ḣ[K−1] ḧ = ḣ[K−1] − ḣ[K−2] ḣ > 0, ḧ ≥ 0 → rising → creator fees buy the coin on pump.fun, then burn it ḣ > 0, ḧ < 0 → apogee → fees keep accumulating ḣ < 0, ḧ ≤ 0 → falling → creator fees move to the floor reserve ḣ < 0, ḧ > 0 → landing → fees keep accumulating ḣ = 0 → at rest → fees keep accumulating fewer than 2 buckets → on the branch (warmup) → fees keep accumulating
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 · the gravity estimate
when at least 3 buckets exist, a projectile is fitted through the bucket velocities by least squares: ḣ(t) = v₀ − g·t. g is the market's gravity (positive when the climb slows or the fall speeds up), v₀ its launch velocity at the start of the window. on each coin's page the fitted parabola h(t) = h₀ + v₀·t − ½·g·t² is drawn over the window it came from, never beyond it.
S₁ = Σ k S₂ = Σ k² Sv = Σ ḣ_k Skv = Σ k·ḣ_k k = 0 … K−1 D = K·S₂ − S₁² g = −(K·Skv − S₁·Sv) / D v₀ = (S₂·Sv − S₁·Skv) / D
g and v₀ describe the recent past of one market, they are not used by the routing, and they forecast nothing. the program computes them in 128-bit integers; this app runs the same integer arithmetic, and its test suite replays 200 cases 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 falling phase still moves collected fees to the floor.
the physics 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.