πŸ—ƒοΈ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:

Block Engine Bundle Selection

The block engine performs several checks to decide which bundles to send to validators:

  1. Basic Sanity Check: Ensures transactions are valid, signed properly, and the bundle contains 5 or fewer transactions.

  2. Simulation Check: Verifies that all transactions in the bundle will succeed if sent to the validator and compares the payment to other submissions.

  3. 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