All articles
Comparisons·June 27, 2026·6 min read

Solana Priority Fees vs Jito Tips: What Gets You Landed

Solana priority fees vs Jito tips compared: cost mechanics, landing rates under load, and when to use each for reliable trade execution.

Two knobs, two different auctions

A transaction that misses its slot on Solana didn't fail because the chain was "congested" in some vague sense. It failed because somebody else outbid you for block space, and you were using the wrong lever to compete. There are two separate mechanisms for that competition — compute-unit priority fees, which every validator's default scheduler respects, and Jito tips, which only matter to validators running the Jito-Solana client and participating in the MEV auction. Confusing the two, or assuming one subsumes the other, is the single most common reason a bot's landing rate craters exactly when it matters most: during a hot mint, a liquidation cascade, or a token launch.

Priority fees: paying the leader directly

Priority fees are a protocol-level construct. Every transaction has a compute unit (CU) limit and a compute unit price, set in micro-lamports per CU via ComputeBudgetProgram.setComputeUnitPrice. The current slot leader's scheduler (in the stock Agave client) orders pending transactions largely by fee-per-CU, so bidding higher increases your odds of being picked before the block fills. That's it — no auction house, no separate relay, just a fee baked into the transaction that the leader collects.

import { ComputeBudgetProgram, Transaction } from "@solana/web3.js";

const tx = new Transaction()
  .add(ComputeBudgetProgram.setComputeUnitLimit({ units: 200_000 }))
  .add(ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 50_000 })) // ~0.01 SOL total
  .add(swapIx);

The catch: this only helps if your transaction reaches the current leader's mempool-equivalent (their pending queue) in time, and only if that leader is actually respecting fee ordering rather than FIFO or some custom heuristic. Leader rotation happens every four slots (roughly 1.6 seconds), so a fee bid that would have landed with the previous leader is worthless against the next one if their local view of pending transactions differs. Pulling live fee data from getRecentPrioritizationFees per account, rather than guessing a flat number, is table stakes if you're running anything latency-sensitive — we cover the RPC side of this in our piece on Yellowstone gRPC versus standard Solana WebSocket RPC, which matters just as much as the fee itself for actually seeing the state you're reacting to.

Jito tips: paying for a guaranteed slot in a bundle

Jito tips work differently and solve a different problem. You send a bundle — up to five atomically-ordered transactions — to a Jito block engine, along with a tip paid to one of eight fixed tip accounts. Jito-running validators (a large majority of stake at this point, well north of 90% by some epochs) run an off-chain auction across submitted bundles and give the winning bundles guaranteed, ordered inclusion at the top of the block, ahead of the regular fee market entirely.

import { SearcherClient } from "jito-ts";

const tipIx = SystemProgram.transfer({
  fromPubkey: payer,
  toPubkey: JITO_TIP_ACCOUNTS[Math.floor(Math.random() * 8)],
  lamports: 2_000_000, // 0.002 SOL tip
});
// bundle = [tipIx, ...your instructions], sent via SearcherClient.sendBundle

The tip isn't a fee-per-CU bid — it's a flat lamport amount you attach, and the auction compares tips across bundles, not against ordinary priority-fee transactions. This is also why bundling and simple faster RPC access solve overlapping but distinct problems, which we get into more concretely in Jito bundles versus standard Solana RPC for trade landing.

Where the two actually diverge

Under light load, priority fees at even modest levels (5,000–20,000 microlamports/CU) land reliably because there's no real competition. Under load — a pump.fun graduation, a big Raydium pool launch, a liquidation wave on a lending protocol — priority-fee transactions start competing against every other bot doing the same naive fee bump, and landing rates for plain fee-based transactions can drop into the 20-40% range even at fees that felt generous an hour earlier. Jito bundles, because they get dedicated ordering ahead of the regular queue on Jito validators, hold up much better in exactly this scenario, which is why nearly every serious sniper and arb bot on Solana routes through Jito during volatile windows.

The tradeoff is that Jito tips only work on Jito-participating leaders. If the current slot leader isn't running Jito-Solana, your bundle simply doesn't get processed by them — it waits for the next Jito leader in rotation, which can cost you the exact slot you needed. Priority fees, by contrast, work on every leader, Jito or not, because it's part of the base protocol.

Dimension Priority fees Jito tips
Mechanism Fee-per-CU, protocol-level Flat lamport tip, off-chain auction
Works on every leader Yes Only Jito-Solana validators
Ordering guarantee Best-effort, leader-dependent Guaranteed top-of-block if bundle wins
Atomic multi-tx bundling No Yes (up to 5 tx)
Landing rate under heavy load Degrades fast Holds up better
Failed-bid cost Fee often still consumed if tx lands but reverts Untipped if bundle doesn't land (no-win, no-tip on failure)
Best for Steady-state, low-contention traffic Launches, liquidations, sniping, MEV-adjacent flows

That last row on failed-bid cost matters more than people give it credit for. A priority fee attached to a transaction that lands but reverts (say, a slippage check fails) still gets charged — you paid to lose. Jito's auction model means an unsuccessful bundle typically isn't tipped at all, since the tip transfer is part of the bundle and only executes if the whole bundle lands. That materially changes the cost profile for high-frequency, speculative strategies where most attempts are expected to fail.

The mistake we see most often

Teams building sniper bots frequently set a static priority fee, watch it work fine in testing, then get wrecked on a live launch because they never accounted for the fee market repricing in real time under contention. The fix isn't "use Jito instead" blindly — it's understanding your traffic pattern. If you're running steady arbitrage against relatively stable spreads, a well-tuned priority fee with live fee polling is often cheaper per landed transaction than routing every trade through Jito. If you're competing for a specific slot against dozens of other bots — new pool launches are the canonical case — bundling with a competitive tip is close to mandatory. It's also worth checking your actual swap routing before blaming the fee layer at all; a lot of "landing rate" problems trace back to routing inefficiency, which we break down in Jupiter versus Raydium swap routing execution.

Verdict

Use priority fees alone for steady-state trading where you're not racing a specific block — DCA bots, routine rebalancing, anything where losing a slot costs you seconds, not the whole trade. Use Jito bundles with tips for anything where you're racing other bots for the same opportunity: sniping new listings, front-running-adjacent arb, liquidations, or any strategy where atomic multi-instruction execution matters. In practice, most production trading bots we build end up running both — priority fees as the default, with a Jito bundle path that activates automatically once mempool contention or expected competition crosses a threshold. Getting that threshold and the tip-sizing logic right is fiddly enough that it's worth a second pair of eyes before you ship it with real capital behind it; our strategy consultation sessions exist specifically for tuning this kind of execution logic against your actual trading pattern.

If you're building or hardening a bot that needs to land trades reliably under real contention, our Solana sniper bot development work is built around exactly this fee-versus-tip decision layer.

Need a bot like this built?

We design, build and run trading bots on Solana, Hyperliquid and Polymarket.

Start a project
#Solana#Jito#priority fees#trading bots#MEV