top of page

Jupiter Swap Guide 2026: Solana's Leading DEX Aggregator

Jupiter has established itself as the undisputed king of decentralized exchange (DEX) aggregation on Solana. As the backbone of DeFi on Solana, Jupiter processes billions in trading volume by connecting users to the best prices across more than 20 different DEXs and liquidity pools.

This guide covers everything you need to know about Jupiter Swap—from connecting your wallet and executing your first swap to advanced features like limit orders, DCA, and API integration for developers.

Part 1: What Is Jupiter Swap?

Jupiter is a DEX aggregator—think of it as a smart router for token swaps on Solana. Instead of checking individual exchanges like Raydium, Orca, or Meteora one by one, Jupiter scans them all simultaneously and finds the absolute best price for your trade.

Key Features at a Glance

FeatureDetails

BlockchainSolana

TVL (Total Value Locked)$2.8+ billion

Liquidity Sources20+ DEXs and AMMs

Unique FeaturesLimit Orders, DCA, Perpetuals

Core TechnologySmart routing + Trade splitting

Gas Fees< $0.01 per transaction

How Jupiter Compares to Centralized Exchanges

FeatureJupiter SwapCEX (e.g., Binance, Coinbase)

Account RequiredNo (just a wallet)Yes

KYC RequiredNoYes

Custody of fundsYou control your walletExchange holds funds

Trading feesNetwork gas only (~$0.01)Maker/taker fees (0.1-0.5%)

Available tokensAll SPL tokens on SolanaLimited listings

Why Jupiter Is the #1 Choice on Solana

Jupiter isn't just popular—it's dominant. It serves as the core liquidity infrastructure for Solana DeFi and powers millions of transactions daily. The platform's smart routing algorithm doesn't just pick the best single DEX; it splits trades across multiple liquidity sources to achieve better pricing than any single exchange could offer.

Part 2: How to Swap on Jupiter (Step-by-Step)

Using Jupiter is remarkably simple, even for first-time DeFi users. No account creation, no KYC, no email verification—just a Solana wallet and a few clicks.

Prerequisites

Before you start swapping, you'll need:

  1. A Solana wallet – Phantom and Solflare are the most popular options

  2. Some SOL in your wallet – SOL is required for gas fees (usually less than $0.01 per transaction)

Step-by-Step Swap Instructions

Step 1: Go to Jupiter
Navigate to jup.ag in your browser (desktop or mobile).

Step 2: Connect Your Wallet
Click the "Connect Wallet" button in the top-right corner. Select your wallet provider (Phantom, Solflare, Backpack, etc.) and approve the connection.

Step 3: Select Your Tokens

  • Choose the token you want to swap from (e.g., SOL)

  • Choose the token you want to receive (e.g., USDC)

Step 4: Enter the Amount
Type how much you want to swap. Jupiter will automatically fetch the best available quote.

Step 5: Review and Adjust Settings

  • Slippage tolerance: Adjust this if you're trading volatile tokens (default is usually 0.5-1%)

  • Route display: Jupiter shows you which DEXs will execute your trade

Step 6: Execute the Swap
Click "Swap" and confirm the transaction in your wallet. The swap typically completes in just a few seconds.

Understanding Jupiter's Smart Routing

When you request a quote, Jupiter's algorithm:

  1. Scans all connected DEXs (Raydium, Orca, Meteora, and 17+ others)

  2. Evaluates liquidity depth and pricing across each pool

  3. Splits your trade if necessary to achieve the best possible price

  4. Returns a single optimized route

For example, swapping 100 SOL might route 40 SOL through Raydium, 35 SOL through Orca, and 25 SOL through Meteora—all within a single transaction.

Part 3: Advanced Jupiter Features

Beyond basic token swaps, Jupiter offers several sophisticated trading tools that rival centralized exchanges.

1. Limit Orders

Jupiter allows you to set a specific price at which you want to buy or sell. When the market reaches your price, the order executes automatically.

Use case: "Buy SOL when it drops to $140" or "Sell my meme coin at 2x my entry price."

2. DCA (Dollar-Cost Averaging)

DCA allows you to automatically purchase a fixed amount of a token at regular intervals (e.g., $50 of SOL every week). This strategy smooths out volatility and removes the stress of timing the market.

3. Value Averaging (VA)

An advanced version of DCA where the protocol automatically buys more when prices are low and less when prices are high—intelligently adjusting your investment amounts.

4. Cross-Chain Swaps

Jupiter integrates bridging protocols like Wormhole and Mayan, allowing you to swap tokens across different blockchains without leaving the platform.

5. Perpetual Trading

For advanced traders, Jupiter offers perpetual contracts with up to 100x leverage. Warning: Leverage trading carries significant risk and is not recommended for beginners.

6. Jupiter's LFG Launchpad

Jupiter operates a launchpad for new projects, with community voting determining which projects get listed. Holding JUP tokens grants governance rights in these decisions.

Part 4: The JUP Token

Jupiter has its own governance token, JUP, which plays an important role in the ecosystem.

What Can You Do With JUP?

FunctionDescription

GovernanceVote on platform direction, fee adjustments, and ecosystem subsidies

AirdropsThe first airdrop distributed 1 billion JUP (Jan 2024); second round released 700 million (Jan 2025)

Launchpad AccessHold JUP for early access to LFG project launches

Fee DiscountsReduced fees for JUP holders

Token Distribution

Jupiter conducted one of the most anticipated airdrops in Solana history:

  • Round 1 (Jan 2024): 1 billion JUP distributed to early users

  • Round 2 (Jan 2025): 700 million JUP distributed

Part 5: Jupiter Terminal – The Developer Gateway

For developers looking to integrate Solana swaps into their own applications, Jupiter offers Jupiter Terminal—a plug-and-play swap component that can be added to any webpage with just a few lines of code.

What Is Jupiter Terminal?

Jupiter Terminal is a lightweight, open-source swap widget that you can embed directly into your dApp or website. It handles everything:

  • Wallet connection

  • Quote fetching

  • Transaction execution

All you need is a few minutes and basic HTML knowledge.

Three Display Modes

ModeDescription

ModalOverlays the swap interface on your entire screen (default)

IntegratedRenders the swap component directly into a designated div on your page

WidgetA pop-up button that can be positioned anywhere (bottom-right, top-left, etc.)

Quick Start: Adding Jupiter Terminal to Your Page

Here's a complete HTML example that creates a working swap interface:

html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Quick Swap Demo</title> <script src="https://terminal.jup.ag/main-v1.js" data-preload></script> <style> body { display: flex; flex-direction: column; align-items: center; font-family: Arial, sans-serif; background-color: #002e3b; } h1 { padding: 20px; font-size: 24px; color: white; } #integrated-terminal { padding: 10px; border-radius: 20px; background-color: #304256; } </style> </head> <body> <h1>Quick Swap Demo</h1> <div id="integrated-terminal"> <script> window.Jupiter.init({ displayMode: "integrated", integratedTargetId: "integrated-terminal", endpoint: "YOUR_SOLANA_RPC_ENDPOINT_HERE", formProps: { fixedOutputMint: false } }); </script> </div> </body> </html>

Note: Replace YOUR_SOLANA_RPC_ENDPOINT_HERE with an actual Solana RPC endpoint (QuickNode, Helius, or public endpoint).

Using Your dApp's Existing Wallet

If your application already has a wallet connected, you can pass it through to Jupiter Terminal:

javascript

const App = () => { const { wallet } = useWallet(); const initJupiter = () => { if (wallet) { window.Jupiter.init({ endpoint: "YOUR_RPC_ENDPOINT", passThroughWallet: wallet, // Use existing wallet connection }); } }; };

This allows Jupiter Terminal to use your dApp's wallet connection rather than requiring the user to connect again.

Customization Options

You can customize Jupiter Terminal with several parameters:

javascript

window.Jupiter.init({ displayMode: "integrated", integratedTargetId: "integrated-terminal", endpoint: "YOUR_RPC_ENDPOINT", formProps: { fixedInputMint: true, // Lock input token to one option fixedOutputMint: true, // Lock output token to one option swapMode: "ExactIn", // How the swap is calculated fixedAmount: true, // Prevent user from changing amount initialAmount: "1000000000", // Pre-set amount (in lamports) initialInputMint: "So11111111111111111111111111111111111111112", // SOL initialOutputMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", // USDC }, defaultExplorer: "Solscan", // Which block explorer to use });

Part 6: Jupiter Swap API (V6) for Developers

For more control than Terminal offers, Jupiter provides a direct API that you can integrate into any application.

API Overview

Jupiter's V6 API is REST-based and handles two main operations:

  1. Quote – Get the best price for a swap

  2. Swap – Generate a serialized transaction to execute the swap

Getting a Quote

javascript

const getQuote = async () => { const url = new URL("https://quote-api.jup.ag/v6/quote"); url.searchParams.append("inputMint", "So11111111111111111111111111111111111111112"); // SOL url.searchParams.append("outputMint", "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"); // USDC url.searchParams.append("amount", "100000000"); // 0.1 SOL in lamports url.searchParams.append("slippageBps", "50"); // 0.5% slippage const response = await fetch(url.toString()); const quoteResponse = await response.json(); return quoteResponse; };

Executing a Swap

javascript

const executeSwap = async (quoteResponse, walletPublicKey) => { const response = await fetch("https://quote-api.jup.ag/v6/swap", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ quoteResponse, userPublicKey: walletPublicKey.toString(), wrapAndUnwrapSol: true, }) }); const { swapTransaction } = await response.json(); // Deserialize, sign, and send the transaction const transaction = VersionedTransaction.deserialize( Buffer.from(swapTransaction, 'base64') ); const signedTransaction = await wallet.signTransaction(transaction); const txid = await connection.sendRawTransaction(signedTransaction.serialize()); return txid; };

Adding Platform Fees

Integrators can add their own fees to swaps (a great way to monetize your dApp). As of January 2025, you no longer need Jupiter's referral program—just pass a feeAccount parameter in the /swap endpoint.

javascript

// Add 20 basis points (0.2%) platform fee url.searchParams.append("platformFeeBps", "20"); // In the swap request: const requestBody = { quoteResponse, userPublicKey: wallet.publicKey.toString(), wrapAndUnwrapSol: true, feeAccount: "YOUR_FEE_TOKEN_ACCOUNT", // Where fees are sent };

Important notes on fees:

  • For Exact In swaps, fees can be taken from either input or output tokens

  • For Exact Out swaps, fees are only taken from the input token

  • Jupiter takes 2.5% of any platform fee charged by integrators

Part 7: Troubleshooting and Known Issues

Issue: Degraded Quotes Involving Pump.fun Tokens

Problem: Certain memecoin quotes from Pump.fun may return degraded prices.

Solution: Exclude Pump.fun from your API requests:

javascript

url.searchParams.append("excludeDexes", "Pump.fun Amm");

Note: Jupiter's self-hosted Swap API binary is no longer being actively maintained, so future breaking changes from external DEXs may not be automatically fixed.

Issue: Transaction Not Signing

Problem: Wallet may not properly sign Jupiter swap transactions, particularly when multiple setup instructions are required (e.g., converting SOL to WSOL).

Solution: Ensure your wallet is properly connected and that you're approving all transaction instructions. Using wrapAndUnwrapSol: true in the swap request helps SOL handling work automatically.

Issue: High Slippage on Volatile Tokens

Problem: Memecoins and low-liquidity tokens can experience significant price movement between quote and execution.

Solution: Increase slippage tolerance in the swap interface (3-5% for highly volatile tokens) or use limit orders instead of market swaps.

Part 8: Security Best Practices

1. Use a Reputable Wallet

Phantom and Solflare are the most trusted Solana wallets with built-in security features and transaction simulation.

2. Verify You're on the Official Website

Always double-check that you're on jup.ag before connecting your wallet. Jupiter has no official mobile app—only the web interface.

3. Start Small

For your first swap, test with a small amount to ensure everything works as expected.

4. Keep SOL for Gas

Always maintain a small amount of SOL in your wallet for transaction fees. Without SOL, you cannot execute any swaps.

5. Be Wary of Token Approvals

Jupiter requests approvals to spend your tokens. Only approve the amount you intend to swap, and revoke unnecessary approvals periodically using tools like Revoke.cash.

6. Review Routes Before Swapping

Jupiter shows you exactly which DEXs will execute your trade. Review this information—if a route seems unusual (like going through an unknown DEX), double-check before confirming.

Part 9: Frequently Asked Questions (FAQ)

Q1: Do I need an account to use Jupiter?

No. Jupiter requires no account, no email, and no KYC. Just connect your Solana wallet and start swapping.

Q2: What wallets work with Jupiter?

Phantom, Solflare, Backpack, and any wallet that supports Solana dApp connections.

Q3: How much does Jupiter charge?

Jupiter itself charges no protocol fees. You only pay the Solana network gas fee (typically less than $0.01) plus any fees from the underlying DEXs.

Q4: What tokens can I swap on Jupiter?

Any SPL token on Solana—thousands of tokens including SOL, USDC, USDT, JUP, BONK, WIF, and virtually every Solana-based asset.

Q5: Is Jupiter safe?

Jupiter is a non-custodial platform—your funds remain in your wallet until you approve a swap. The protocol has been battle-tested with billions in volume and is audited. However, always exercise caution with new or low-liquidity tokens.

Q6: How long does a swap take?

Most swaps complete in 5-15 seconds, depending on Solana network congestion.

Q7: What is the difference between Jupiter and Jupiter Terminal?

Jupiter is the main swap interface at jup.ag. Jupiter Terminal is the embeddable swap widget that developers can add to their own websites.

Q8: Can I use Jupiter from mobile?

Yes. You can use Jupiter in any mobile browser (like Phantom's built-in browser or Safari/Chrome) by connecting your mobile wallet. Jupiter does not have a standalone mobile app.

Q9: What are lamports?

Lamports are the smallest unit of SOL (1 SOL = 1,000,000,000 lamports). The Jupiter API uses lamports for amount parameters.

Q10: How do I get a Solana RPC endpoint for development?

You can use public endpoints, but for production applications, services like QuickNode or Helius provide dedicated, high-performance RPC endpoints.

Conclusion

Jupiter Swap has become the essential trading infrastructure for the Solana ecosystem. Whether you're a casual trader swapping tokens directly on jup.ag or a developer integrating Solana swaps into your own application, Jupiter provides the tools, liquidity, and reliability you need.

Key Takeaways:

  • No account needed – Just connect any Solana wallet and start swapping

  • Best prices – Jupiter aggregates 20+ DEXs and splits trades for optimal rates

  • Extremely low fees – No platform fees; gas costs under $0.01

  • Advanced features – Limit orders, DCA, and perp trading available

  • Developer friendly – Deploy Jupiter Terminal with a few lines of code or integrate the full V6 API

When to use Jupiter:

  • You want to swap any Solana token at the best possible price

  • You value non-custodial, no-KYC trading

  • You're a developer adding swap functionality to a dApp

When to use something else:

  • You need fiat on-ramps (use a centralized exchange first)

  • You want to trade non-Solana assets (use a cross-chain bridge or another DEX)

By understanding how Jupiter works—from basic swaps to API integration—you're well-equipped to navigate Solana DeFi with confidence.

This guide is for informational purposes. Always refer to Jupiter's official documentation and website for the most current features and API endpoints.

bottom of page