DeFi Intel

Use Jupiter on Solana: Swaps, Limit Orders and DCA

DifficultyIntermediate Estimated time20 minutes Last updated2026-07-28

Jupiter is Solana's dominant DEX aggregator. This guide covers how its routing actually works, the difference between Ultra and Manual mode, what each product really costs, and the specific ways a Jupiter trade goes wrong.

What Jupiter actually is

Jupiter is not an exchange with its own order book or its own liquidity pools. It is a router: you tell it what you want to sell and what you want to buy, and it searches Solana's liquidity — AMMs, concentrated-liquidity pools, request-for-quote market makers — for the best execution, then packages the result into a single Solana transaction that you sign once.

That single-signature model is the most important structural difference from Ethereum DEXs, and it changes the whole risk profile. On Ethereum you first grant an ERC-20 allowance and then swap, leaving a standing permission behind. On Solana a swap is authorised and executed in one atomic transaction; there is no lingering allowance to forget about. The corresponding Solana-specific hazards are different — expiring blockhashes, priority-fee auctions, and token-account rent — and this guide covers those instead.

Jupiter has also grown well beyond swapping. The current product surface includes spot swaps, trigger (limit) orders, recurring orders (DCA), perpetuals, a lending market, prediction markets, token and price data APIs, and a spend/card layer. Most people only need the first three.

How the routing works: Juno, Metis, JupiterZ and Beam

Jupiter's execution stack is worth understanding because it explains why the same swap can behave very differently under different settings.

The practical upshot: when you use Ultra mode you are not just getting a route, you are getting Jupiter's slippage estimation, priority-fee selection, MEV-protected broadcasting and landing infrastructure as a bundle. When you use Manual mode you are opting out of all of it.

What you'll need (prerequisites)

Recommended for this tutorial

Tools and accounts referenced in the steps below:

Secure your DeFi wallet with Ledger

Step-by-step: a spot swap

  1. Step 1: Reach the real Jupiter

    Type the domain rather than clicking a search result, and bookmark it. Solana's fee environment makes drainer sites cheap to operate at scale, and Jupiter is one of the most-cloned front ends in crypto. If a site asks you to "sync", "validate" or "claim" before it will let you swap, it is not Jupiter.

  2. Step 2: Connect a Solana wallet

    Choose your wallet and approve the connection. Connecting is a read-only handshake — no transaction, no signature that moves funds. Because Solana has no persistent allowance model, connecting a wallet to a malicious site is less immediately dangerous than on Ethereum; the danger arrives at the signing step, where a drainer will ask you to sign a transaction that transfers your balances outright.

  3. Step 3: Pick your mode — Ultra or Manual

    This is the single most consequential setting on the page. Per Jupiter's own comparison: Ultra Mode gives you slippage set "Auto (via Real-Time Slippage Estimator)", automatic transaction broadcasting, priority fees set automatically "to ensure high success without overpaying", MEV protection Jupiter describes as "best in class", and gasless swaps for most tokens. Manual Mode gives you custom slippage, custom broadcasting, custom priority fees and the ability to exclude specific AMMs from your route — but explicitly no MEV protection and no gasless swaps. Unless you have a concrete reason to hand-tune, Ultra is the correct default for almost everyone.

  4. Step 4: Select tokens by mint address, not by ticker

    Paste the mint address for anything unfamiliar and cross-check it against a second source. Jupiter surfaces verification status and an organic-score signal alongside search results — use them, but treat them as a filter rather than an endorsement. Anyone can create a token called USDC. Our guides on checking token liquidity and detecting rug pulls cover the checks worth doing before you buy anything obscure.

  5. Step 5: Enter the amount and read the quote properly

    Look at three numbers, not one. The output amount is what you expect to receive. Price impact is how much your own order moves the market — this is a real cost and it is not a fee, so it never appears in any fee table. Minimum received is the worst case the transaction will accept before it fails. If price impact is more than a fraction of a percent on a size you consider normal, the token's liquidity is thin and you should reduce the size.

  6. Step 6: Set slippage — or, preferably, don't

    In Ultra mode, RTSE sets slippage dynamically from token category, historical and live slippage data, and real-time failure rates. Leaving it alone is usually better than guessing, because the estimator sees market conditions you cannot. If you switch to Manual and set slippage yourself, understand what you are authorising: slippage tolerance is a ceiling on how much worse than quoted the execution may be, and a high tolerance on Solana is an open invitation to sandwich bots. A 20% tolerance to "make the trade go through" is how people lose 20%.

  7. Step 7: Sign, and read what you are signing

    Modern Solana wallets simulate the transaction and show the net balance change. Read it. The transaction should debit exactly the input token and credit the output token — nothing else. If the simulation shows additional token transfers, an unexpected account being set as an authority, or a warning that simulation failed, reject it.

  8. Step 8: Verify on a block explorer

    Open the signature on Solscan or the Solana Explorer and confirm the balance changes match. Save the signature. Note that Solana transactions either succeed or fail — there is no "pending forever" state — so if you see nothing after a short wait, the transaction expired rather than being stuck.

Limit orders (Trigger) and recurring orders (DCA)

Jupiter's non-market order types are keeper-executed: you create an order, funds are held in a vault, and independent keepers execute it when your condition is met.

Trigger / limit orders. Jupiter runs two generations of this product and they behave differently. V1 triggers on the pool rate between two tokens and guarantees the output amount — when the price hits your level, a keeper executes and the bought tokens, minus fees, land in your wallet. V2 triggers instead on a token's USD price or market cap, and executes the fill through Ultra, which means it prioritises minimal slippage over a guaranteed amount — so the final output can differ from the estimate. V2 expiry options are documented as "10 minutes, 1 hour, 1 day, 3 days, 7 days (the default), 30 days, or a custom date." Note that default expiry: an order you forget about will expire in a week. Jupiter's API docs list a minimum of $10 equivalent for price orders.

Recurring orders (DCA). Two flavours: time-based, which executes at fixed intervals, and price-based, which executes when market conditions are met. Minimums per the docs are at least $10 per round with a minimum of two rounds. Slippage is not something you set once — "the keeper sets slippage per round from live market conditions at fill time." That is generally a good thing, but it means each round can execute at a slightly different effective cost, and a scheduled buy into a token that has become illiquid will execute at whatever the market offers.

Both order types share one non-obvious property: your funds sit in a program-owned vault until filled or cancelled. Cancelling returns them, but they are not in your wallet in the meantime and they are exposed to the order program's smart-contract risk for the duration.

Fees, and how each one is charged

Jupiter's fee structure is genuinely unusual in that the manual path is free and the managed path costs a few basis points. From the official docs:

These are the numbers the documentation states today. Fee parameters change, and the Ultra fee in particular is category-dependent — always read the fee line the interface shows you for your specific pair before confirming.

Security and pitfalls

Troubleshooting

When not to use this route

FAQ

Does Jupiter charge a fee on swaps?

It depends on the mode. Manual Mode swaps carry no Jupiter commission at all — you pay only Solana network fees and any Jito tip. Ultra Mode charges a category-based fee: 0 bps on stable-to-stable, LST-to-LST and Jupiter-related routes, 2 bps SOL-to-stable, 5 bps LST-to-stable, 10 bps for most other pairs, and 50 bps for tokens launched within the past 24 hours.

Should I use Ultra or Manual mode?

Ultra for almost everyone. It bundles automatic slippage via RTSE, automatic priority fees, MEV protection and Jupiter's own transaction-landing infrastructure, and it supports gasless swaps for most tokens. Manual is free of Jupiter commission but explicitly has no MEV protection and requires you to set slippage, priority fees and broadcasting yourself.

What slippage should I set?

In Ultra mode, none — the Real-Time Slippage Estimator sets it from token category, historical and live slippage data and current failure rates. If you are in Manual mode, treat slippage as a maximum acceptable loss rather than a knob to turn up until the trade succeeds. Persistent failures mean your order is too large for the pool.

What do limit orders and DCA cost?

Limit orders on V1 are a flat 0.1% charged only when the order executes. V2 charges 0.03% on stablecoin pairs or 0.1% on other pairs, plus the 0–0.5% Ultra routing fee because V2 fills route through Ultra. Recurring (DCA) orders are 0.1%. Minimums are around $10 equivalent per price order and $10 per DCA round with at least two rounds.

Do I need to revoke approvals after using Jupiter?

No — Solana has no ERC-20-style standing allowance. A swap is authorised and executed in one atomic transaction, so there is nothing left behind to revoke. The equivalent discipline on Solana is refusing to sign transactions you have not simulated and read.

My transaction expired. Did I lose money?

No. A Solana transaction that misses its blockhash window simply never executes — no tokens move. Retry, and let Ultra handle the priority fee, or raise it manually if you are hand-configuring during congestion.

Can I undo a swap?

No. On-chain transactions are irreversible. Test with a small amount first, verify the mint address, and read your wallet's simulated balance change before signing.