How to swap on Solana with low slippage
By @solknifexyz · Reviewed
Slippage is the gap between the price you saw when you clicked Swap and the price your transaction actually executed at. On Solana it almost always shows up as a small number ahead of the decimal, but for thin pools and volatile pairs it can swallow whole percentage points of your trade. The good news: most of the slippage you see is preventable.
Where slippage actually comes from
Three different things get labeled “slippage” in Solana swap UIs:
- Price impact— your trade is large enough, relative to the pool's liquidity, to move the price. This is unavoidable; the only fix is to reduce the size of your trade or pick a deeper pool.
- Slippage tolerance— the maximum price drift you'll accept before the chain rejects the swap. Set too low it fails; set too high it's a blank check for MEV bots. This is what every swap UI's “slippage” setting actually controls.
- Stale quote — the price moved between the quote and the on-chain execution. On Solana this window is usually under a second, but volatile tokens move enough in a second to matter.
How aggregator pricing works (the short version)
SolKnife's swap routes through Jupiter. Jupiter scans most of the live Solana DEXs (Raydium, Orca, Meteora, Phoenix, Lifinity, and dozens more) and stitches together a route — sometimes a direct AMM hop, sometimes a three- or four-hop split across pools — that minimizes the total cost. The quote you see is what Jupiter currently thinks is the best route at that exact second.
Two consequences:
- Aggregator routing is almost always cheaper than picking a DEX directly. A direct Raydium swap might miss a deeper Meteora pool that's an extra hop away.
- The route can change between quote and execute. Higher volatility = more chance the route Jupiter built no longer looks optimal a second later.
Picking a slippage tolerance
SolKnife defaults to a sensible value (usually 0.5%) and lets you override it. Rough rules:
- Stablecoin to stablecoin (USDC ↔ USDT): 0.1% is plenty. Routes are deep and prices barely move.
- Major to major (SOL ↔ USDC): 0.3%–0.5% works for any normal trade size.
- Memecoins, low-cap tokens, anything illiquid: 1%–3% depending on volatility. Anything higher than that on a small trade and you're paying for someone's MEV bot to front-run you.
- Large trade in a thin pool: don't. Split the trade across smaller chunks over a few minutes, or pick a different pair entirely. The aggregator can only do so much when the depth isn't there.
The price impact is shown in the SolKnife quote. If it's above 1%, something is off about the route or the pool you're swapping through. Check the token first, and check the pool you intend to land in.
Check the token before you swap
Slippage isn't the only loss vector. A token can have an active freeze authority that lets the issuer immobilize your balance, or a transfer fee extension that quietly skims a percentage on every move. Both make “net out” slippage look worse than the quote suggested.
SolKnife runs the rug-checker on every output token in the quote, and surfaces a one-line summary before you sign. Before any non-trivial swap into something unfamiliar:
- Run the rug-checker on the output mint. See how to check a Solana token for a rug pull.
- Check the destination pool's depth and fee tier in the pool checker.
What it costs
- Network fee — a few thousand lamports per swap, plus priority fee in congested conditions.
- DEX / aggregator fee — built into the quote; you see the net.
- SolKnife platform fee — a small basis-point cut, configured by the operator; the current value is on the pricing page. The fee accrues as wSOL in the operator's fee account; the quote you see already accounts for it.
The flow, end to end
- Open the swap tool and connect your wallet.
- Pick the input + output tokens and amount. SolKnife pulls a live Jupiter quote and shows the price, route, expected minimum out, and price impact.
- Adjust slippage tolerance if needed (the default is fine for most pairs). For unfamiliar output tokens, scan the rug-check summary that loads alongside the quote.
- The transaction is built server-side and verified in your browser against a strict program allowlist before your wallet ever sees it. The fee is pinned in the transaction; it can't be redirected without the verifier rejecting the tx.
- Sign in your wallet. The server self-submits and reports the on-chain outcome (confirmed / failed / expired).
If the swap fails
- Expired: the quote went stale before execution. Re-quote and try again. If it keeps happening on the same pair, raise slippage tolerance a touch.
- Failed (slippage exceeded): price moved past your tolerance. Same fix as above.
- Failed (insufficient funds): account for the network fee + priority fee + platform fee. Leave a small SOL buffer.