Terminal
Swaps
Real token swaps on Solana through Jupiter, from a Solana spot chart. Real money, signed in your own wallet, and irreversible once confirmed.
Where swaps are
- SIM stays the default panel on every chart. A swap opens only when you choose it.
- On a desktop the order panel header carries a SIM | SWAP switch when four things are true: you are on a Solana spot chart, your account has a Solana wallet (you signed in with one, or linked one), you are in your own terminal (rooms and cups are SIM only), and swaps are on. Pick SWAP to open the swap panel and SIM to go back. The choice belongs to that chart and that wallet: another chart or another wallet opens on SIM, and so does a reload.
- On a phone the swap panel is the Swap tab under the chart.
- Swaps are not available in restricted regions (see Regions).
Making a swap
- Step 1: Connect your walletThe panel's banner reads MAINNET · REAL FUNDS and IRREVERSIBLE. If no wallet is connected it says: “Connect a Solana wallet to swap. You approve every swap in your wallet; ChartRunner never holds your funds.” If the connected wallet is not yet proven to be your account's (for example on your first swap from an email account), Verify wallet asks you to sign a free message that proves the wallet is yours. It costs nothing and cannot move funds.
- Step 2: Choose the tokens and the amountSet You pay and You receive from ChartRunner's curated list of Jupiter-verified tokens (the most traded and highest-ranked verified tokens, plus SOL, USDC and USDT). On a spot chart, the chart's token starts as You receive.
- Step 3: Set the slippageMax slippage is 0.1%, 0.5%, 1% or Custom, 0.5% by default. Anything above 1% needs Allow high slippage and is capped at 3%.
- Step 4: Get a quotePress Get quote. The quote shows You receive (estimate), the rate, Minimum received, Price impact, Max slippage, Platform fee, Network fee (max), the Route and a countdown until the quote expires.
- Step 5: Review and signPress Review swap. The review repeats the numbers under “Swaps are real and irreversible. ChartRunner never holds your funds.” Press Sign in wallet and approve the transaction in your wallet. An expired quote has to be fetched again.
Fees
| Fee | Amount | Where you see it |
|---|---|---|
| ChartRunner platform fee | 0.5% (50 bps) of the swap, taken by Jupiter's route from the input or the output token. Jupiter keeps 20% of this fee as its share; it is not charged on top | Platform fee in the quote and the review, as the rate and an estimate of the amount in the token you receive, for example Fee 0.5% · … |
| Solana network fee | Paid to the network from your SOL. A failed transaction can still cost network fees | Network fee (max) in the quote and the review |
| Price impact and slippage | Not a fee, but a cost: the difference between the market rate and what the route gets you, up to your max slippage | Price impact and Minimum received |
The quote always shows the fee rate read from the transaction itself. ChartRunner's SIM spot trades charge a flat 0.5% for the same reason: it stands in for a real swap's cost.
Routing
Quotes and transactions come from Jupiter's aggregator (its Metis router), which picks the route across Solana's liquidity. Jupiter's other routers (JupiterZ RFQ, DFlow and OKX) are excluded, because their transactions can carry programs ChartRunner has not reviewed. The quote names the route.
A price impact above 1% is flagged. Above 5% the swap is blocked unless you tick “I accept a very high price impact (above 5%). Then get the quote again.” and confirm it once more in the review.
Checked before you sign
ChartRunner's server builds the transaction with Jupiter, then decodes it and refuses to hand it to your wallet unless it passes every check:
- It is unsigned, your wallet pays the fee and is the only signer.
- At the top level it uses only the Compute Budget, System, Token, Token-2022, Associated Token Account and Jupiter programs. The exchanges Jupiter routes through run inside the Jupiter instruction and are not inspected; what protects you there is the minimum received.
- It holds exactly one Jupiter route instruction, which swaps your input token from your own account into your own account for the output token.
- The amounts, slippage, minimum received and platform fee match the quote you were shown.
- It approves nothing and changes no token authority, it only creates token accounts that are yours, and its network fee stays under a cap.
Sanctions screening
When you ask for a quote and again when you send the swap, your wallet address is screened against ChartRunner's own copy of the US Treasury's OFAC sanctions list (refreshed every 6 hours) and against TRM Labs' sanctions screening. A wallet passes only if both pass. If screening cannot give an answer, the swap is refused rather than let through. A listed wallet sees “this wallet cannot use swaps”.
Regions
Swaps are not available to sanctioned persons or in restricted regions. The app checks your location when you ask for a quote and again when you send the swap, and refuses it with “swaps are not available in your region” in at least these places:
- Cuba, Iran, North Korea and Syria.
- The Crimea, Sevastopol, Donetsk and Luhansk regions of Ukraine. When the region cannot be told, all of Ukraine is refused.
If your location cannot be determined, the swap is refused too, with “swaps are unavailable: location could not be determined”.
ChartRunner can add regions and block a wallet or a region at any time, and can switch swaps off without notice.
Limits
- There is no per-swap size cap.
- Swaps earn no XP and count for no quest, and they never touch your SIM balance.
- ChartRunner never holds your keys or funds. Each swap is a transaction you sign in your own wallet.
Status and history
After you sign, the panel shows PENDING (“Swap sent. Waiting for the network to confirm it.”), then LANDED (“Swap confirmed on-chain.”) or FAILED (“Swap failed.”), with a Solscan link. Your latest 50 swaps are listed under Swap history in the wallet section of your Profile.
For a landed swap the server also reads the transaction on chain itself, and the history shows what it found. Once read, the amounts shown are the ones on chain, not the quote's.
| Label | Meaning |
|---|---|
| ON-CHAIN: FINAL | Read on chain and finalized |
| ON-CHAIN: CONFIRMED | Read on chain and confirmed, not finalized yet |
| ON-CHAIN: NOT READ YET | The server has not read it yet |
| ON-CHAIN: UNVERIFIED | Seen confirmed but not finalized within the time the server looks |
| ON-CHAIN: FAILED | The transaction failed on chain |
| ON-CHAIN: OTHER SIGNER | The transaction on chain was signed by a different wallet |
| ON-CHAIN: NOT FOUND | The transaction was not found on chain |