Slippage on Bonding Curves: Price Impact, Tolerance and Failed Trades
Why trades on pump.fun-style curves fail with slippage exceeded, the math of price impact, how to pick a tolerance and how bundled launches price buys.
"Slippage exceeded" is the most common reason a buy or sell on a bonding curve fails. Two different things hide behind the word: price impact, which your own trade causes, and slippage tolerance, the protection you set against other trades landing first. On a bonding curve both are large and predictable, which makes them easy to plan for once you see the math.
Price impact: your own trade moves the price
A bonding curve sells tokens from a constant-product formula: every token you take out makes the next one more expensive. So a bigger buy pays a higher average price than a small one, even if nobody else trades.
An illustrative example on a curve that starts with 30 SOL and 1.073 billion tokens of virtual reserves (fees ignored, numbers rounded):
- A 1 SOL first buy gets about 34.6 million tokens.
- A 5 SOL first buy gets about 153 million - not 5 x 34.6 = 173 million. Its average price is about 13% worse than the 1 SOL buy.
That is price impact. It isn't a loss to anyone - it is how the curve works - and it is fully known before you send the trade. The bonding curve calculator shows it for any amount on a live token.
Slippage tolerance: protection against being front-run
The problem is order. You quote your buy against the current reserves, but other buys may land before yours. Continue the example: you quote a 1 SOL buy at the start - 34.6 million tokens - but someone's 5 SOL buy lands just before yours. Now your 1 SOL gets about 25.5 million tokens: 26% fewer than quoted.
Slippage tolerance sets the minimum you accept. Every buy instruction carries a "minimum tokens out" (or, on sells, a "minimum SOL out"). With 10% tolerance on the 34.6 million quote, the minimum is about 31.1 million; the trade above would receive 25.5 million, so it fails instead of filling at a much worse price. That failure is the "slippage exceeded" error.
Choosing a tolerance
- Too low - trades fail whenever anything lands first. On a busy new token that can be most of them.
- Too high - trades always fill, but a sandwich bot or a burst of buys can push your fill far from the quote.
- Sells need care too. A sell into a falling curve gets less SOL than quoted; set the tolerance for the speed of the market, not the calm moment you clicked.
SolBundle's Terminal defaults to 10% and lets you set 1-50%. Trades are sent through Jito, which removes the public-mempool sandwich risk that makes high tolerances dangerous elsewhere (mempool exposure explained).
Slippage in a bundled launch
A launch bundle is the one place where order is fully under your control. The creation, the dev buy and the bundle wallets' buys execute in a fixed order inside one bundle, so each buy's price can be computed exactly from the ones before it. SolBundle prices the buys of the same bundle this way, in order, offline, and adds a 5% tolerance on top. Nothing outside the bundle can land between them (same-block bundling).
Snipe wallets fire right after the launch bundle, in parallel, and their order isn't known. So each snipe is priced for the worst case - as if all the other snipes landed before it. That is why snipe buys rarely fail on slippage even when 200 of them go out at once (same-slot vs bundled buys).
Frequently asked questions
What slippage should I use on pump.fun?
For buys on an active new token 10% is a common default; raise it if buys keep failing and the token is moving fast. Through private routes like Jito the sandwich risk of a higher tolerance is smaller.
What does 'slippage exceeded' mean?
Other trades landed before yours and moved the price, so your trade would have received less than the minimum you set. It failed instead of filling at the worse price.
Is price impact the same as slippage?
No. Price impact is the move your own trade causes and is known in advance. Slippage tolerance is the extra move from other trades you accept before the trade fails.
Ready to build your launch?
Configure wallets, bundle execution and launch from one workspace.