> 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/swap.md).

# Swap

Last updated: June 2026 · Solana mainnet

[Swap](https://j.tools/en/tools/swap) trades one Solana token for another from your own browser wallet on Solana mainnet, routed through the Jupiter aggregator for the best price. You sign a single transaction, and the flat platform fee is shown in the in-app summary before you sign. No custody of your keys.

You pick what you pay and what you want back, the page pulls a live quote from Jupiter, and you sign one transaction in your wallet. Quotes refresh on their own, slippage can be automatic or fixed by hand, and you see the minimum you will receive before you ever click execute. It is the clean, one-screen option when you just want to trade SOL, USDC, USDT, or any custom mint without multi-wallet or bundled logic.

{% 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 one straightforward token-to-token swap from a single wallet, no batching.
* You want a route-checked Jupiter quote with live pricing and slippage control on one screen.
* You hold SOL or an SPL token and want to convert between SOL, USDC, USDT, or a mint you paste in.

If you need to run the same swap across many wallets, use [Multi Swap](/tools/trade/multi-swap.md). To pair a swap with other actions in one flow, look at [Bundled Trade](/tools/trade/bundled-trade.md). New to mints and SPL tokens? The [Glossary](/getting-started/glossary.md) covers the terms used here.

## Swap here vs. swapping on a DEX directly

|             | J Tools Swap                                                              | Picking a DEX by hand                |
| ----------- | ------------------------------------------------------------------------- | ------------------------------------ |
| Best route  | Jupiter compares Raydium, Meteora, Orca, PumpSwap and picks the best path | You commit to one DEX and pool       |
| Custody     | Runs in your own wallet, you sign every transaction                       | Same, on the DEX you choose          |
| Fee clarity | Flat platform fee shown in the summary before you sign                    | Pool and protocol fees vary by venue |
| Setup       | No-code, one screen, quote in seconds                                     | You find the pool and route yourself |
| Slippage    | Auto from price impact or manual presets                                  | Manual, per DEX                      |

## Before you start

* A connected wallet ([how to connect](/getting-started/quick-start.md)). Nothing executes without a connected signer.
* Enough of the token you are spending to cover the swap amount plus the platform fee and network costs.
* An output token that differs from the input token. Swapping a mint for itself is rejected.

## Step by step

{% stepper %}
{% step %}

### Connect and pick your tokens

Connect your wallet. Choose the token you pay (defaults to SOL) and the token you receive (defaults to USDC). The picker lists SOL, USDC, USDT, and your wallet-held tokens sorted by balance. Paste any custom mint to resolve it.
{% endstep %}

{% step %}

### Enter an amount

Type how much you want to spend, or click **Max** to fill the spendable balance (your balance minus a small reserve for the priority fee). After a short pause the page fetches a Jupiter quote and shows the route, the expected output, the price impact, and the minimum you will receive.
{% endstep %}

{% step %}

### Set slippage and speed

Choose **Auto** or **Manual** slippage, then a transaction speed preset. The page shows the exact priority fee and the platform fee live, so you can review both before you commit.
{% endstep %}

{% step %}

### Execute and confirm

Click **Execute Swap** and approve in your wallet. Wait for the confirmation. The success dialog gives you a Solscan link tied to your transaction signature.
{% endstep %}
{% endstepper %}

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

{% 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                                                                                                                                                                                                         |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| You Pay           | The token you spend and the amount. Defaults to SOL. Accepts decimals. **Max** fills the spendable balance (balance minus the priority-fee reserve). The quote auto-refreshes shortly after you change the input.    |
| You Receive       | The token you get back. Defaults to USDC. This field is read-only and filled from the live Jupiter quote. A switch-direction button swaps the pay and receive tokens.                                                |
| Token picker      | The shared token selector. Defaults to SOL, USDC, USDT, plus your wallet-held tokens sorted by balance. Paste any mint to add a custom token.                                                                        |
| Slippage mode     | **Auto** derives the tolerance from the quote's price impact (clamped between 0.3% and 5%). **Manual** gives you 0.5 / 1 / 2 / 5% presets plus a custom field (clamped between 0.1% and 20%). Default is Auto at 1%. |
| Transaction speed | The priority fee in SOL. Normal adds none, High and Turbo add progressively more, and Custom lets you set your own. The exact fee shows live before you execute.                                                     |

{% hint style="info" %}
Quotes go stale after about 30 seconds. If you wait too long and then execute, the page raises a stale-quote error and pulls a fresh quote. Just review the new numbers and execute again.
{% endhint %}

## Routing

Swap routes through the **Jupiter aggregator**. Jupiter checks the underlying [Solana DEXes](/concepts/dexes-and-liquidity.md) (Raydium V4, CPMM, and CLMM, Meteora, Orca Whirlpool, and PumpSwap) and picks the best path for your pair, so there is no manual DEX picker on this screen. You get the route Jupiter judges best at quote time, and the route breakdown is shown alongside the expected output.

## How much does a swap cost?

The swap carries a flat platform fee on the input amount, added to the Jupiter swap transaction and sent to the platform wallet when you sign. The Jupiter swap then runs on the input after that fee. On top of that you pay the standard Solana network fee and whatever priority fee your chosen speed preset sets. Every amount is shown in the in-app fee summary before you confirm. For the current schedule, see the [Fee schedule](/reference/fee-schedule.md).

## If something goes wrong

* **Quote went stale.** More than about 30 seconds passed since the quote loaded. The page refreshes automatically. Check the updated minimum received and execute again.
* **Same token on both sides.** The input and output mints match. Pick a different output token.
* **Not enough balance.** You need enough of the input token to cover the amount plus the platform fee and network costs. Lower the amount or top up.
* **Wallet rejected.** You declined the signature or the wallet timed out. Reconnect and retry.
* **No route found.** Jupiter could not find a path for that pair or size. Try a different amount or token.

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

## FAQ

<details>

<summary>Can I swap any token, not just SOL and stablecoins?</summary>

Yes. SOL, USDC, and USDT are defaults for convenience, and your wallet-held tokens show up sorted by balance. Paste any mint address into the picker to swap a custom token, as long as Jupiter can route it. Both classic SPL and [Token-2022](/concepts/spl-vs-token2022.md) mints work where a route exists.

</details>

<details>

<summary>What is the difference between Auto and Manual slippage?</summary>

Auto reads the quote's price impact and sets a tolerance for you, kept inside a safe range. Manual lets you pick a fixed preset or type your own value. Auto is the default and works for most trades; switch to Manual when you want tight control on a volatile pair.

</details>

<details>

<summary>Why did my swap ask for a fresh quote before going through?</summary>

Quotes expire after roughly 30 seconds so you never trade on a stale price. If yours aged out, the page pulls a new quote. Review the new expected output and minimum received, then execute.

</details>

<details>

<summary>Does J Tools hold my tokens or keys?</summary>

No. The swap is built for your wallet and you sign it yourself. J Tools never holds, requests, or stores your private keys.

</details>

## Related tools

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

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

{% content-ref url="/pages/ABVX2mBQDoCv7DEdVmKp" %}
[Multi Sender](/tools/wallets/multi-sender.md)
{% endcontent-ref %}

{% content-ref url="/pages/QT0nYfDbGpJo4Cm5Tbs6" %}
[Create LP](/tools/liquidity/create-lp.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/swap.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.
