October 4, 2026
Pump.fun September 2026 Changes: Virtual Reserves on Pump AMM
September 2026 brought virtual quote reserves to PumpSwap, also called Pump AMM. The old explanation that only the bonding curve uses virtual reserves is now incomplete. Here is what changed for AMM prices and historical-data analysis.
AMM pricing now includes a virtual reserve
PumpSwap remains a constant-product AMM, but its pricing quote balance can differ from the tokens actually held in the vault. The pool carries a virtual quote adjustment, added to the real quote balance for both buys and sells. The base-token reserve remains the real vault balance. See Pump.fun's effective-reserve documentation.
# Illustrative on-chain raw units, not Parquet column mappings.real_quote_reserve = 30_000_000_000virtual_quote_adjustment = 5_000_000_000real_base_reserve = 1_000_000_000_000
effective_quote_reserve = real_quote_reserve + virtual_quote_adjustment# SOL quote: 9 decimals; example base token: 6 decimals.price_sol = (effective_quote_reserve / 10**9) / (real_base_reserve / 10**6)print(price_sol) # 0.000035 SOL per base tokenUsing only the real quote balance would give a different spot price when the adjustment is nonzero. This reserve ratio describes spot price; an actual trade also depends on trade size and fees.
September 30: the adjustment can be negative
Pump.fun's September 30 update specifies that the on-chain virtual_quote_reserves field is a signed i128 and may be negative. A negative adjustment lowers the pricing reserve below the vault balance; it does not mean the vault holds negative tokens. The program guarantees that the combined effective reserve remains nonnegative and fits in u64.
Indexers must preserve the sign when decoding pool accounts and BuyEvent/SellEvent logs. Older pool layouts can lack the appended field; the official compatibility rule is to treat that missing on-chain adjustment as zero.
What this means for PumpFunData
Both pump_fun and newer pump_amm files now expose virtual_token_reserve and virtual_lamports_reserve. Historical AMM files used real reserve fields. Check the schema table when combining files across this change; the dataset names and the signed on-chain adjustment are different concepts.
Our bonding-curve explanation and bonding curve versus AMM comparison now account for virtual reserves after graduation. The bonding curve and AMM still have different liquidity mechanics.
Read the updated schema
Check field meanings and historical compatibility before downloading or combining hourly files.
API documentation