Volume bot slippage settings: finding the number that actually works

Slippage is the only setting with two opposite ways to lose money. Too tight and ordinary price movement rejects your transactions, each of which pays its fee and produces nothing. Too wide and you have published exactly how much value someone else can extract from every trade you send. There is a right answer, it is derivable from the pair rather than guessable, and almost nobody computes it because a default is sitting there and appears to work.

Volion Research Updated Jul 30, 2026 6 sections

What slippage tolerance actually controls

Slippage tolerance sets the worst execution price you will accept, encoded as a minimum output amount in the signed transaction. If the price at execution would give you less than that minimum, the program rejects the swap rather than filling you worse. It is a guarantee, not a preference.

Two consequences follow from it being signed into the instruction. First, a rejected swap cannot be fixed by resending, because the same minimum will be enforced again against a price that has already moved past it. Every retry needs a fresh quote or it is guaranteed to fail identically.

Second, the tolerance is public the moment the transaction is broadcast. Anyone watching can read how much room you have given and, if the room is worth taking, act inside it. That is the mechanism behind sandwich extraction, covered in sandwich MEV protection.

What too tight actually costs

Every rejected transaction pays the base fee of 5,000 lamports plus whatever priority fee was attached, and produces no volume. A tolerance below the pair's normal per-block movement turns a large share of a campaign into paid failures, and the effect compounds because each retry pays again.
ProgramSampled txFailure rateMedian feeCost per landed swap
Pump.fun bonding curve low sample2373.9%5,70021,839
Pump.fun AMM (post-graduation)17332.4%6,6559,845
Raydium CLMM low sample4965.3%10,57030,461
Meteora DLMM10969.7%8,45027,888
Orca Whirlpools low sample1877.8%5,22523,536
Jupiter aggregator v6 low sample3966.7%8,46225,411
Failure rates by venue, measured Sep 15, 2026 at 4:02 AM UTC across 1 finalized mainnet blocks. Slippage rejections are a large share of these. Fees in lamports.

Slippage rejections are a substantial part of the failure rates above, particularly on concentrated liquidity venues where quotes are computed against liquidity that other traders can move out of range before you land.

The trap is that a tight tolerance feels prudent. It reads as protecting yourself from bad fills, and the transactions that fail leave no visible trace on a chart, so the cost is invisible while the discipline feels virtuous. The money is gone all the same.

What too wide actually costs

A wide tolerance is an invitation with a number on it. Someone can buy ahead of your transaction, let it execute at the worse price you have agreed to accept, and sell into the movement you created. The value extracted is bounded by exactly the tolerance you set.

Whether anyone bothers depends on trade size. Extracting from a very small swap is not worth the effort or the fees, which is why campaigns built from small trades are poor targets regardless of their tolerance. Extracting from a large swap on a thin pool very much is worth it.

This produces a useful rule. For small trades, a somewhat wider tolerance is cheap insurance against failures and attracts little attention. For large trades, the same tolerance is a standing offer. The right setting is therefore a function of trade size as well as of the pair, which is why the two settings should be chosen together rather than separately.

Deriving the number from the pair

Observe how much the pair actually moves between blocks over a representative period, take a level that covers ordinary movement without covering unusual movement, and add a small margin for the delay between quoting and landing. That produces a tolerance fitted to the pair rather than inherited from another token.

The practical procedure needs no special tooling:

  1. Sample the movement. Watch the pair over a stretch of ordinary conditions and note the typical size of price changes between blocks. That is the movement your transactions have to survive.
  2. Cover the ordinary, not the exceptional. A tolerance that survives every spike is far too wide for normal conditions. Aim to clear routine movement and accept that violent periods will produce failures, because they should.
  3. Add margin for latency. The gap between quote and landing is exposure. Shorter latency means less margin needed, which is why building, signing and sending in one pass is worth more than it appears.
  4. Recheck when conditions change. A value derived during calm conditions will fail constantly during a move. The setting is not a constant.

If you would rather work from failures than from observation, the feedback loop is equally usable: if a large share of transactions are being rejected on price, the tolerance is below the pair's real movement and needs to come up. If everything lands and trades are filling noticeably worse than quoted, it is too wide.

How the right value differs by venue

On a Meteora DLMM pool, tolerance needs to accommodate roughly one bin step plus margin, since crossing a bin moves price by that full step. On concentrated Raydium and Orca pools it must survive ordinary movement without being wide enough to invite extraction. On a bonding curve it has to absorb an unpredictable fill position, which is why curve campaigns run wider.
  • Meteora DLMM. The bin step gives you a concrete number to work from, which is unusual and useful. Tolerance below one bin step means routine crossings reject you. Details in Meteora DLMM bin steps.
  • Concentrated pools. Movement can be sharp when price approaches a range boundary, so tolerance derived only from calm conditions underestimates. Smaller trades reduce the exposure more effectively than wider tolerance does.
  • Constant-product pools. The most forgiving case, since price impact is smooth and predictable from trade size and depth. Tolerance can be tighter here than anywhere else.
  • Bonding curve. Your effective price depends on where you land in the buy order, which cannot be known in advance. Wider tolerance is rational here and stops being rational the moment the token graduates, as covered in what changes at migration.

Why slippage and trade size are one decision

Larger trades move the price more, so they need wider tolerance, which increases what can be extracted from them. Smaller trades move it less, tolerate a tighter setting, and are not worth attacking. Reducing trade size therefore improves both sides of the slippage problem at once, which is rare among these settings.

This is the resolution to what otherwise looks like an impossible trade-off. You are not forced to choose between failing often and being extracted from; you can step out of the dilemma by trading smaller. The cost is more transactions to reach the same notional volume, which for a campaign is not a cost at all, since transaction count is closer to the actual objective than notional size is.

The sizing argument in full is in volume bot trade size, and how both fit with the other settings is in volume bot settings.

Both are configurable in the dashboard, and the effect of a given combination on total cost can be modelled first with the calculator. The measured failure data these recommendations rest on is published rather than asserted, which is the operating principle behind our Solana volume bot service generally.

Questions

What slippage should I set for a volume bot?
A value derived from how much your specific pair moves between blocks, plus a small margin for the delay between quoting and landing. There is no universal number, because a tolerance that is comfortable on a deep liquid pair will fail constantly on a thin one.
Why do my swaps fail with a slippage error?
The price moved past the minimum output you signed for before the transaction executed. Since that minimum is encoded in the instruction, resending the same transaction fails identically; a retry needs a fresh quote to have any chance.
Is higher slippage safer?
It reduces failures and increases what someone else can extract from each trade, since the tolerance defines exactly how much room is available to them. Whether anyone acts on it depends on trade size, which is why small trades can afford a more relaxed setting than large ones.
Does slippage tolerance differ by DEX?
Yes. On Meteora DLMM it should cover about one bin step plus margin. On concentrated Raydium and Orca pools it needs to survive movement near range boundaries. Constant-product pools are the most forgiving and tolerate the tightest setting.
Should I use a different slippage after my token graduates?
Usually tighter. On a bonding curve your effective price depends on an unpredictable position in the buy order, which justifies a wide setting. In a pool, price is calculable from depth before you send, so the same width is now unnecessary exposure.
How does trade size affect the right slippage?
Directly. Larger trades move the price more and so require wider tolerance, which in turn makes them worth extracting from. Trading smaller lets you tighten tolerance and stop being a target at the same time, which is why the two settings should be chosen together.