> For the complete documentation index, see [llms.txt](https://docs.j.tools/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.j.tools/concepts/bundles-and-jito.md).

# Bundles and Jito

A bundle is a group of transactions that land together, in the same block, all-or-nothing. Either every transaction in the group lands, or none of them do. J Tools builds these bundles and sends them to the Jito Block Engine, the piece of infrastructure that gives them a guaranteed shared slot.

```mermaid
flowchart TD
    You["You / Wallet: approve and sign"] --> JT["J Tools builds the bundle of txs"]
    JT --> BE["Jito Block Engine"]
    BE --> V["Validator: one shared slot"]
    V --> Out["Atomic: all land together, or all fail together"]
    classDef brand fill:#EF2A2A,stroke:#EF2A2A,color:#ffffff,font-weight:bold;
    classDef soft fill:#1f2937,stroke:#374151,color:#e5e7eb;
    class You,JT,BE,V soft;
    class Out brand;
```

This matters most when the order of two actions decides who wins. Create a token and buy it in the same block, and no bot can slip a buy in between. That is exactly what [Pump.fun Create and Bundle Buy](/tools/launch/pumpfun-create-and-bundle-buy.md) does, and the [fair-launch guide](/guides/pumpfun-safe-launch.md) walks through the playbook end to end.

[**Explore the tools in the app →**](https://j.tools/en/tools)

## Why a bundle instead of separate transactions

Send two transactions one after another and a lot can happen in the gap. Validators are free to reorder them. A sniper watching for new mints lands a buy right between your create and your first buy. Sometimes one confirms while the other simply expires.

A bundle closes that gap. The transactions are tied together before they ever reach a validator, so they land as one unit or not at all.

{% hint style="info" %}
**Atomic means all-or-nothing.** If any transaction in the bundle would fail, the whole bundle is dropped and nothing lands. You are never left with a half-finished state, like a pool created but the first buy missed.
{% endhint %}

Three common reasons to bundle:

* **Fair launch.** Your create and your first buy land in the same block, so you are first by design.
* **Anti-snipe.** Nobody can wedge a transaction between your steps, because there is no gap to wedge into.
* **Group trades.** Many wallets buy or sell in one coordinated block instead of a slow, leaky sequence. This is the engine behind [Bundled Trade](/tools/trade/bundled-trade.md). For routing a single wallet across many tokens at once without atomic bundling, see [Multi Swap](/tools/trade/multi-swap.md) instead.

## What a tip is

The Jito Block Engine is free public infrastructure. To get your bundle prioritized, you attach a small **tip**, paid in lamports to a Jito validator. Think of it as the priority fee for bundles. A higher tip during busy periods makes your bundle more attractive to include.

You do not hand-tune this. J Tools reads a recent tip floor and applies a small multiplier, so the tip tracks current network conditions on its own. It is part of the cost you see, separate from the platform fee for the tool.

{% hint style="warning" %}
**About fees.** Every action has two costs: the Solana **network fee** paid to validators, and the **J Tools platform fee**. The platform fee always shows in the app before you confirm, and nothing is charged until you sign. Fees can change over time, so trust the in-app summary rather than a number you saw once.
{% endhint %}

## How J Tools sends a bundle

{% stepper %}
{% step %}

### You sign in your wallet

Every transaction in the bundle is signed browser-side through your wallet adapter. J Tools never holds your keys.
{% endstep %}

{% step %}

### The bundle is assembled with a tip

The signed transactions are grouped, and a Jito tip is derived from the current tip floor.
{% endstep %}

{% step %}

### It goes to the Jito Block Engine

The bundle is submitted to the Block Engine, which runs across several regions worldwide. Bundles keep working even when other RPC providers are having a bad day.
{% endstep %}

{% step %}

### Landing is confirmed

J Tools watches the bundle's status. If only part of it lands, the whole bundle is re-sent so you never end up half-done.
{% endstep %}
{% endstepper %}

## Where bundles show up

A few tools use bundles under the hood. You do not configure anything; the tool sends a bundle when the action calls for one.

{% tabs %}
{% tab title="Launching" %}
**Create and buy in one block.** [Pump.fun Create and Bundle Buy](/tools/launch/pumpfun-create-and-bundle-buy.md) mints the token and places your first buy in the same block, so you lead your own launch instead of racing the bots that watch for new mints. [Open it in the app →](https://j.tools/en/tools/pump-create)
{% endtab %}

{% tab title="Trading" %}
**Coordinated group trades.** [Bundled Trade](/tools/trade/bundled-trade.md) batches buys or sells from many wallets into a single block. Useful when you want several wallets to act at once instead of trickling transactions out one at a time. [Open it in the app →](https://j.tools/en/tools/bundled-trade)
{% endtab %}
{% endtabs %}

## If something goes wrong

* **Bundle did not land.** The network was congested or the tip was too low for that moment. Try again; the tip re-estimates from the current floor.
* **Partial land.** J Tools detects this and re-sends the whole bundle. You should not see a half-applied result.
* **Transaction expired.** A blockhash in the bundle aged out before it landed. Submit again with a fresh one.

For the full list, see the [Error codes reference](/reference/error-codes.md).

## FAQ

<details>

<summary>Do I pay extra to use a bundle?</summary>

You pay the Jito tip on top of the usual network and platform fees. The tip goes to a Jito validator, not to J Tools. The full breakdown shows on the tool's fee summary before you confirm.

</details>

<details>

<summary>Does J Tools sign or hold anything for me?</summary>

No. Every transaction in the bundle is signed in your wallet, browser-side. The platform never sees or stores your keys.

</details>

<details>

<summary>What is the difference between a tip and a priority fee?</summary>

A priority fee bumps a single transaction up the queue. A tip does the same job for a whole bundle, paid to a Jito validator to land the group together. Bundles use tips; regular transactions use priority fees.

</details>

## Related tools

{% content-ref url="/pages/OUTARQ7CwmWSmwdYM3f6" %}
[Pump.fun Create and Bundle Buy](/tools/launch/pumpfun-create-and-bundle-buy.md)
{% endcontent-ref %}

{% content-ref url="/pages/zgLeX2wmooChfRiWqoSM" %}
[Bundled Trade](/tools/trade/bundled-trade.md)
{% endcontent-ref %}

{% hint style="success" %}
**J Tools is non-custodial.** We never hold your private keys and never ask for them. Every transaction is built in your browser and signed by your own wallet. If any page ever asks you to paste a private key, stop, close it, and let us know.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.j.tools/concepts/bundles-and-jito.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
