> 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/tools/trade/bundled-trade.md).

# Bundled Trade

[Bundled Trade](https://j.tools/en/tools/bundled-trade) is a combined buy and sell terminal. You import one wallet list, pick a direction and a DEX, then the tool groups every wallet's trade into same-block [Jito bundles](/concepts/bundles-and-jito.md) so they land together instead of trickling in one at a time. It handles up to 500 wallets, shares the same list across both modes, and shows the status of every wallet as the run goes.

```mermaid
flowchart TD
  A[Add the trades you want grouped] --> B[Bundle them through Jito]
  B --> C{All or nothing?}
  C --> D[Execute atomically in the same block]
  D --> E[One combined result]
  classDef brand fill:#EF2A2A,stroke:#EF2A2A,color:#ffffff,font-weight:bold;
  classDef soft fill:#1f2937,stroke:#374151,color:#e5e7eb;
  class A,B,C soft;
  class D,E brand;
```

{% 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 %}

## When to use this

* You want a coordinated buy across many wallets that all land in the same block, for an anti-MEV or fair-launch style entry.
* You want to exit positions across many wallets at once, selling a full balance or a percentage from each.
* You want one terminal for both bundled buy and bundled sell, without rebuilding the wallet list when you switch.
* You are targeting a specific DEX (Raydium, Pump.fun / PumpSwap, Meteora, or Orca) and want control over the Jito tip and batch size. See [DEXes and liquidity](/concepts/dexes-and-liquidity.md) for how each venue routes.

If trades do not need to land in the same block, [Multi Swap](/tools/trade/multi-swap.md) sends each wallet on its own with pacing and retries. For a single trade from one wallet, use [Swap](/tools/trade/swap.md).

## Before you start

* A connected wallet ([how to connect](/getting-started/quick-start.md)). It owns the run and anchors the fee and referral records. It does not fund the trades.
* The private keys for every trading wallet, imported through the **Import Wallets** modal. Each wallet's swap transaction is built and signed in your browser tab from its key.
* A valid [SPL token](/concepts/spl-vs-token2022.md) mint, picked with the built-in token selector.
* For buys, each wallet funded with enough SOL for its amount plus the network fee and the Jito tip. For sells, each wallet holding a balance of the token you chose.

{% hint style="warning" %}
**This tool imports raw private keys.** Bundled Trade signs each wallet's transaction locally from its private key, so the import modal asks you to paste those keys. That is by design for this tool, and the config marks it high risk. Keys stay in your browser tab and are used only to sign. Treat the wallets you import as hot wallets, and never paste a key you also use for long-term storage.
{% endhint %}

## Step by step

{% stepper %}
{% step %}

### Connect and choose a mode

Connect your wallet through the wallet source selector. This wallet is the run owner. Then pick **Buy** or **Sell** with the tab at the top. Switching modes keeps your imported wallet list, so you can flip from buy to sell without re-importing.
{% endstep %}

{% step %}

### Pick the DEX and the token

Choose the DEX route: Raydium, Pump.fun / PumpSwap, Meteora, or Orca. Then select the token mint with the built-in token selector. The tool will only accept a trade route that matches the DEX you picked.
{% endstep %}

{% step %}

### Set slippage, tip, and batch size

Choose a slippage tolerance (0.5, 1, 3, or 5 percent, where Auto is the same as the 5 percent preset, or a custom value), a Jito tip (default, high, ultra, or custom SOL), and how many transactions go in each bundle (3, 4, or 5).
{% endstep %}

{% step %}

### Import the wallets

Open the **Import Wallets** modal and add the private keys for the wallets you want to trade from, up to 500. Live SOL balances are fetched so you can see what each wallet holds.
{% endstep %}

{% step %}

### Fill in per-wallet amounts

In the wallet table, set what each wallet trades. For buys, enter the SOL amount per wallet. For sells, enter a number, `all` to sell the whole on-chain token balance, or a percentage like `50%`. You can filter rows, select only some, or remove any you do not want in the run.
{% endstep %}

{% step %}

### Review and execute

Check the summary: wallet count, total input, the estimated output, and the platform fee. When it looks right, click **Execute**. Each wallet gets a quote, the route is checked against your chosen DEX, and a signed transaction is built with that wallet's key.
{% endstep %}

{% step %}

### Watch the bundles land

Signed transactions are grouped into batches of your chosen size and sent to Jito. The terminal shows the bundle IDs, the count of successful and failed wallets, the batch plan, and the per-endpoint attempt history as each batch confirms.
{% endstep %}
{% endstepper %}

[**Open Bundled Trade in the app →**](https://j.tools/en/tools/bundled-trade)

{% hint style="info" %}
**About wallet warnings.** Some tools sign more than one thing in a single step, for example creating a token and its metadata together. Phantom can show a caution banner for these multi-step transactions. The banner is expected here and does not mean something is wrong. Read what you are signing, then approve.
{% endhint %}

## The options, explained

| Field             | What it does                                                                                                                                                  |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mode              | Buy or sell for the whole run, chosen with the Buy/Sell tab. Buy spends SOL for the token; Sell swaps the token back to SOL. Switching keeps the wallet list. |
| DEX               | The route to force: Raydium, Pump.fun / PumpSwap, Meteora, or Orca. A quote whose route does not match the selected DEX is rejected.                          |
| Token             | The SPL token mint to trade, chosen with the built-in token selector. Required before Execute is enabled.                                                     |
| Wallets           | The trading wallets, imported by private key through the Import Wallets modal. Up to 500 per run, with live SOL balances shown.                               |
| Amount (buy)      | SOL to spend for that wallet. Must be a number greater than zero.                                                                                             |
| Amount (sell)     | A number, `all` to sell the wallet's full on-chain token balance, or a percentage like `50%`. Amounts above the actual balance are rejected.                  |
| Slippage          | Tolerance in percent: 0.5, 1, 3, or 5, plus Auto, which uses the same 5 percent as the preset, or a custom value validated in the tool.                       |
| Jito tip          | The validator tip per bundle, in SOL: default, high, ultra, or a custom value. This is a separate tip, not the platform fee.                                  |
| Bundle batch size | Transactions per Jito bundle: 3, 4, or 5. Prepared transactions are sliced into batches of this size before they are sent.                                    |

{% hint style="info" %}
The **Jito tip** is a priority tip paid to the validator for each bundle, separate from the J Tools platform fee. The platform fee shows in the summary before you run. The estimated output in the summary is a rough preview from placeholder rates, not the real quoted amount, so treat it as a sanity check rather than an exact figure.
{% endhint %}

## Supported DEXs

Bundled Trade forces the route you select. If the token cannot be traded on that DEX, the quote is rejected and the row fails, so pick the venue where the token actually has liquidity.

{% tabs %}
{% tab title="Raydium" %}
Routes through Raydium, including its CPMM and CLMM pools. Use this for tokens with a live Raydium market.
{% endtab %}

{% tab title="Pump.fun / PumpSwap" %}
Covers tokens on a Pump.fun bonding curve and tokens that have graduated to a PumpSwap pool. The picker labels this option **Pump.fun / PumpSwap**.
{% endtab %}

{% tab title="Meteora" %}
Routes through Meteora, including its DLMM and DAMM pools.
{% endtab %}

{% tab title="Orca" %}
Routes through Orca, including Whirlpool pools.
{% endtab %}
{% endtabs %}

## If something goes wrong

* **No route for the selected DEX.** The token is not tradable on the DEX you picked, so the quote is rejected. Switch to the venue where the token has liquidity.
* **A sell row has no balance.** A wallet set to sell holds zero of the token. Remove it, or fund it with the token first.
* **A sell amount is too high.** A number or percentage above the wallet's actual on-chain balance is rejected. Lower it, or use `all`.
* **A buy wallet is underfunded.** A wallet does not hold enough SOL for its amount plus the network fee and the Jito tip. Top it up and rerun.
* **A bundle stays pending.** Jito polls for confirmation across its mainnet regions. If a bundle does not confirm inside the poll window, it is marked failed. Try again, and consider a higher Jito tip if the network is busy.
* **Phantom shows a caution banner.** These are fee-bearing, multi-signer transactions, so the banner can appear. Read what you are signing, then approve.

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

## FAQ

<details>

<summary>How is this different from Multi Swap?</summary>

Bundled Trade groups transactions into [Jito bundles](/getting-started/glossary.md) so a batch lands together in the same block. [Multi Swap](/tools/trade/multi-swap.md) sends each wallet on its own, with pacing, retries, and an optional Jito tip relay. Use Bundled Trade when same-block landing matters, and Multi Swap when it does not.

</details>

<details>

<summary>Does the connected wallet pay for the trades?</summary>

No. The wallet you connect owns the run and anchors the fee and referral records. The SOL for each buy comes from the imported wallet doing that trade, and each sell draws on that wallet's own token balance.

</details>

<details>

<summary>What does `all` do on a sell?</summary>

It reads the wallet's live on-chain token balance and sells the full amount. If the wallet holds none of the token, that row fails. You can also enter a fixed number or a percentage like `75%` instead.

</details>

<details>

<summary>What is the Jito tip, and is it the platform fee?</summary>

The Jito tip is a separate priority tip paid to the validator for each bundle. It is not the J Tools platform fee. The platform fee is shown in the summary before you run; the tip is set by the preset or custom value you choose.

</details>

<details>

<summary>How many wallets can one run handle?</summary>

Up to 500, imported by private key. They are sliced into Jito bundles of 3, 4, or 5 transactions, based on the batch size you pick.

</details>

## Related tools

{% content-ref url="/pages/sAoyZDh9f2RlcKOAuq5G" %}
[Multi Swap](/tools/trade/multi-swap.md)
{% endcontent-ref %}

{% content-ref url="/pages/wzTSdddfnEFKadxZXdPR" %}
[Swap](/tools/trade/swap.md)
{% endcontent-ref %}

{% 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/o5eO6abVdoCCB4WkfKVR" %}
[Holder Booster](/tools/boost/holder-booster.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/tools/trade/bundled-trade.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.
