Jupiter swap

Crypto explainers

Jupiter swap is a first trade whose completion starts with wallet funding

Jupiter swap is a first-trade workflow whose success is decided before the quote: the connected Solana wallet needs the sell token, native SOL for network execution and any new token account, and enough uncommitted balance to leave a small reserve. Select Spot Swap rather than an automated order, keep Ultra Mode for managed routing, review the token mint and expected output, sign once, then confirm the received balance in Portfolio or a Solana explorer.

Updated:

Two funded balances make a first position finishable

A first-time Jupiter trader reaches a confirmed spot balance when the wallet contains both the asset being sold and native SOL. Someone selling USDC or JUP therefore checks two separate balances, while someone selling SOL uses one balance for two roles: trade input and transaction funding.

Solana records native value in lamports, with exactly 1,000,000,000 lamports representing 1 SOL. Entering the entire displayed SOL balance as the swap input leaves no ordinary reserve for the signed transaction, so the usable input is the balance minus the route's displayed network requirement and any account-creation deposit.

Wallet funding is complete when the intended input remains spendable after that reserve is separated. This distinction explains why a token-rich wallet may display a valid quote yet stop before confirmation: the sell balance covers the position, but the native balance does not cover the onchain action.

What must reach the Solana wallet before a quote is useful?

Solana wallet funding begins with the connected wallet's own 32-byte public address and assets delivered on the Solana network. The receiving address holds native SOL directly, while fungible assets such as USDC and JUP are recorded in separate token accounts associated with that wallet.

Solana has two principal token programs relevant here: the original SPL Token Program and Token-2022. The Associated Token Program deterministically derives one Associated Token Account, or ATA, for each owner-and-mint combination under the relevant token program. A classic token account requires a rent-exempt deposit of about 0.002 SOL; Token-2022 extensions change the required account size and therefore the deposit.

A funding transfer should finish before the wallet connects to the trade screen. The wallet balance, the token mint and the network must agree, because a balance recorded on another chain is absent from the Solana accounts that Jupiter reads. Once those inputs appear, the quote has assets it can actually spend.


Spot Swap and Ultra Mode remove unnecessary first-position choices

Jupiter Spot Swap is the appropriate market for exchanging one funded token balance into another immediately. Limit and Recurring orders introduce triggers or schedules, whereas the first-position workflow needs one quoted action followed by one confirmation.

Across most deployments, Jupiter exposes two swap execution modes: Ultra Mode and Manual Mode. Ultra Mode is the default and manages routing, slippage estimation, priority settings and transaction broadcasting. Manual Mode exposes those controls, including three broadcasting choices - Priority Fee, Jito Only or Both - and three speed presets named Fast, Turbo and Ultra. Those settings serve deliberate execution preferences rather than basic wallet activation.

Ultra also evaluates gasless execution for qualifying orders when the wallet holds less than 0.01 SOL. That fallback carries a surcharge capped at 10% for the standard sponsored path, while a JupiterZ request-for-quote route follows separate sponsorship rules. JupiterZ does not fund a missing ATA deposit, so native SOL remains the dependable prerequisite when the output token account has not been created.

Native SOL versus wSOL: which balance keeps signing available?

Native SOL funds Solana transactions; wrapped SOL, written as wSOL, is a tokenized representation held under a token program. Both represent value at a 1:1 unit relationship and use 9 decimal places, yet only the native System Program balance pays the ordinary network requirement.

During normal operation, Jupiter handles wrapping and unwrapping inside supported routes, and Manual Mode also offers a setting to keep wSOL for repeated trading. A wallet funded exclusively with wSOL still lacks native transaction funding. Before signing, read the SOL line separately from the wSOL line and preserve native SOL until the resulting position and any later transfer are confirmed.

The mint address decides which token the wallet will receive

A Solana token pair is defined by mint addresses, not by ticker symbols alone. Jupiter presents names and symbols for readability, while the transaction references the exact input mint and output mint used by the SPL Token Program or Token-2022.

That distinction matters during first funding because token amounts have mint-defined precision. Native SOL uses 9 decimal places, while Circle's USDC on Solana and JUP each use 6 decimal places. The interface converts a human-readable entry into integer base units, so an amount with more precision than the mint accepts is rounded or rejected before execution.

Select the funded asset in the upper field, select the intended mint in the receiving field and compare the displayed wallet balance with the amount entered. If SOL is the input, reduce the amount rather than selecting the absolute maximum; if USDC or JUP is the input, leave the separate native SOL balance untouched.


A quote turns funded balances into one primary action

A Jupiter swap quote binds one sell amount to an estimated receive amount and an executable route at that moment. Ultra Mode refreshes the route as market state changes, applies its Real-Time Slippage Estimator and presents the expected output before the wallet is asked to approve anything.

The decisive review has a narrow scope: confirm the input mint, input quantity, output mint, expected output and remaining native SOL. The interface also shows whether the route needs a new token account. Pressing Swap is the single primary action, but the trade has not occurred until the wallet signs and Solana accepts the resulting transaction.

A refreshed quote may select different liquidity without changing the user's objective. The funded pair and amount remain the decision; route construction belongs to the execution engine.

One signature packages the route into a Solana transaction

A wallet signature authorizes the route Jupiter has built from the funded accounts. Juno evaluates execution sources that include Metis, JupiterZ and DFlow, while an onchain path may interact with established Solana venues such as Raydium, Orca or Meteora. Split routing still settles as one atomic transaction: every included instruction succeeds, or the token balances remain unchanged.

For legacy and version-0 formats, a serialized Solana transaction has a 1,232-byte maximum. An Ed25519 signature occupies 64 bytes, and each account public key and recent blockhash occupies 32 bytes. Those limits explain why Jupiter composes compact instructions and uses address lookup tables for routes that reference many accounts.

Execution also operates within Solana's compute budget. A non-built-in instruction receives a default allocation of 200,000 compute units, while one transaction is capped at 1,400,000 compute units. Jupiter constructs the transaction and estimates the priority settings; the wallet's role is to inspect the final request and provide the required signature.

Solana sets the base charge at 5,000 lamports per signature, while an optional priority charge is calculated separately from the requested compute-unit limit and price. This fixed base component is small, but it still requires native SOL unless the selected execution path supplies another fee payer.


Confirmation belongs to the received token account

Solana confirmation proves the first position by recording a successful transaction and increasing the destination balance. Jupiter's Activity view supplies the transaction signature, while Portfolio and the connected wallet display the token account after their indexed balances refresh.

The network exposes three familiar commitment labels - processed, confirmed and finalized - which represent increasing confidence in the recorded state. A processed notice alone is not the strongest completion check; a successful confirmed status paired with the expected token-account increase establishes that the swap landed.

Solana's blockhash queue retains 300 recent hashes, but transaction processing accepts only the newest 151, corresponding to a maximum processing age of 150. With slots configured around 400 to 600 milliseconds, an unsigned or unlanded transaction normally loses its usable blockhash after roughly 60 to 90 seconds. Expiration calls for a fresh quote and transaction rather than another approval of the old payload.

Solscan or another Solana explorer separates an interface refresh delay from onchain state. Match the wallet address, transaction signature, successful status and output mint; those records identify the resulting spot balance without relying on a portfolio valuation, as covered in Jupiter swap in practice.

Worked funding example: measuring the SOL reserve before signing

A hypothetical Jupiter funding check shows whether the transaction leaves usable native SOL without inventing a market price. Every changing input in this example is hypothetical: the wallet starts with 25 USDC and 0.010000 SOL, the intended swap input is 10 USDC, the output is native SOL, the quote requires one wallet signature, and its displayed priority estimate is 20,000 lamports.

The starting native balance equals 10,000,000 lamports. Add the fixed 5,000-lamport base charge to the hypothetical 20,000-lamport priority charge, producing a 25,000-lamport transaction requirement. Subtracting that amount leaves 9,975,000 lamports, or 0.009975 SOL, before adding the live quoted SOL output. The sell-side arithmetic also leaves 15 USDC before accounting for the received asset.

The concrete funding result is therefore a 0.009975 SOL native floor plus the executed output, not a guessed total position value. If the hypothetical output were an SPL token without an existing ATA, its displayed account-deposit requirement would also be subtracted before approval.


A clean exit starts with the reverse pair

A Jupiter Spot exit reverses the funded pair: place the received token in the sell field and choose native SOL or Solana USDC as the destination. Because the spot asset remains in the connected wallet throughout, exiting means signing another swap rather than withdrawing a balance held by Jupiter.

Review the output mint and preserve enough native SOL for the reverse transaction. Once the reverse swap is confirmed, an optional outbound transfer is a separate Solana transaction with its own signature and network requirement. A destination that expects USDC on Solana must receive that specific Circle-issued asset over Solana, while native SOL goes to a Solana deposit address.

An empty SPL token account can be closed after its balance reaches zero, returning its rent-exempt deposit to the wallet. Keep the ATA open if another trade or receipt is planned; recreating it later requires funding the account deposit again.


The final record closes the first-trade loop

A completed first-trade record contains three matching facts: a successful transaction signature, the intended output mint and the changed token-account balance. Jupiter Activity, the wallet's Portfolio view and Solscan should converge on those facts even when their display timing differs.

Record the signature before disconnecting, then check the remaining native SOL separately from the received position. The same three-way check applies after the reverse exit or outbound transfer. Disconnecting the interface does not move tokens, close accounts or cancel a transaction that already settled; the Solana accounts remain the authoritative state.

Everyday questions about Jupiter swap

Does connecting a wallet transfer its tokens to Jupiter?

No, connecting a self-custodial Solana wallet does not transfer its portfolio to Jupiter. The connection lets the interface read public balances and request a signature for the selected transaction. The sell token moves only after a signed route succeeds, and the received token settles into an account owned by the same wallet. Disconnecting later changes interface access, not the onchain balance.

Which hardware wallets can sign a funded first trade?

Ledger, Keystone and Trezor hardware wallets are supported through Jupiter Wallet. Ledger Nano X and Nano S Plus are specifically tested, with the Solana app opened on the unlocked device. The connected hardware wallet must expose the same funded Solana account shown in Jupiter, and the user confirms the transaction on the device before it is broadcast.

Is USDC on Ethereum the same spendable balance as USDC on Solana?

No, USDC on Ethereum and USDC on Solana are separate onchain balances. Jupiter reads the Solana account owned by the connected wallet, so an Ethereum balance does not appear as swap input there. A withdrawal, onramp or bridge transfer must name Solana as the destination network and deliver Circle-issued USDC to the correct Solana wallet before the balance becomes spendable.

Why can a watch-only address display funds but not complete the swap?

A watch-only address cannot complete a swap because it has no signing authority in the wallet. Public Solana account data is sufficient to display SOL, token accounts and transaction history, but authorizing a route requires the corresponding private signing capability. Import the signing wallet through its supported recovery method or connect the hardware device that controls the displayed address.

Are SOL and USDC the two assets available through Jupiter's integrated onramp?

Yes, Jupiter's integrated Buy Crypto flow delivers either SOL or USDC to a connected Solana wallet. Onramper aggregates the available payment processors, while payment methods and provider availability are determined by the user's region. SOL directly supplies native transaction funding; USDC supplies a common sell balance, although a separate native SOL reserve remains useful for ordinary swaps and later transfers.

Jupiter logo, trade message, button, and floating token symbols