the maths
the exact bonding-curve math, pump.fun vs wwrd. same game — buys push price up a curve. the entire difference is what a sell does.
pump.fun — constant product
invariant x·y = k (virtual SOL × virtual tokens) price p = x / y = x² / k BUY Δtokens = y − k/(x+Δsol) SELL Δsol = x − k/(y+Δtok)
Sells run the same k backwards — every exit rides the identical curve down. Price is fully reversible.
wwrd — protected power curve
invariant S = k·V^β, β = 0.9 (supply vs vault) price p = V / (β·S) · floor NAV = V/S = β·p BUY S₁ = S₀·((V₀+0.97x)/V₀)^β, V₁ = V₀+0.99x SELL eth = 0.94·T·V/S → V₁ = V−0.95·T·V/S
Sells never touch the curve — they redeem from the vault at NAV. 5% of every exit stays, so the floor rises as people leave.
Identical scenario, both machines: 25 buys… then everyone sells
quoted price, indexed to 100 at launch
pump pricewwrd pricewwrd floor
worst case: you bought the exact top
−97%+
loss = 1 − p_after/p_entry · (1−fees)² dump → x returns to x₀ → p_after ≈ p₀. bought 7× above p₀ ⇒ ≈ −86%; deeper ⇒ −97%+. unbounded.
worst case: you bought the exact top
−17.94%, hard cap
recover = 0.97 · β · 0.94 = 0.9118·β loss = 1 − 0.9118·0.9 = 0.1794 floor is monotone: contract reverts any NAV drop.
fees: pump 1%/1% (pure extraction) · wwrd 3% buy / 6% sell — but 2%+5% of those stay in the vault: the fees are what makes the floor rise. cap applies to curve round-trips at β=0.9; a β=0.825 launch caps at −24.8%. Buying in a secondary megapool pool isn't capped relative to what you overpaid there — the protected path is the site's Buy/Sell.