How Jito Bundles Work on Solana (Explained for Devs)
How a Jito bundle travels from your app to a Solana block: the block engine, the tip, ordering, atomic execution, and why a bundle sometimes never lands.
By DevBundler Team · · 5 min read
The short answer
A Jito bundle is a group of up to 5 Solana transactions sent to Jito's block engine instead of the normal transaction path. A Jito-enabled validator executes them in order and atomically, so all of them land in the same block or none do, and a tip transfer inside the bundle pays for inclusion.
Key takeaways
- A Jito bundle holds up to 5 transactions that execute in the order given, back to back, with nothing in between.
- Bundles are atomic: if any transaction would fail, the whole bundle is dropped and nothing is charged.
- The tip is an ordinary SOL transfer to one of Jito's tip accounts, placed inside a transaction in the bundle.
- A bundle can only land in a slot whose leader runs Jito's validator client, and before its blockhash expires.
- Bundles exist on mainnet only. On devnet, the same transactions have to be sent one by one.
Five transactions, one tip, one block. That is a Jito bundle in a sentence. The interesting part is the path those five transactions take, because it is different from how a normal Solana transaction gets into a block, and the differences explain both why bundles are useful for launches and why they sometimes vanish without a trace.
The normal path, for comparison
When you send an ordinary transaction, your RPC node forwards it to the current leader (the validator producing blocks for this slot) and the next few leaders. The leader's scheduler picks transactions from what it has received, roughly favoring higher priority fees, and packs them into the block. Your transaction lands somewhere in the block, or in a later block, or not at all.
There is no promise about ordering between two transactions you send. Send three buys from three wallets a few milliseconds apart and they can land in any order, in different blocks, with strangers' transactions between them.
What Jito adds
Jito Labs maintains a modified Solana validator client (Jito-Solana) and runs a service called the block engine. Validators that run the Jito client receive bundles from the block engine, alongside their normal transaction flow.
A bundle is a list of up to 5 signed transactions with two rules attached:
- Sequential. They execute in exactly the order listed, back to back. No outside transaction can be placed between them.
- Atomic. Either every transaction succeeds and they all land in the same block, or none of them land.
Your app
signs up to 5 transactions and sends them as one bundle
Block engine
simulates the bundle and drops it if any part fails
Auction
competes with other bundles on tip for space in the block
Leader
a Jito-enabled validator executes it in order, in one block
The block engine is the gatekeeper. It simulates each bundle before forwarding it. If transaction 3 of 5 would fail, for example because a wallet does not have enough SOL or a slippage check would trip, the whole bundle is thrown out at this stage. Nothing reaches the chain, so nothing is charged.
How the tip works
There is no special "tip field" in a Solana transaction. A Jito tip is a plain SOL transfer to one of a small set of tip accounts that Jito publishes. You put that transfer instruction inside one of the bundle's transactions, usually the last one.
Because the bundle is atomic, the tip has a nice property: it only gets paid if everything lands. A failed or dropped bundle costs you nothing.
When several bundles want space in the same block, the ones paying more for the space they use tend to win. That is the whole auction from your side: tip enough to be competitive at that moment. Jito's minimum and typical tip levels change, so check current figures rather than hardcoding a number. Jito tips explained covers how to choose one.
What a pump.fun launch bundle contains
Here is how DevBundler uses the 5-transaction limit for a mainnet launch:
| Transaction | What it does |
|---|---|
| 1 | Creates the coin, then the dev wallet buys |
| 2 | Buys from the first group of buyer wallets |
| 3 | Next group |
| 4 | Next group |
| 5 | Last group, plus the Jito tip |
Five transactions for up to 11 wallets only works because of an address lookup table. Every pump.fun buy references a long list of accounts, and a Solana transaction can be at most 1232 bytes. The lookup table lets each transaction refer to those accounts by 1-byte indexes instead of full 32-byte addresses. DevBundler creates one reusable table per account, once, for about 0.005 SOL.
Order is not cosmetic here. Each buy pushes the bonding curve price up for the next one, so the wallet in transaction 2 pays less per token than the wallet in transaction 5. Since the bundle runs in a fixed order, a tool can quote every wallet against the price left by the wallets before it, and the quotes will match what lands.
Why do bundles fail to land?
Bundles fail quietly. There is no on-chain error, because nothing reached the chain. These are the usual reasons:
Common reasons a bundle does not land
- A transaction fails simulation: a wallet short of SOL, or a pump.fun slippage error such as 6002 TooMuchSolRequired or 6003 TooLittleSolReceived.
- The coin address is already used, or the curve is already complete (6005 BondingCurveComplete).
- The tip is too low to win space while the network is busy.
- The blockhash expires before a Jito-enabled leader takes the bundle. A blockhash is only valid for about 150 slots, roughly a minute.
- The bundle reaches the block engine while the upcoming leaders are not running the Jito client, and by the time one is, the blockhash has expired.
Most Solana stake runs the Jito client, so the last case is less common than it sounds, but it happens. The fix for most of these is the same: rebuild with a fresh blockhash and send again. DevBundler checks balances, the coin address and the curve before it sends anything, so the first two reasons are usually caught before you spend a lamport.
What about devnet?
Jito bundles are a mainnet service, so there is nothing to send a bundle to on devnet. A bundler can still run the same launch there by sending the create and the buys one after another. You lose atomicity and same-block ordering, but you get to practice the whole flow with free test SOL. Keep in mind that devnet's pump.fun curve is configured very differently from mainnet, so the percentages you see there will not match a real launch.
Bundles outside of launches
The same mechanism is useful after launch too. Selling from several wallets is the mirror image of buying from them: you want the sells to land together, in a known order, without outside trades between them. DevBundler's trading bar has a "Bundle" mode (Premium) that packs selected wallets into one Jito bundle in the same block, alongside a "Fast" mode where each wallet sends its own transaction immediately. In Fast mode each wallet's trade stands on its own, so one failure does not hold up the rest; Bundle gives you the ordering and the all-or-nothing behavior.
If you want the deeper reasoning on why the atomic part holds, read why bundled transactions land together. If you want to see a bundle in action on your own coin, the full launch guide walks through every step.
Frequently asked questions
›How many transactions can a Jito bundle have?
Up to 5. They execute sequentially in the order you list them, and all of them land in the same block or none do.
›Do I pay the Jito tip if my bundle fails?
No. The tip is a transfer inside one of the bundle's transactions, and a bundle is all or nothing. If it does not land, the tip transfer never executes.
›Why did my Jito bundle not land?
Common reasons are a transaction that fails in simulation (for example a slippage error or a wallet short of SOL), a tip too low to win space in the block, or a blockhash that expired before a Jito-enabled leader picked the bundle up.
›Can I use Jito bundles on devnet?
No. Jito bundles are a mainnet service. Tools like DevBundler send the same transactions one after another on devnet, which is fine for practice but not atomic.
›Can someone else's transaction land between transactions in my bundle?
No. The bundle executes as one sequence. Other transactions can land before or after it in the same block, but not in the middle.
Keep reading
Why Bundled Transactions Land Together (or Not at All)
Why a Jito bundle lands all in one block or nothing: atomic execution, fixed order, what breaks a bundle, and what that means when you plan a pump.fun launch.
· 5 min read
Jito Tips Explained: How Much Should You Tip?
What a Jito tip is, how it differs from a priority fee, when you pay it, and how much to tip for a pump.fun launch bundle. Start at 0.005 SOL and adjust.
· 5 min read
What Is a pump.fun Bundler? A Clear Definition
A pump.fun bundler creates your coin and buys from several wallets in one atomic Jito bundle. What it is, how it works, what it costs and what it cannot do.
· 7 min read