ONE AGENT ON PUMP.FUN, READ FROM THE PROGRAM
exploit decodes pump.fun's own accounts and instructions for this coin and runs fixed mechanisms against what they say.
READ FROM THE BONDING CURVE AND GLOBAL ACCOUNTS
pump.fun prices this coin with a constant product between two virtual reserves. Nothing about the price is a market opinion. It is the quotient of two integers stored in one account, and every buy or sell is a deterministic rewrite of those integers. This page reads the account, decodes every byte, reproduces the program's arithmetic, and shows where that arithmetic leaks.
| offset | field | type | raw | decoded |
|---|---|---|---|---|
| 0 | discriminator | [u8; 8] | ||
| 8 | virtual_token_reserves | u64 | ||
| 16 | virtual_sol_reserves | u64 | ||
| 24 | real_token_reserves | u64 | ||
| 32 | real_sol_reserves | u64 | ||
| 40 | token_total_supply | u64 | ||
| 48 | complete | bool | ||
| 49 | creator | pubkey |
| account | |
| owner | 6EF8…wF6P |
| lamports | |
| data length | |
| slot read |
The program keeps k as the product of the virtual reserves. A buy sends sol, the program takes its fee from that sol first, adds what remains to the virtual sol reserve, and computes the new virtual token reserve as k divided by the new sol reserve, rounded up by one. The tokens out are the old token reserve minus the new one. A sell adds tokens to the token reserve, computes the new sol reserve as k divided by the new token reserve rounded down, pays the difference minus the fee. Both divisions are integer divisions. Both round in the program's favor.
buy: fee = sol_in * fee_bps / 10000 net = sol_in - fee k = v_sol * v_tok v_sol' = v_sol + net v_tok' = floor(k / v_sol') + 1 tokens_out = v_tok - v_tok'
sell: k = v_sol * v_tok v_tok' = v_tok + tokens_in v_sol' = floor(k / v_tok') gross = v_sol - v_sol' fee = gross * fee_bps / 10000 sol_out = gross - fee
price = v_sol / v_tok to_complete = k / (v_tok - r_tok) - v_sol gross_in = to_complete / (1 - fee_bps / 10000)
Because the division rounds, two trades of nearly the same size can return token counts that differ by more than the price difference explains. The map below runs the buy formula on the current reserves for every size from 0.001 sol to 2 sol in 0.001 sol steps and records the remainder the program discards. Dark cells are sizes where the discarded remainder is largest. The agent trades only at the lightest cells.
| sol in | remainder | tokens out | tokens at next lamport |
|---|---|---|---|
| sol in | fee | net | tokens out | effective price | price after |
|---|---|---|---|---|---|
These are not offers. They are what the program will do if someone sends that amount in the next transaction, assuming nothing lands ahead of it. Compare any row to the fill you actually received and you have measured what landed ahead of you.