Slippage on pump.fun Explained: Settings, Errors and Fixes

What slippage means on pump.fun, why trades fail with errors 6002 and 6003, how to choose a slippage setting, and how batch trades keep later wallets inside it.

By DevBundler Team · · 5 min read

The short answer

Slippage on pump.fun is how far the price may move between your quote and your trade landing. Your transaction carries a limit: a maximum SOL to pay on a buy or a minimum SOL to receive on a sell. If the price moves past it, the program refuses the trade with error 6002 (TooMuchSolRequired) or 6003 (TooLittleSolReceived).

Key takeaways

  • Every pump.fun buy carries a maximum SOL cost and every sell carries a minimum SOL return, both worked out from your slippage setting.
  • Error 6002 TooMuchSolRequired means a buy would have cost more than your limit; 6003 TooLittleSolReceived means a sell would have paid less than your limit.
  • A failed slippage check protects you: the trade does not happen, and you only lose the network fee.
  • Wider slippage lands more often but lets you trade at a worse price; tighter slippage protects price but fails more in busy moments.
  • In a multi-wallet batch, each wallet must be quoted after the ones before it, or later wallets hit slippage limits that were never reachable.

"Transaction failed: custom program error 6003." If you have traded on pump.fun for more than a day, you have probably seen something like that. It looks like a bug. It is actually the program doing its job: your trade would have filled at a worse price than you agreed to, so it refused.

That is slippage, and once you understand what the number in your settings controls, the errors stop being mysterious.

What is slippage on pump.fun?

When you press buy, your wallet or tool asks for a quote: "1 SOL gets you about this many tokens right now." Then it builds a transaction and sends it. Between the quote and the moment your transaction executes, other trades can land on the same bonding curve and move the price.

Slippage is the gap between the price you were quoted and the price you actually get. Your slippage setting is how much of that gap you are willing to accept.

The pump.fun program enforces it with a hard limit inside every trade:

TradeLimit carried in the transactionError if broken
BuyMaximum SOL you will pay for the tokens6002 TooMuchSolRequired
SellMinimum SOL you will accept for the tokens6003 TooLittleSolReceived

If the curve has moved past your limit by the time your trade runs, the program stops it. Nothing is bought or sold. You pay the network fee for the failed transaction, and that is it.

How a slippage failure happens
  1. Quote

    your tool prices the trade against the curve as it is now

  2. Other trades land

    buyers or sellers move the price first

  3. Your trade runs

    the program checks your max cost or min return

  4. Refused

    6002 on a buy, 6003 on a sell, no tokens move

Why does the price move so much?

Every pump.fun coin trades on a bonding curve, and on a curve the price is a direct function of how many tokens have been sold. Every buy raises the price and every sell lowers it. There is no order book absorbing trades at a fixed level.

Early on, the effect is large. On a fresh mainnet curve, a 1 SOL first buy gets roughly 3.4% of supply, and the next 1 SOL buy gets less because the price has already risen. When a coin is busy, a dozen trades can land in the same second, and your quote is stale before you even sign. The pump.fun bonding curve explained goes into the math.

After a coin migrates to PumpSwap the same idea applies, just with a pool instead of a curve. Your trade moves the pool's price, and so does everyone else's.

How much slippage should you set?

There is no correct number, but there is a clear trade-off.

Wider slippage

  • Lands more often when the coin is busy
  • Fewer failed transactions and wasted fees
  • You can end up paying more, or receiving less, than you expected

Tighter slippage

  • Protects the price you get
  • Good for quiet coins and large trades
  • Fails more often in fast moments, and you have to retry

What it depends on:

  • How active the coin is. A coin with constant trades needs more room than one that trades every few minutes.
  • Your trade size relative to the curve. A large buy moves the price itself, so a quote for it is more sensitive to anything landing first.
  • How much the exact price matters to you. If you just want in or out, a wider setting is fine. If the price is the whole point, keep it tight and accept retries.

Slippage when trading from many wallets

This is where most people get burned. Imagine you sell 50% from five wallets at once, and the tool quotes all five against the current curve. The first sell lands and lowers the price. The other four were quoted against the price before that sell, so their minimum SOL out is now above what the curve can pay. They fail with 6003, even though your slippage setting looked generous.

The fix is not to crank slippage up. It is to quote each wallet in the order it will be sent, against the price the previous wallets leave behind. DevBundler does this for every batch, buys and sells, so each wallet's limit is reachable. Why batch sells fail tells the whole story.

The same logic applies to launch buys. In a bundled launch, DevBundler quotes the dev wallet first, then each buyer after the ones before it, which is why later wallets show slightly higher SOL costs for the same percentage.

Other things that look like slippage but are not

Not every failed trade is a price problem. Before you widen slippage, check the actual error:

Read the error before you change settings

  • 6002 or 6003: price moved past your limit. Retry, or widen slippage a little if the coin is busy.
  • 6005 BondingCurveComplete: the curve finished. The coin now trades on PumpSwap, so trades on the curve are refused.
  • Insufficient funds: the wallet cannot cover the trade plus fees. Top it up.
  • Blockhash expired or not confirmed: the transaction never landed. A higher priority fee helps when the network is busy.

In DevBundler, dashboard trading switches to PumpSwap automatically once the curve completes. Slow landings are what the Normal, Fast and Turbo speed presets are for; they set the priority fee. Solana priority fees explained covers when they are worth paying.

A sensible default routine

  1. Start with a moderate slippage setting for normal trades.
  2. If a trade fails with 6002 or 6003 once, retry before changing anything. The price may have just ticked.
  3. If it keeps failing on a busy coin, widen slippage a step and raise the speed preset.
  4. For multi-wallet trades, use a tool that quotes in order rather than widening slippage to paper over bad quotes.

Frequently asked questions

›What does error 6003 mean on pump.fun?

Error 6003 is TooLittleSolReceived. Your sell would have returned less SOL than the minimum set by your slippage, usually because the price dropped between the quote and the transaction landing, so the program rejected it.

›What does error 6002 mean on pump.fun?

Error 6002 is TooMuchSolRequired. Your buy would have cost more SOL than the maximum your slippage allowed, usually because other buys landed first and pushed the price up.

›What slippage should I use on pump.fun?

It depends on how busy the coin is and how much you care about the exact price. A quiet coin can trade with tight slippage; a coin with many trades per second needs more room, and you accept a potentially worse fill in return.

›Do I lose money when a trade fails slippage?

You lose the transaction fee and any priority fee, but the trade itself does not happen, so no tokens or SOL change hands beyond that.

›Why do my sells fail when I sell from several wallets?

If every wallet is quoted against the same starting price, the first sell lowers the price and the later wallets can no longer reach their minimum SOL. Quoting each wallet in send order solves it.

Keep reading