ποΈBundles
Bundles enable sequential and atomic transaction execution on Solana, allowing you to batch execute trades or efficiently capture Miner Extractable Value (MEV)!
What Are Bundles?
Bundles are a list of transactions that execute sequentially and atomically, ensuring an all-or-nothing outcome. Hereβs what that means:
Sequentially: Transactions in a bundle are guaranteed to execute in the order they are listed.
Atomically: Bundles execute within the same slot(e.g. a bundle cannot cross slot boundaries). If the entire bundle executes successfully, all transactions are committed to the chain.
All-or-Nothing: Bundles can only contain successful transactions. If any transaction in a bundle fails, none of the transactions in the bundle will be committed to the chain.
This guarantees that all transactions in a bundle are executed in sequence and either all succeed or none are executed.
How Do Bundles Work?
Jito-Solana features a specialized bundle execution stage called BundleStage, designed to execute bundles. Users can send bundles to Jito's Block Engine, which forwards them to the validators running Jito-Solana.
When Can I Use Bundles?
Bundles are processed only when a Jito-Solana leader is producing blocks. Standard validator clients do not receive or execute bundles.
Examples of Bundle Usage
Arbitrage: Use bundles for atomic arbitrage by listening to Geyser for MEV opportunities. If a MEV opportunity is found, submit a bundle with transactions like
[user_tx, arb_tx]
. An open-source arbitrage bot using bundles is available here.Liquidations: Subscribe to oracle transactions. When an oracle update allows an account to be liquidated, submit a bundle with transactions like
[oracle_tx, liq_tx]
.Batching DeFi Operations: When transaction size limits or compute budgets prevent single-transaction execution, use bundles to batch DeFi operations to send to Jito's Block Engine. An example could be a market making on an on-chain DEX to avoid sequence IDs needed to ensure correct ordering of DeFi operations.
Tips
When tipping make sure to not use Address Lookup Tables for the tip accounts. Tips do not prioritize transactions for validators that are not Jito-Solana leaders, so tipping in these cases will be ineffective and a waste of money.
To incentivize validators to process bundles ahead of other transactions, bundles need to include tips. Submit a SOL transfer to one of the on-chain tip addresses listed below:
Mainnet
Tip Payment Program:
T1pyyaTNZsKv2WcRAB8oVnk93mLJw2XzjtVYqCsaHqt
Tip Distribution Program:
4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7
Tip Payment Accounts:
96gYZGLnJYVFmbjzopPSU6QiEV5fGqZNyN9nmNhvrZU5
HFqU5x63VTqvQss8hp11i4wVV8bD44PvwucfZ2bU7gRe
Cw8CFyM9FkoMi7K7Crf6HNQqf4uEMzpKw6QNghXLvLkY
ADaUMid9yfUytqMBgopwjb2DTLSokTSzL1zt6iGPaS49
DfXygSm4jCyNCybVYYK6DwvWqjKee8pbDmJGcLWNDXjh
ADuUkR4vqLUMWXxW9gh6D6L8pMSawimctcNZ5pGwDcEt
DttWaMuVvTiduZRnguLF7jNxTgiMBZ1hyAumKUiL2KRL
3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT
Jito Merkle Upload Authority:
GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib
Program Upgrade Authority:
Squads Multisig @ 9eZbWiHsPRsxLSiHxzg2pkXsAuQMwAjQrda7C7e21Fw6
Testnet
Tip Payment Program:
DCN82qDxJAQuSqHhv2BJuAgi41SPeKZB5ioBCTMNDrCC
Tip Distribution Program:
F2Zu7QZiTYUhPd7u9ukRVwxh7B71oA3NMJcHuCHc29P2
Tip Payment Accounts:
B1mrQSpdeMU9gCvkJ6VsXVVoYjRGkNA7TtjMyqxrhecH
aTtUk2DHgLhKZRDjePq6eiHRKC1XXFMBiSUfQ2JNDbN
E2eSqe33tuhAHKTrwky5uEjaVqnb2T9ns6nHHUrN8588
4xgEmT58RwTNsF5xm2RMYCnR1EVukdK8a1i2qFjnJFu3
EoW3SUQap7ZeynXQ2QJ847aerhxbPVr843uMeTfc9dxM
ARTtviJkLLt6cHGQDydfo1Wyk6M4VGZdKZ2ZhdnJL336
9n3d1K5YD2vECAbRFhFFGYNNjiXtHXJWn9F31t89vsAV
9ttgPBBhRYFuQccdR1DSnb7hydsWANoDsV3P9kaGMCEh
Jito Merkle Upload Authority:
GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib
Make sure your tip is included as an instruction in the last transaction of your bundle to prevent it from being stolen if a fork occurs.
Tip Guidelines
Amount: Tip amounts depend on demand. Although Compute Units (CUs) are not considered in the auction, more contested accounts typically require higher tips. Simple transfers usually need lower tips.
Minimum Tip: The block engine currently requires a minimum tip of 1,000 lamports.
Check recent tip amounts through these resources:
WebSocket showing tip amounts:
ws://bundles-api-rest.jito.wtf/api/v1/bundles/tip_stream
Block Engine Bundle Selection
The block engine performs several checks to decide which bundles to send to validators:
Basic Sanity Check: Ensures transactions are valid, signed properly, and the bundle contains 5 or fewer transactions.
Simulation Check: Verifies that all transactions in the bundle will succeed if sent to the validator and compares the payment to other submissions.
Auction Check: Groups bundles based on state read and write locks, simulates them, and orders them from highest to lowest payer. The top N highest paying bundles are selected.
Why Are My Bundles Not Landing?
Bundles may not land due to:
Full blocks (ongoing improvements aim to address this)
Losing the auction
Failing to meet the minimum tip amount of 1,000 lamports
Last updated