.json`. The button only appears once the Address Book contains something.
**Import** opens a file picker and accepts that JSON backup, and nothing else: there is no CSV import and no pasting of a list of addresses. To add several wallets without a backup file, use **Add wallet** one address at a time, or paste them into a group with **New group**.
Click **Import** and select a `.json` file exported from the Address Book. A file of another type is refused with "Select a JSON backup file"; a JSON file with the wrong structure with "This backup file isn't valid".
If your Address Book is empty, the backup is imported as is. Otherwise the Import address book dialog asks how to add it: **Merge with current address book** keeps your wallets and groups and adds the ones from the file, combining group memberships for a wallet present in both; **Replace current address book** discards what you have and loads the file instead.
Replace cannot be undone: export your current Address Book first if you may need it again.
Entries whose address is not a valid Solana public key are dropped during import. Backups made with an earlier version of the Address Book are converted automatically. A wallet imported without a name is shown by its shortened address.
If you want to build a backup by hand, the file is a JSON object with a `version` string, an `items` array of wallets (`address`, optional `name`, optional `bundleIds`), and a `bundles` array of groups (`id`, optional `name`). Exporting once and editing the file is the easiest way to get the structure right.
## Groups
A group shows the combined portfolio of several wallets: one net worth, one position list, one activity feed. It is the way to follow several wallets you manage at once.
In the account selector, click **Create your first group**, or use **New group** on the Address Book page, or **Create a group** from a bookmarked wallet's menu. Portfolio can also suggest a group from your recently connected wallets ("View wallets together").
Add wallet addresses or domain names. A group holds up to 15 wallets.
Name the group and, optionally, give it a custom icon.
To view a group, select it from the account selector or from the Address Book. You can set a group as your default view, so Portfolio opens on it.
### What changes when you view a group
* The Spot tab is disabled and the Spot PnL card asks you to choose a wallet: spot PnL is calculated for one wallet at a time.
* The Claimable positions dialog shows which wallet holds each item.
* The Airdrop tab shows one section per wallet.
* The Activity export covers the transactions displayed for the group.
* Actions stay limited to the connected wallet.
# Airdrop Checker
Source: https://docs.jup.ag/user-docs/manage/portfolio/airdrop-checker
Check your eligibility for Solana airdrops across all your wallets, directly from Jupiter Portfolio.
## What is the Airdrop Checker
The Airdrop Checker is a tab inside Jupiter Portfolio that scans your Solana wallets and shows which airdrops you are eligible for, which you have already claimed, and which you may have missed.
It covers a curated selection of airdrops from major Solana protocols and communities. Smaller or lesser-known airdrops (such as small memecoin distributions) are not included.
The Airdrop Checker does not process claims directly. When you are eligible for an airdrop, you are redirected to the protocol's own claim page to complete the process.
### What it does
* Checks airdrop eligibility across multiple wallets at once
* Tracks the status of each airdrop: eligible, claimed, expired, or ineligible
* Shows the estimated dollar value of your airdrops over time
* Lets you share a summary card of your airdrop history
### What it does not do
* It does not guarantee coverage of every airdrop on Solana
* It does not handle the claim transaction itself
* It does not determine why you are or are not eligible for a specific airdrop
## Getting started
Navigate to [jup.ag/portfolio](https://jup.ag/portfolio) and enter your wallet address, a Solana domain name, or connect your wallet.
At the top of the Portfolio interface, click the Airdrop tab.
Open a wallet group from the account selector (see [Groups](/user-docs/manage/portfolio/address-book#groups)), or go to [jup.ag/portfolio/airdrop-checker](https://jup.ag/portfolio/airdrop-checker), enter up to 15 addresses or domain names, and click **Scan my wallets**.
Each wallet then gets its own section, headed by its truncated address (e.g. `8anx...Jgn2`), its number of airdrops, and their total value.
Use the tabs and filters to explore your airdrop eligibility across all added wallets. See [Understanding the dashboard](#understanding-the-dashboard) below.
## Several wallets at once
The Airdrop tab follows the account you are viewing in Portfolio. To check several wallets together, view a [group](/user-docs/manage/portfolio/address-book#groups): the summary aggregates every wallet, and the list below shows one section per wallet. To add or remove a wallet, edit the group in the Address Book, or scan a new set of addresses from [jup.ag/portfolio/airdrop-checker](https://jup.ag/portfolio/airdrop-checker) (up to 15 at a time).
## Understanding the dashboard
### Summary
At the top of the page, a summary displays:
* Total value: the combined dollar value of all airdrops received across your wallets, with a **Share it!** button (see [Sharing your results](#sharing-your-results))
* Value chart: a historical chart of your total airdrop value over time, with filters for 1M (one month), 1Y (one year), and All
The refresh icon reloads the results; wait 30 seconds between refreshes.
### Tabs
Airdrops are organized into four tabs. Each tab shows a per-wallet breakdown with different columns depending on the context.
Shows every airdrop tracked by the tool for each wallet, regardless of timing or status.
Columns: Date, Airdrop, Asset, Status, Amount, Action
This is the default view. When the **Only eligible** toggle is off, all airdrops appear, including those where the wallet is ineligible.
Shows airdrops you have not fully claimed whose claim window has not ended yet, or which have no known end date.
Columns: End date, Airdrop, Asset, Status, Amount, Action
Some airdrops display a "-" for the end date when the claim deadline is not yet announced.
Shows airdrops whose claim window has ended, whether claimed or not.
Columns: End date, Airdrop, Asset, Status, Amount, Action
Shows only the airdrops you have successfully claimed. This tab is a record of completed claims.
Columns: Claim date, Airdrop, Asset, Amount, Action
There is no Status column (all entries are claimed by definition). The Action column shows a **View TX** link to the claim transaction on a block explorer.
The **Only eligible** toggle is not available on this tab.
### The Only eligible toggle
When enabled, the **Only eligible** toggle filters out wallets and airdrops where the status is Ineligible. This makes it easier to focus on actionable airdrops. It is available on the All, Upcoming, and Past tabs.
## Airdrop statuses
Each row carries two indications: the Status column says whether the wallet qualifies, and the Action column says where the claim stands.
Status is either Eligible (the wallet qualifies, whether or not it has claimed yet) or Ineligible (it does not; the row only appears when the **Only eligible** toggle is off).
Action takes one of these forms:
The airdrop is claimable now. The button opens the protocol's own claim page.
The protocol has not confirmed the allocation yet, but the wallet may qualify. The button opens the protocol's claim page so you can check.
The wallet qualifies but the claim window has not opened yet. The button is disabled until it does.
The airdrop has been claimed and the tokens are in the wallet. On the History tab, **View TX** opens the claim transaction on a block explorer.
The claim window has closed and the wallet did not claim in time. The tokens are no longer available and cannot be recovered.
The airdrop distributed several tokens and only some of them have been claimed. Partial opens a detail dialog listing each token with its claimed and eligible value; once every token is claimed, the button reads Claimed. The unclaimed part counts as Missed on the share card.
Airdrops have limited claim windows. Once an airdrop expires, the tokens are permanently lost. Check your eligibility regularly to avoid missing active airdrops.
## Airdrop details
Each airdrop entry includes the following information:
* Airdrop: the protocol or project name, sometimes with a label indicating the round or season (e.g. "S1", "ASR #6", "Season 1", "Power User")
* Asset: the token ticker distributed in the airdrop (e.g. JUP, DRIFT, W, SWTCH)
* Amount: the number of tokens allocated and their estimated dollar value at the time of display
* Date: the meaning of the date column depends on the tab. On All, it is the airdrop date. On Upcoming and Past, it is the end date of the claim window. On History, it is the date you claimed
## Sharing your results
Click the **Share it!** button at the top of the page to open **Share airdrop summary**. The card displays:
* The total eligible airdrop value across all your wallets
* A breakdown of Claimed vs Missed amounts
* Protocol icons for the airdrops included
You can **Copy** the card image to your clipboard or **Download** it as a file.
Common questions about eligibility, claiming, wallets, statuses, and more.
# Portfolio FAQ
Source: https://docs.jup.ag/user-docs/manage/portfolio/faq
Troubleshooting Jupiter Portfolio: missing tokens, wrong values, missing positions, unsupported protocols, no net worth history, and Airdrop Checker questions.
For missing tokens, wrong values, or missing positions, submit a [support ticket](https://support.jup.ag/requests/new). Include your wallet address and as much detail as possible to help the team investigate.
## Portfolio
There are a few possible reasons:
* No reliable price source. If a token has very low liquidity or no established market, Portfolio cannot determine a reliable price. In that case the token is hidden from the dashboard entirely, not shown with a zero value.
* The token is very new. Newly launched tokens may not be priced yet. They appear once a reliable price source becomes available.
* A bug is causing the token to not display. If you believe a token should be shown, submit a [support ticket](https://support.jup.ag/requests/new) with the token mint address and your wallet address.
Submit a [support ticket](https://support.jup.ag/requests/new) with the following details:
1. The protocol where you see the issue.
2. The specific position concerned.
3. Your wallet address.
4. (Optional) A screenshot of the position as shown on the protocol's own website, for comparison.
Use **Missing a position? Report it** at the bottom of the Positions tab, or submit a [support ticket](https://support.jup.ag/requests/new) with the protocol or application where the missing position exists (for example Jupiter Perps, Kamino, Drift) and your wallet address, which is kept private and used only to resolve the issue.
The last scan did not cover every protocol. Hover the icon to see "Position scan incomplete, some positions may be missing" and the protocols whose scanner failed. Your transactions are not affected; positions held on those protocols may be missing from the page until a later scan succeeds. Refresh the positions, and use **Report issue** in the popover if the icon stays. See [Positions](/user-docs/manage/portfolio/positions#the-yellow-shield-icon-next-to-the-wallet-name).
Portfolio currently supports 190+ protocols. If the protocol you use is not listed, submit a request on the [Portfolio feedback page](https://feedback.jup.ag/b/portfolio-feedback). The team reviews requests and works on adding new integrations.
The Net worth view charts the portfolio's value over time from recorded history, which is currently recorded for active JUP stakers. A wallet without recorded history shows "No recorded history" instead of a chart. The Yield and Breakdown views work for every wallet. See [The Net worth card](/user-docs/manage/portfolio/positions#the-net-worth-card).
You are viewing a group. Spot PnL is calculated for one wallet at a time: select a single wallet from the account selector to open its Spot tab. See [Spot PnL](/user-docs/manage/portfolio/spot-pnl).
No. The demo wallets on the landing page are watch-only sample portfolios holding real onchain data that belongs to someone else. Jupiter has no paper trading or simulated balances. You can, however, open any public address without connecting a wallet. See [Demo wallets](/user-docs/manage/portfolio#demo-wallets).
On desktop, positions refresh when you load or reload the page, or click **Refresh positions**. In Jupiter Mobile, they refresh periodically in the background. See [Refresh frequency](/user-docs/manage/portfolio#refresh-frequency).
No. Portfolio does not currently track or display NFT holdings.
***
## Airdrop Checker
The Airdrop Checker is a tab inside Jupiter Portfolio. It lets you scan your Solana wallets to see which airdrops you are eligible for, which you have already claimed, and which you may have missed. To access it, go to [jup.ag/portfolio](https://jup.ag/portfolio) and click the Airdrop tab, or start from [jup.ag/portfolio/airdrop-checker](https://jup.ag/portfolio/airdrop-checker) to scan up to 15 addresses at once.
No. The tool tracks a curated selection of airdrops from major Solana protocols and well-known communities (e.g. Jupiter, Drift, Wormhole, Meteora, Tensor). Smaller distributions, such as minor memecoin airdrops, are not included.
No. The Airdrop Checker shows your eligibility status and redirects you to the protocol's own claim page when you click the claim action. The claim transaction is processed on the protocol's site, not within Jupiter.
Ineligible means your wallet does not meet the criteria set by the protocol for that specific airdrop. Each protocol defines its own eligibility rules (e.g. minimum trading volume, staking, governance participation). The Airdrop Checker does not determine or explain why a wallet is ineligible.
Once the claim window closes, the Action column reads Expired. The tokens are permanently lost and cannot be claimed or recovered. There is no way to reclaim expired airdrops.
For more detail on how the Airdrop Checker works, see the [Airdrop Checker page](/user-docs/manage/portfolio/airdrop-checker).
# Portfolio Overview
Source: https://docs.jup.ag/user-docs/manage/portfolio/index
What Jupiter Portfolio is: a read-only Solana dashboard for any wallet, how it detects and prices positions, what it does not track, and the protocols covered.
Learn how to track your Solana portfolio step by step with the Jupiter Academy guide.
## What is Portfolio
Jupiter Portfolio is a portfolio tracking tool for Solana, available at [jup.ag/portfolio](https://jup.ag/portfolio). It gives a unified view of a wallet's token balances, DeFi positions, staking activity, and transaction history across 190+ protocols, from a single dashboard.
Portfolio is primarily read-only: it displays onchain data without requiring you to interact with each protocol. Some Jupiter actions are available directly from the dashboard for your own connected wallet, such as trading a token, closing a Perps position, or reclaiming SOL from empty token accounts; see [Positions and Net Worth](/user-docs/manage/portfolio/positions#actions-available-from-a-position).
The dashboard is organized into five tabs: [Positions](/user-docs/manage/portfolio/positions), [Spot](/user-docs/manage/portfolio/spot-pnl), [Activity](/user-docs/manage/portfolio/activity), [Airdrop](/user-docs/manage/portfolio/airdrop-checker), and [Newsletter](/user-docs/manage/portfolio/newsletter).
## Which wallets you can view
Portfolio works with any public Solana address. Paste an address or a Solana domain name (for example a `.sol` name) in the search bar and the dashboard loads it, with no wallet connection and nothing to sign. An address opened this way is labeled **Watch-only**.
If you connect your wallet, Portfolio loads it automatically and labels it **Connected**. Only the connected wallet can use the actions on the dashboard; a watch-only wallet is displayed but cannot be managed.
Several wallets can be viewed together as a group, see [Wallets, Groups and Address Book](/user-docs/manage/portfolio/address-book).
## The landing page
Opening [jup.ag/portfolio](https://jup.ag/portfolio) without a wallet selected shows a landing page where you can:
* Search any wallet: paste a Solana wallet address or domain, or connect your own wallet.
* Browse Smart Money wallets: a preview of top wallets by daily PnL, with their win rate, volume, and transaction count. Each opens directly in Portfolio; see [Smart Money](/user-docs/trade/spot/smart-money) for how these wallets are selected.
* Open demo wallets: three watch-only sample portfolios you can view individually or as a group.
### Demo wallets
The Demo wallets section of the landing page offers three sample addresses: DeFi whale, JUP staker, and Airdrop farmer. Open one from its card, or select **View all 3 as a group** to load the three together; [jup.ag/portfolio/demo](https://jup.ag/portfolio/demo) opens that group directly. While you are on a demo wallet, a banner at the top of the page offers to connect a wallet, or to switch to your own portfolio if one is already connected.
Demo wallets exist to show a dashboard filled with real activity before you look up your own address. Like any address opened without connecting, they are watch-only: you are reading someone else's onchain data.
Demo wallets are not a practice account. Jupiter has no paper trading or simulated balances anywhere in the product: Portfolio displays real onchain data only, and every trade on Jupiter uses real funds.
## How Portfolio finds and prices positions
### Position detection
Portfolio detects positions by parsing onchain data directly. When you load a wallet, it reads the blockchain to identify token balances, staking positions, lending positions, liquidity provisions, and other DeFi activity across supported protocols. The Positions tab shows "Scanning N protocols" while this runs, N being the number of protocols currently covered.
### Pricing
Token prices come from two sources: the Jupiter Pricing API for standard tokens, and in-house portfolio pricing for assets the standard source cannot price, such as LP tokens, staked assets, and other derivative tokens.
A token with no reliable price source is hidden from the dashboard. It is not shown with a zero or missing value; it simply does not appear. Very new tokens appear once a reliable price is available.
Values are shown in USD by default. The **Currency** setting converts every value to EUR, GBP, JPY, AED, AUD, CAD, SGD, or INR instead, see [Portfolio Settings](/user-docs/manage/portfolio/settings).
### Refresh frequency
On desktop, at jup.ag/portfolio, data refreshes on demand: positions update when you load or reload the page, or click **Refresh positions** (the circular arrow at the top right). Positions appear progressively as they are fetched rather than all at once. In Jupiter Mobile, data refreshes periodically in the background.
Progressive loading applies only to [jup.ag/portfolio](https://jup.ag/portfolio). It is not available in Jupiter Mobile, the side drawer, or the wallet view. Portfolio in the mobile app is described on the [Jupiter Mobile Portfolio](/user-docs/global/mobile/portfolio) page.
## What Portfolio does not track
* NFTs are not tracked. Portfolio does not display NFT holdings.
* Tokens without a price source are hidden, as described above.
* Third-party positions cannot be managed. Positions on protocols such as Kamino or Drift are displayed, but every action on them happens on the protocol's own site.
If a position you hold on a supported protocol is missing, or a value looks wrong, see the [FAQ](/user-docs/manage/portfolio/faq) for what to send to support.
## Supported protocols
Portfolio tracks positions across 190+ Solana protocols, including major DeFi platforms, staking providers, and other onchain applications.
If a protocol you use is not supported, request it through the [Portfolio feedback page](https://feedback.jup.ag/b/portfolio-feedback).
The list below is a snapshot and not exhaustive: integrations are added regularly, and the live count appears on the Positions tab while positions load.
01, Access Protocol, Adrastea, Adrena, Akuma, Allbridge, AllDomain, Amulet, Armada, Asgard Finance, Atrix, Aurory, Backwoods, Banana Gun, Banger, Banx, baskt, Believe, Bio, Blaze Staked SOL, Bloom, SNS, BONKbot, Bonk Rewards, Boop, BounceBit, Brawl AI, BSKT, btcSOL, Byreal, Candle, Carrot, Circle, Circuit, Citrus, Clone, CoinMarketCap, Cropper, Cudis, Cushion, CyberFrogs, Cytonic, deBridge, Defiland, DeFiTuna, Degen Coin Flip, DeGods, DFlow, Divvy, DoubleUp, Drift, Drip Haus, Dumpy, Elemental, EnsoFi, Exponent, Famous Fox Federation, Fjord Foundry, FlashTrade, Lulo, Flowmatic, Flux Beam, Fragmetric, Francium, Frax Staked ETH, MetaDAO, Gary, Gauntlet, Gecko, Genesysgo, Glow, Gofurs, GooseFX, GPool, Grass, Guano, Haven, HawkFi, Hedgehog Markets, Hedgy, Helium, Honeyland, Huma, Hxro, Hylo, ILoop, Jito, Jupiter, Jupiter DAO, Jupiter Jupuary, Jupiter Launchpad, Kamino, Kishu, Knightrade, Kyros, Lavarage, Layer3, Lifinity, Ligma, Loopscale, M1 Capital, MadBears, MadLads, Maestro, Mango, MarginFi, Marinade Finance, MathWallet, Meteora, Meteorswap, Mithril, MonkeDAO, MonkeLabs, MonkeWorld, Moonwalk, Moonwell Artemis, mSOL, MtnPay, MtnPay Deals, MtnPay Swap, Nami Protocol, Night Market, Notifi, Numoen, NFTs2Me, Ocean Protocol, Octane, OKSwap, OneSwap, OpenSerum, Orion, Otter, PalletOne, PancakeSwap, Parrot, PawSwap, Peryton, Phantom, Phoenix, Pilot, Pippin Finance, Pizza, Pluto, Port Finance, Primate, Project Serum, PsyOptions, Pump, PumpkinSwap, Quasar, RaceFi, Raydium, Redeem, Ren, ReSol, Riptide, Risk Harbor, RoboVault, Saber, Sanctum, Shadowlands, Sharky, ShdwDrive, Shiryo, SideSwap, Slope, Sobr, Solana Beach, SolanaPunks, Solflare, Solido, Solmez, Solrise, Solscan, Solyard, SpaceHamster, Spectre, Spling, Squads, Star Atlas, StatUtils, Step, Streamflow, SushiSwap, Switchboard, Synapse, Synthrix, Tapio, TempoDAO, Tidal, TokenPocket, Tulip, Uniswap, Wagmi, Wormhole, XNFT Backpack, Yak, YieldRay, Zeta, Zeus, ZigZag
## Go further
The Net worth card, claimable rewards, positions by platform, and the actions on each row.
Realized and unrealized PnL, top trades, the PnL Calendar, and the Share PnL card.
The transaction history and how to export it as a CSV file.
Recover the SOL locked as rent in empty token accounts.
Switch wallets, bookmark addresses, and view several wallets as one group.
Check airdrop eligibility across your wallets.
# Newsletter
Source: https://docs.jup.ag/user-docs/manage/portfolio/newsletter
The Newsletter tab of Jupiter Portfolio subscribes you to the Portfolio Brief, a free weekly email sent every Monday on what changed across your positions.
The Newsletter tab of a portfolio is where you subscribe to the Portfolio Brief, a free weekly email about your portfolio sent every Monday. It covers what changed across your positions, anything that needs your attention, such as a Perps position close to liquidation or a lending position whose health slipped, and rewards and opportunities worth a look, with market context connected to the assets you hold.
## Subscribing
Open the Newsletter tab of a portfolio. It shows a sample edition with illustrative data, so you can see the format before subscribing. Signing up and managing the brief require a connected wallet: until you connect, the tab only shows the sample and a **Connect wallet** prompt. Connecting on its own does not subscribe you.
Enter your email address and click **Get the weekly brief**.
**Choose wallets and save preferences** selects the wallets the brief covers. The wallet you subscribed from is the primary wallet and always stays in the list. With Jupiter Wallet you can add up to 9 more wallets (10 in total); with other wallets, up to 4 more. Switching the connected wallet never changes the saved primary on its own: use **Use connected wallet as primary** to change it explicitly. Editing the wallet list after signing up only saves the preference in your browser; the emails follow the selection you submitted.
A wallet with more than 150 JUP actively staked has its net worth tracked automatically, even when you do not visit Jupiter, so its brief can show changes over time. The brief uses the history available for the other wallets.
## Unsubscribing
Once subscribed, the Newsletter tab shows the email saved for the brief and an **Unsubscribe** action, which asks for confirmation. It works from the browser where you signed up. The link at the bottom of every brief email also unsubscribes.
To come back after unsubscribing, open the Newsletter tab with your wallet connected and use **Rejoin the weekly brief**: the form is prefilled with your saved email and wallets, and submitting it restarts the emails.
# Positions and Net Worth
Source: https://docs.jup.ag/user-docs/manage/portfolio/positions
The Positions tab of Jupiter Portfolio: the Net worth card and its views, claimable rewards, positions grouped by platform, and the actions on each row.
The Positions tab is the main view of Portfolio. It opens by default when you load a wallet and contains the Net worth card, the Spot PnL card, and every detected position grouped by platform.
At the top right of the page, **Bookmark** saves the wallet or group to your [Address Book](/user-docs/manage/portfolio/address-book), the eye icon (**Hide values**) masks every amount on the page, and the circular arrow (**Refresh positions**) reloads the data.
### The yellow shield icon next to the wallet name
A small yellow shield next to the wallet name in the page header means the last scan did not cover every protocol. Hover it to see "Position scan incomplete, some positions may be missing", followed by the protocols whose scanner failed and the wallet concerned. It is about position detection, not about your transactions: nothing has been lost onchain, but positions held on the listed protocols may be absent from the page and from the net worth until a later scan succeeds. Use **Refresh positions** to scan again, and **Report issue** in the same popover to contact support if the icon stays.
## The Net worth card
The Net worth card shows the wallet's total value in your display currency and in SOL, with its change in value and in percent since the earliest recorded point in the selected window ("since yesterday", "since 19 days ago", and so on). It carries the Send button (transfer tokens to any address, or create a Magic Link, via Jupiter Send) and the Deposit button (deposit crypto, buy with card, deposit from an exchange, or bridge from other chains).
The lower part of the card is a chart area with three views: **Net worth**, then two icon buttons next to it for **Yield** and **Breakdown**. The info icon next to them explains the view you are on.
| View | What it shows |
| - | - |
| Net worth | Portfolio value over time, with a 1w, 1M, or 3M window. History is currently recorded for active JUP stakers: a wallet without recorded history shows "No recorded history" instead of a chart. |
| Yield | Estimated returns of your active positions at their current rates, in your display currency and as a percentage. A selector sets the period, 24h, 1M, or 1Y (yearly by default), and a toggle switches between APR (the default) and APY. The card shows the largest contributor; **View all** lists every platform and token. |
| Breakdown | Allocation of the portfolio by Tokens or by Platforms, each entry with its share of total value. |
The Yield view is a projection based on current rates, provided for information only. It is not a guarantee of future returns: rates change with protocol conditions.
## Where the Claimable amount comes from
When the wallet has assets to claim across protocols, a **Claimable** total appears in the Net worth card. It counts rewards accrued on liquidity positions, and assets a protocol marks as claimable or that have finished vesting. Platforms whose claimable total falls under a small display threshold are left out.
Click the total to open the Claimable positions dialog: the total value you can claim, then each item grouped by platform with the token, the amount, its value, and, for a wallet group, which wallet holds it.
Each item carries a **Claim** button. Portfolio does not claim on your behalf: the button opens the protocol's own claim page (or its website when the position has no direct link) in a new tab, where you claim with your wallet and pay that protocol's network fees. Come back to Portfolio and use **Refresh positions** to see the updated balance.
Airdrops have their own flow in the [Airdrop tab](/user-docs/manage/portfolio/airdrop-checker), and JUP staking rewards are claimed from [Active Staking Rewards](/user-docs/more/dao/asr#how-to-claim-asr).
## The Spot PnL card
The Spot PnL card, to the right of the Net worth card, shows the wallet's realized spot PnL for the current month, its best day, its win or loss streak, and a day-by-day strip. **PnL Calendar** and **Share PnL** open from it. The card, the Spot tab, and the calendar are described on the [Spot PnL](/user-docs/manage/portfolio/spot-pnl) page.
## Positions by platform
Below the cards, every detected position is grouped by platform: Holdings for the tokens held in the wallet, then one section per protocol (Jupiter, Validators, Jito, Kamino, and so on). Each section shows its total value and expands to the individual positions. Platform chips above the list jump to a platform's section, and **Collapse** folds all sections.
The Holdings header carries the **Reclaim** button with the number of token accounts you can close to recover SOL, see [Reclaim SOL](/user-docs/manage/portfolio/reclaim-sol). Below the last section, **Missing a position? Report it** opens a form to report a position Portfolio did not detect.
### Columns
| Column | Description |
| - | - |
| Asset | The token or position. |
| Value/Balance | Value of the position in your display currency, and the amount of the token held or deposited. |
| Price/24hΔ | Current token price with its 24-hour change. |
| PnL (all time) | Profit and loss on the holding since you acquired it, shown for wallet tokens. Click the column header to switch to **PnL (24h)**. |
| Yield | Current APY for yield-bearing positions (staking, lending, liquidity). |
| Actions | The Jupiter actions available on the row, see below. |
Some position types display additional information:
* Lending positions show the Health percentage and separate Supplied and Borrowed amounts. Clicking the health value switches between the Ratio and Factor display, see [Portfolio Settings](/user-docs/manage/portfolio/settings).
* Validator staking shows the Validator name and stake status (for example Active or Claimable).
* Leverage positions show the multiplier and Health percentage.
* Pending Jupiter Perps orders (limit orders that have not filled yet) are listed separately from open positions, with the asset, direction, trigger price, size (the order amount multiplied by the trigger price), and collateral. A wallet that only has pending orders shows no open position and no **Close** button. The collateral set aside for pending orders is shown with the orders and is not counted in the position value or the Positions subtotal, so it is never counted twice.
## Actions available from a position
Portfolio is primarily a read-only tool, but Jupiter products can be acted on from their row, for the connected wallet only.
| Action | Where and what |
| - | - |
| **Trade** | On a wallet token: opens the Trade Token dialog to buy or sell it without leaving Portfolio, see [Trading from Portfolio](#trading-from-portfolio). |
| **Get X% APY** | On SOL: stake it with the Jupiter validator. On tokens Jupiter Lend accepts (for example USDG): supply them to Jupiter Lend. |
| **Manage** | On a Jupiter Lend position: add funds, manage Earn deposits and Borrow positions. On a validator staking position: manage the stake. |
| **Cancel** | On an active Jupiter limit order or recurring (DCA) order. |
| **Close** | On a Jupiter Perps or Jupiter Predict position. |
| **Reclaim** | On the Holdings header: close empty token accounts to recover SOL, see [Reclaim SOL](/user-docs/manage/portfolio/reclaim-sol). |
Actions are only available for Jupiter products and only for the connected wallet. Positions on watched addresses, and positions on third-party protocols such as Kamino or Drift, are displayed but cannot be managed from Portfolio. The one exception is **Trade**, which opens on any wallet you view: the dialog then asks you to connect a wallet before you can trade.
## Trading from Portfolio
**Trade**, on any row of the Holdings section, opens the **Trade Token** dialog with that token preselected. It is the Spot trade form, so you can buy or sell without leaving Portfolio.
The right side of the dialog is the trade form, with the same three tabs as Spot: **Market** for an immediate swap (Ultra by default, with the settings icon to adjust it), **Limit** for a trigger order, and **DCA** for a recurring order. The token you clicked is set as the token to buy against SOL; use the arrows to sell it instead, or change either side of the pair. Orders placed here are the same as orders placed on Spot and appear in your Jupiter positions.
On a desktop screen, when your wallet is connected, the left side of the dialog shows your history with that token:
* **Token header**: symbol, mint address with a copy button, current price and 24h change, market cap, and the watchlist star.
* **Price chart**: the token price with your trades marked on it. **B** marks a candle where you only bought, **S** one where you only sold, and **T** one with both; the number under a mark is how many trades it groups. Hover a mark to see the buys and sells. Horizontal lines show your **Avg Entry** and **Avg Exit** prices. **4h**, **7d**, **30d** set the window, and **Auto** (the default) fits it to your trading history. The **Price** toggle switches the chart to market cap.
* **PnL card**: the value and amount of the token you hold, your total PnL in USD and in percent (hover it for the realized and unrealized split), your average entry price, and the total bought. **Share** produces an image card of the position.
* **Open Token Page** opens the token's [token page](/user-docs/trade/spot/token-page).
* **Trades**: every buy and sell of that token, with date, price, amount, profit, and a link to the transaction.
On a phone, or when no wallet is connected, the dialog only contains the trade form.
# Reclaim SOL
Source: https://docs.jup.ag/user-docs/manage/portfolio/reclaim-sol
Recover the SOL locked as rent in empty token accounts from Jupiter Portfolio: eligible accounts, the Reclaim SOL dialog, and what stays in your wallet.
Every token you have ever held on Solana lives in a token account, and each account holds a small amount of SOL as rent to stay open. When you sell or send all of a token, its account usually stays open with that SOL inside. Reclaim SOL closes those empty accounts and returns their rent to your wallet, and can also recover excess SOL from accounts that stay open.
## Where to find it
On the Positions tab, the Holdings section header carries a **Reclaim** button with a badge showing how many token accounts are eligible. The button only works for the connected wallet: on a watch-only address it is displayed but cannot be used.
## The Reclaim SOL dialog
Clicking **Reclaim** opens the Reclaim SOL dialog. It reads: "Recover SOL by closing eligible empty token accounts or reclaiming excess SOL from accounts that stay open. Your tokens stay in your wallet."
Eligible Tokens lists every account with reclaimable SOL, with the total, for example "36 tokens with reclaimable SOL" and the SOL they add up to. Each row shows the token, its truncated mint address, the SOL that account returns, and the action applied to it, **Close** for an empty account.
Estimated Reclaim at the bottom of the dialog updates with the SOL and its value for the accounts selected.
**Review** moves to the confirmation, after which your wallet asks you to sign the transaction. **Cancel** closes the dialog without doing anything.
Rent amounts are small, typically about 0.002 SOL per account, so the total is only worth a transaction once a wallet has accumulated many empty accounts.
Reclaiming never sells or moves your tokens: only empty accounts are closed, and the balances of tokens you still hold are untouched. A closed account is recreated automatically, with new rent, the next time you receive that token.
# Portfolio Settings
Source: https://docs.jup.ag/user-docs/manage/portfolio/settings
The four Portfolio settings on jup.ag: display currency (USD, EUR, GBP, JPY and more), hiding small positions, lending health display, and the Spot PnL period.
Four settings control how Portfolio displays a wallet. Open the settings icon in the top bar of jup.ag, then the Portfolio tab.
| Setting | What it does |
| - | - |
| **Currency** | The currency every value on the page is converted to: USD, EUR, GBP, JPY, AED, AUD, CAD, SGD, or INR. USD by default. Conversion applies an exchange rate to the USD value; prices themselves are sourced as described in [Pricing](/user-docs/manage/portfolio#pricing). |
| **Hide positions** | Hides positions below a value: Show All, under \$0.01, \$1, \$5, or \$10. Show All by default. |
| **Health mode** | How the health of a lending position is written: Ratio as a percentage, where liquidation may start at 0%, or Factor as a number, where it may start at 1. Ratio by default. Clicking the Health value on a position switches between the two as well. |
| **Spot PnL** | The period the Spot PnL card covers: All time or 24h. All time by default. |
These settings are saved in your browser: they apply to every wallet you open on that device and do not follow you to another browser or to Jupiter Mobile.
They are separate from **Default Currency** in the General tab of the same dialog, which sets the token you trade against on the Spot pages and offers USDC, SOL, or JupUSD; see [Spot settings](/user-docs/trade/spot#settings).
# Spot PnL
Source: https://docs.jup.ag/user-docs/manage/portfolio/spot-pnl
Spot trading performance in Jupiter Portfolio: Spot tab metrics, realized and unrealized PnL, top trades, the PnL Calendar with win streaks, Share PnL.
Portfolio measures a wallet's spot trading performance in three places: the Spot PnL card on the Positions tab, the Spot tab, and the PnL Calendar. All three work for a single wallet at a time: on a wallet group, the card asks you to choose a wallet and the Spot tab is disabled.
## The Spot tab
The Spot tab is the wallet's spot trading record. A time filter (1d, 7d, 30d, All) applies to the whole tab, and the Updated indicator shows when the data was last refreshed.
### Summary metrics
Three cards summarize the selected period:
* Summary: Holdings (current value of the tokens still held), Volume with the number of trades, Total PnL, Win Rate, Realised PnL (on tokens sold) and Unrealised PnL (on tokens still held, at current prices), each with its percentage. **Share** produces an image card.
* Realised PnL: a chart of realized PnL over the period. **Calendar** opens the PnL Calendar.
* Top trades: your three best trades of all time by PnL, and the distribution of your trades by return multiple: below -0.5x, 0 to 0.5x, 0.5 to 2x, 2 to 5x, and above 5x.
### Token lists
Your average entry and exit prices for a token are in these lists, in the Bought / Entry and Sold / Exit columns.
Below the cards, four lists detail the tokens traded:
* Recent: tokens by last trade date.
* Holdings: tokens you still hold.
* Profitable: tokens by PnL.
* Activity: every buy and sell, with date, price, amount, volume, profit, and a link to the transaction.
For each token, the lists show the last trade date, unrealized, realized, and total PnL, the current holding, the amount bought with its average entry price, the amount sold with its average exit price, and the share of the position remaining. **Manage** switches the price display between token price and market cap, and the currency between USD and SOL.
## The PnL Calendar
**PnL Calendar** opens from the Spot PnL card on the Positions tab, or from **Calendar** on the Spot tab. It is a monthly heatmap of realized PnL: one cell per day, colored by result, with the day's amount. The header shows the month's total PnL, the number of winning days with their total, and the number of losing days with theirs. Below the grid, Longest Win Streak and Current Win Streak count consecutive profitable days; flat and inactive days do not reset a streak. Use the month selector to move through time, and the currency toggle to read the calendar in USD or SOL. **Share** exports the calendar as an image.
## The Spot PnL card
On the Positions tab, the Spot PnL card shows the current month's realized spot PnL, its Best day, its Win streak or Loss streak (the longest run of profitable or losing days this month), and a day-by-day strip colored by daily result. The month label opens the Spot tab, **PnL Calendar** opens the calendar, and **Share PnL** produces an image card.
The period the card covers is a setting: All time by default, or 24h, see [Portfolio Settings](/user-docs/manage/portfolio/settings).
# Brand Kit
Source: https://docs.jup.ag/user-docs/more/brand-kit
Logos, labelling guidelines, and brand assets for Jupiter integrations.
## Jupiter Brand Kit
## Labelling
When integrating with Jupiter products, you are advised to correctly label the APIs used.
**For Swap**
| API Used | Required Label |
| - | - |
| Self-Hosted Metis Swap API binary | Metis |
# Active Staking Rewards (ASR)
Source: https://docs.jup.ag/user-docs/more/dao/asr
What ASR is, how it's distributed, and how to claim your rewards.
## What is ASR
ASR stands for Active Staking Rewards. Every quarter, 50 million JUP from the community allocation is distributed to eligible stakers.
ASR is paid in JUP and added to your staked balance, increasing your governance power over time.
Voting activity has no impact on ASR. You do not need to vote to be eligible.
For more background on ASR, see the original post: [ASR: Active Staking Rewards Notes](https://discuss.jup.ag/t/asr-active-staking-rewards-notes/12032).
## How ASR is calculated
ASR is distributed based on time-weighted stake. The longer and the more you have staked during a given quarter, the larger your share of the quarterly ASR allocation.
The 7-day unstaking cooldown prevents users from staking briefly around distribution periods to claim rewards without sustained participation. See [Staking](/user-docs/more/dao/staking) for details on the unstaking process.
## How to claim ASR
ASR rewards are distributed quarterly and must be actively claimed. They are not sent to your wallet automatically.
There is no fixed distribution date. Each quarter's claim window is announced on Jupiter's official channels when it opens. If nothing is displayed on the rewards page yet, the claim period for the quarter has not started.
Connect your staking wallet to [jup.ag/rewards](https://jup.ag/rewards) when ASR claims go live for the quarter. If the campaign page shows that claims through the Rewards Hub have ended, follow the [claim period](#claim-period) route instead.
The page will display the amount of ASR you are eligible to claim.
Click the claim button and confirm the transaction in your wallet.
ASR cannot be claimed while you are in the process of unstaking. You can either wait for the 7-day cooldown to finish and then claim, or cancel the unstaking process first and claim immediately.
## Troubleshooting
ASR is claimed at [jup.ag/rewards](https://jup.ag/rewards), not on the vote.jup.ag governance page. Connect the wallet you used to stake your JUP, and your eligible rewards will be displayed.
Claiming ASR is an onchain transaction that requires gas. Make sure you have at least \~0.01 SOL in your wallet. If the transaction still fails, check that you are not currently in the process of unstaking, as ASR cannot be claimed during the 7-day cooldown.
ASR claimed through the Rewards Hub is added to your staked balance, not sent to your wallet as liquid JUP. To see the updated amount, check your staking balance on [vote.jup.ag](https://vote.jup.ag/) or [jup.ag/portfolio](https://jup.ag/portfolio).
A claim handled by support through a ticket works differently: the tokens are sent to the main address of the wallet you staked with. Check that address rather than your staked balance.
## Claim period
ASR claims open in the [Rewards Hub](https://jup.ag/rewards) shortly after the quarter ends (for the Apr - Jun 2026 round, claims opened on 8 July) and stay open for a limited window, not indefinitely.
When the window closes, the campaign page shows a claims-closed notice with a final support deadline: you can still claim by opening a support ticket at [support.jup.ag](https://support.jup.ag/) until that date (for the Apr - Jun 2026 round, until 7 October 2026). Reward amounts and your claimed state remain visible on the campaign page after claims close.
Rewards left unclaimed are **not** distributed automatically. They do not appear in your stake account on their own, and no transfer is made on your behalf after the support deadline. Claiming, in the Rewards Hub or through a support ticket before the deadline, is the only way to receive them.
Follow [@jup\_dao on Twitter](https://x.com/jup_dao) or enable "Notify me" on [vote.jup.ag](https://vote.jup.ag/) to get alerts when ASR claims go live.
# Jupiter DAO FAQ
Source: https://docs.jup.ag/user-docs/more/dao/faq
Frequently asked questions about the Jupiter DAO, staking, voting, and ASR.
## Staking
Connect your wallet to [vote.jup.ag](https://vote.jup.ag/), enter the amount you want to stake, and confirm the transaction. Full step-by-step instructions are on the [Staking](/user-docs/more/dao/staking) page.
No. Unstaking requires a 7-day cooldown. After 7 days, you can claim your tokens back to your wallet. See [Staking](/user-docs/more/dao/staking) for the full process.
It prevents gaming. Without it, users could stake briefly around distribution periods to claim ASR and leave immediately, with no sustained commitment.
Staked JUP is not liquid, so some wallets may not display it. You can check your accurate balance at [vote.jup.ag](https://vote.jup.ag/) or [jup.ag/portfolio](https://jup.ag/portfolio).
You likely don't have an open JUP token account in your wallet. This can happen if you've used a wallet cleanup service. Buy a small amount of JUP to reopen the account, then retry. Make sure you have at least \~0.01 SOL for the fee.
Staking lets you vote on DAO proposals, earn quarterly ASR rewards based on time-weighted stake, and access occasional community perks and airdrops. Additional utility for stakers is being explored. See [Staking](/user-docs/more/dao/staking).
## Voting
Connect your staking wallet to [vote.jup.ag](https://vote.jup.ag/), find the active proposal in the Proposals section, select your option, and confirm the transaction. Full instructions are on the [Voting](/user-docs/more/dao/voting) page.
Go to [vote.jup.ag](https://vote.jup.ag/) and scroll to the "Proposals" section. Active proposals appear at the top with an "Active" status. You can also follow [@jup\_dao on Twitter](https://x.com/jup_dao) or enable email notifications on the vote page.
Yes. Only staked JUP gives you voting power. Unstaked JUP in your wallet cannot be used to vote. See [Staking](/user-docs/more/dao/staking) for how to stake.
Yes. You can change your vote at any time while the proposal is still active by voting again with a different option.
It means you are participating in governance but choosing not to take a position. Your voting power still counts toward quorum.
No. Your vote choice has no impact on ASR. Voting activity is not required for ASR eligibility. ASR is distributed based on time-weighted stake only.
When you vote during an unstaking process, your voting power is based on what your staking account will hold at the end of the proposal. This prevents the same tokens from being used to vote twice across different wallets.
Voting is an onchain transaction that requires gas. Make sure you have at least \~0.01 SOL in your wallet.
You can follow announcements on [Discord](https://discord.com/invite/jup), the [DAO Twitter](https://x.com/jup_dao), or enable email notifications on [vote.jup.ag](https://vote.jup.ag/) by selecting "Notify me."
## ASR
Active Staking Rewards. Every quarter, 50 million JUP from the community allocation is distributed to stakers based on time-weighted stake. Voting is not required. See [ASR](/user-docs/more/dao/asr) for full details.
Connect your staking wallet to [jup.ag/rewards](https://jup.ag/rewards) when claims go live. Your eligible amount will be displayed with a button to claim. See [ASR](/user-docs/more/dao/asr) for step-by-step instructions.
No. You must either wait for the unstaking period to end and then claim, or cancel the unstaking process first.
Yes. You can claim at any time during the quarter. At the end of the quarter, unclaimed rewards are returned to the community's treasury and are not redistributed.
ASR is claimed at [jup.ag/rewards](https://jup.ag/rewards), not on the vote.jup.ag governance page. Connect the wallet you used to stake your JUP.
Make sure you have at least \~0.01 SOL for gas. Also check that you are not currently unstaking, as ASR cannot be claimed during the 7-day cooldown.
## Community Initiatives
The Working Groups model has been discontinued and existing groups have been disbanded. The format is unlikely to return in its original form.
The formal grant program has been halted. However, the community can still propose ideas via the [Jupiter Forum](https://discuss.jup.ag/) or reach out to AlleyCat or AG for support. See the [DAO Overview](/user-docs/more/dao/index) for details.
# Jupiter DAO Overview
Source: https://docs.jup.ag/user-docs/more/dao/index
Overview of the Jupiter DAO, the J.U.P. vision, community initiatives, and the Catdet community.
## What is the Jupiter DAO
The Jupiter DAO is a community-governed system that seeks to expand both Jupiter and Solana as a whole. The DAO conducts regular votes using JUP, the governance token.
The DAO was seeded with 100 million JUP and 10 million USDC. JUP holders who stake their tokens can vote on proposals relating to the allocation of these assets and on broader governance decisions.
To participate, stake your JUP on [vote.jup.ag](https://vote.jup.ag/). See [Staking](/user-docs/more/dao/staking) for a step-by-step guide.
## The J.U.P.
The J.U.P. is Jupiter's framework for a community that operates across multiple layers and works together to push both Jupiter and the broader crypto space forward.
Everyone who uses Jupiter products.
Core team building and maintaining Jupiter.
Community governance through proposals and votes.
Jupiter's most active and recognized community members.
You can read more about this concept in the original post: [J.U.P: An Experiment in Distributed Strategic Execution](https://discuss.jup.ag/t/j-u-p-an-experiment-in-distributed-strategic-execution/7182).
## Related Pages
* [Staking](/user-docs/more/dao/staking) — How to stake and unstake JUP, the unstaking period, and staking benefits
* [Voting](/user-docs/more/dao/voting) — How to vote on proposals and track votes
* [Active Staking Rewards (ASR)](/user-docs/more/dao/asr) — What ASR is, how it's distributed, and how to claim
* [Jupiter DAO FAQ](/user-docs/more/dao/faq) — Frequently asked questions about the DAO, staking, voting, and ASR
# Staking
Source: https://docs.jup.ag/user-docs/more/dao/staking
How to stake and unstake JUP, the unstaking period, and staking benefits.
## What staking does
Staking JUP locks your tokens in the governance smart contract. In return, you receive voting power to participate in DAO proposals and become eligible for [Active Staking Rewards (ASR)](/user-docs/more/dao/asr).
Staked JUP is not liquid. It remains locked until you go through the unstaking process.
## How to stake
Visit the governance platform at [vote.jup.ag](https://vote.jup.ag/). You can use a desktop browser or your wallet's dApp browser on mobile. Click the Connect button in the top right corner and select your wallet.
Enter the amount of JUP you want to stake, then click "Stake" and confirm the transaction in your wallet.
Once confirmed, the JUP will leave your wallet and your Voting Power will update on the governance site. You can now vote on any live proposal.
You can add more JUP to your existing stake at any time without unstaking first.
## Benefits of staking
Staking JUP allows you to:
* Participate in Jupiter DAO governance by voting on proposals.
* Earn Active Staking Rewards (ASR) each quarter, distributed based on time-weighted stake. See [ASR](/user-docs/more/dao/asr) for details.
* Access occasional community perks and airdrops.
Additional utility for JUP stakers is being explored across the Jupiter product suite.
## How to unstake
Unstaking initiates a 7-day cooldown period. During this time, you can still vote on live proposals with your remaining voting power and qualify for rewards.
Connect your staking wallet to [vote.jup.ag](https://vote.jup.ag/) and select the Unstake tab below your Voting Power display.
Select the amount you want to unstake (or select MAX to unstake everything). Click "Unstake" and confirm the transaction.
A 7-day countdown will begin. Your Voting Power will update to reflect the unstaking. You can cancel the process at any time by clicking "Cancel."
Once the 7-day period ends, click "Claim" and confirm the transaction. The tokens will be returned to your wallet.
Unstaking cannot be skipped or accelerated. You must wait 7 days before claiming your tokens.
### Voting power during unstaking
When you unstake, your voting power is reduced based on the amount being unstaked:
* **Partial unstake**: voting power is reduced instantly by the unstaked amount.
* **Full unstake**: voting power decreases linearly over the 7-day unstaking period.
If you vote on a proposal while unstaking, your voting power is calculated based on what your staking account will hold at the end of the proposal. This prevents the same tokens from being used to vote more than once across different wallets.
## Why is there a 7-day unstaking period
The 7-day cooldown exists to prevent gaming. Without it, users could stake before a distribution period to claim ASR and unstake immediately after, without any sustained commitment.
## Check your staked balance
Since staked JUP is not liquid, some wallets may not display it correctly.
To check your accurate staked balance:
* [vote.jup.ag](https://vote.jup.ag/) (connect your wallet)
* [jup.ag/portfolio](https://jup.ag/portfolio)
## Claiming fails after unstaking
If your claim transaction fails after the 7-day period, it's likely because your wallet no longer has an open JUP token account. This can happen if you've used a wallet cleanup service to burn empty token accounts.
Buy a small amount of JUP (any amount) to reopen the JUP token account in your wallet.
Go back to [vote.jup.ag](https://vote.jup.ag/) and click "Claim" again. Make sure you have at least \~0.01 SOL for the transaction fee.
# Voting
Source: https://docs.jup.ag/user-docs/more/dao/voting
How to vote on Jupiter DAO proposals, track votes, and understand voting mechanics.
## How voting works
JUP holders who have staked their tokens can vote on governance proposals through the Jupiter DAO. Each staker's influence is proportional to their staked balance (voting power).
Voting is an onchain transaction. You need a small amount of SOL (\~0.01) in your wallet to cover the transaction fee.
To check if there is an active vote right now, go to [vote.jup.ag](https://vote.jup.ag/) and scroll to the "Proposals" section. Active proposals are listed at the top with an "Active" status.
## How to vote
Go to [vote.jup.ag](https://vote.jup.ag/) and connect the wallet where your JUP is staked.
Scroll to the "Proposals" section at the bottom of the page. Active proposals appear at the top of the list. Click on the proposal you want to vote on to see its details and vote options.
Select your preferred option, click "Vote," and confirm the transaction in your wallet.
The proposal page will update to show what you voted for and the voting power you used. You can also leave verified feedback.
You can change your vote at any time while the proposal is still active by simply voting again with a different option.
## Vote options
Most proposals include "For," "Against," and "Abstain" options.
Selecting "Abstain" means you are participating in governance but choosing not to take a position. Your voting power still counts toward quorum.
The option you choose has no impact on your ASR allocation. Voting activity is not required for ASR eligibility. ASR is distributed based on time-weighted stake only. See [ASR](/user-docs/more/dao/asr) for details.
## Voting power while unstaking
If you vote on a proposal while you are in the process of unstaking, your voting power is calculated based on what your staking account will hold at the end of the proposal, not your current staked balance.
This is a safeguard. Without it, someone could vote, finish unstaking, transfer tokens to another wallet, restake, and vote again on the same proposal.
## Can't vote even though JUP is staked
If your JUP is staked but you're unable to vote, check that you have at least \~0.01 SOL in your wallet. Voting is an onchain transaction and requires gas.
## Stay informed about upcoming votes
There are several ways to make sure you don't miss a vote:
* **[Discord](https://discord.com/invite/jup)**: proposals are typically shared in announcements. The lead-up usually lasts 7 to 10 days, and the voting period runs for 3 to 4 days.
* **[DAO Twitter](https://x.com/jup_dao)**: posts the voting calendar and reminders while a vote is live.
* **[Email notifications](https://vote.jup.ag/)**: on the vote page, select "Notify me" to receive email alerts when a vote opens.
## Voting history
You can view all past proposals and your personal voting history by connecting your wallet at [vote.jup.ag](https://vote.jup.ag/).
# JUP Token FAQ
Source: https://docs.jup.ag/user-docs/more/jup-token/faq
Frequently asked questions about the JUP token, including the contract address and where to get JUP.
```
JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN
```
Always verify the address before trading. The Jupiter team has no other tokens besides those listed on the [Overview](/user-docs/more/jup-token/index) page.
JUP is available on decentralized exchanges (DEXs) and centralized exchanges (CEXs). On Solana, you can swap it directly through [Jupiter](https://jup.ag/tokens/JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN).
These are receipt or utility tokens tied to specific Jupiter products. They do not dilute JUP governance or economics. Contract addresses are listed on the [Overview](/user-docs/more/jup-token/index) page.
No. JUP is and will remain the only governance token for Jupiter. The team may issue product-specific receipt tokens (e.g. LP receipts, liquid staked tokens), but none that affect JUP economics. See [Tokenomics](/user-docs/more/jup-token/tokenomics) for details.
Jupiter earns fees from perpetuals, spot swaps, limit orders, DCA, and liquidity aggregation (onchain and offchain). 50% of onchain revenue goes to the Litterbox Trust to buy JUP. The rest funds operations and treasury reserves. See [Transparency](/user-docs/more/jup-token/transparency) for the full breakdown.
A non-profit entity that receives 50% of Jupiter's onchain revenue and uses it to make programmatic onchain purchases of JUP as a long-term strategic reserve. It has burned approximately 134 million JUP to date. You can track its wallet on [Solscan](https://solscan.io/account/6tZT9AUcQn4iHMH79YZEXSy55kDLQ4VbA3PMtfLVNsFX).
No. JUP holders do not receive a direct percentage of fees. They benefit indirectly through the Litterbox Trust's JUP purchases and through ASR, quarterly rewards distributed to stakers based on time-weighted stake. See [Transparency](/user-docs/more/jup-token/transparency).
No. There are no advisory payments to insiders, and no profit flows to founders or equity holders. All team compensation comes from the team token allocation and is subject to vesting. See [Transparency](/user-docs/more/jup-token/transparency).
All team members are on a 1-year cliff followed by 3 years of linear vesting. Tokens vest onchain and can be viewed on [Jupiter Lock](https://lock.jup.ag/). Locked tokens cannot earn ASR. See [Tokenomics](/user-docs/more/jup-token/tokenomics).
The unlock schedule is available on [CoinMarketCap](https://coinmarketcap.com/currencies/jupiter-ag/#token_unlocks). Unissued token wallets are reviewed every \~6 months in community audits. The latest is the [February 2025 audit](https://discuss.jup.ag/t/jup-community-audit-feb-2025/34764).
No. Jupiter has never conducted an OTC sale or made discounted sales to market makers. Details on market maker arrangements are on the [Transparency](/user-docs/more/jup-token/transparency) page.
The co-founders of Jupiter are also the co-founders of Meteora, which is publicly known. However, Meteora's revenue does not flow through Jupiter entities and its balance sheets are kept entirely separate. Meteora may launch its own token in the future.
# JUP Token Overview
Source: https://docs.jup.ag/user-docs/more/jup-token/index
Contract address, affiliated tokens, and where to trade JUP.
## What is JUP
JUP is the governance token of the Jupiter protocol on Solana. Holders can stake JUP to participate in the Jupiter DAO, vote on governance proposals, and earn Active Staking Rewards (ASR).
JUP does not entitle holders to a direct share of protocol fees. However, 50% of Jupiter's onchain revenue is used to programmatically purchase JUP through the Litterbox Trust, which operates as a long-term strategic reserve. See [Transparency](/user-docs/more/jup-token/transparency) for details on revenue allocation and value accrual.
## Contract address
Always verify the token address before trading. The Jupiter team has no tokens other than those listed on this page.
```
JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN
```
## Affiliated tokens
Jupiter issues several product-specific tokens alongside JUP. These are receipt or utility tokens tied to specific Jupiter products. They do not dilute JUP governance or economics.
Jupiter Liquidity Provider token.
`27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4`
Jupiter liquid staked SOL.
`jupSoLaHXQiZZTSfEWMTRRgpnyFm8f6sZdosWBjx93v`
Jupiter yield-bearing stablecoin.
`JuprjznTrTSp2UFa3ZBUFgwdAmtZCq4MQCwysN55USD`
The team may launch additional receipt tokens in the future (e.g. LP position receipts, liquid staked tokens). There are no plans to launch any governance or protocol token that would dilute JUP economics.
## Where to trade JUP
JUP can be traded on decentralized exchanges (DEXs) and centralized exchanges (CEXs). On Solana, you can swap JUP directly through [Jupiter](https://jup.ag/tokens/JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN).
Always verify the token address before executing a trade, whether on a DEX or CEX. Imposter tokens using similar names or tickers exist across platforms.
## Related Pages
* [JUP Tokenomics](/user-docs/more/jup-token/tokenomics) — Allocation, team vesting, supply reduction, and where to track unlocks
* [Transparency](/user-docs/more/jup-token/transparency) — Revenue model, value accrual, and market maker arrangements
* [JUP Token FAQ](/user-docs/more/jup-token/faq) — Contract address, where to get JUP, and other common questions
# JUP Tokenomics
Source: https://docs.jup.ag/user-docs/more/jup-token/tokenomics
JUP token allocation, team vesting on Jupiter Lock, the community-approved supply reduction, and where to track unlocks and circulating supply.
## Initial allocation
Details about the initial allocation of JUP and the original tokenomics structure can be found in [this post from Meow](https://x.com/weremeow/status/1735544950417436806), co-founder of Jupiter.
## Team vesting
All team members are on a standard vesting schedule: 1-year cliff followed by 3 years of linear vesting. Team tokens vest onchain and can be viewed on [Jupiter Lock](https://lock.jup.ag/).
Locked tokens cannot earn ASR. Team members are only eligible for Active Staking Rewards on tokens that have fully vested and been staked through the governance program.
There are no advisory payments to insiders from the Foundation. All team compensation comes exclusively from the team token allocation and is subject to the vesting schedule described above.
## Supply and burns
Jupiter conducted a community-approved supply reduction. Details of the proposal and its rationale are available in the [Supply Reduction Proposal](https://discuss.jup.ag/t/proposal-enhance-certainty-for-jup-holders-and-community-via-a-token-supply-reduction/20919).
The Litterbox Trust, which receives 50% of Jupiter's onchain revenue, has also burned approximately 134 million JUP to date. See [Transparency](/user-docs/more/jup-token/transparency) for more on the Litterbox Trust.
For the current unlock schedule and circulating supply data, see the [JUP unlock schedule on CoinMarketCap](https://coinmarketcap.com/currencies/jupiter-ag/#token_unlocks).
## Token issuance transparency
Jupiter publicly discloses all token issuance events, including minting and airdrops.
**Jupuary 2024**
* Announcement: [post from Mei](https://x.com/9yointern/status/1728816741076361659)
* Airdropped wallets: [full list](https://drive.google.com/file/d/1ayxMQVutULTxEQbRVzY-rVxO_t5-mP5W/view?usp=sharing)
**Jupuary 2025**
* Announcement: [post from Kash](https://x.com/kashdhanda/status/1879554632449507360)
* Airdropped wallets: [full list](https://drive.google.com/file/d/1nKj2MLwG83YVQYs0GMiuSUorl-We7X_B/view?usp=sharing)
## Unissued token wallets
Unissued token wallets are publicly reviewed approximately every 6 months through community audits. The wallet addresses and full breakdown can be found in the most recent [JUP Community Audit (February 2025)](https://discuss.jup.ag/t/jup-community-audit-feb-2025/34764).
## Future tokens
The Jupiter team will not launch any additional governance or protocol tokens. JUP is and will remain the only governance token for Jupiter.
The team may issue receipt tokens tied to specific products (e.g. LP position receipts, liquid staked tokens) as part of its product suite. These do not dilute JUP economics or governance rights.
The co-founders of Jupiter are also the co-founders of [Meteora](https://meteoraag.medium.com/). Meteora may launch its own token in the future. Meteora's revenue does not flow through Jupiter entities, and its balance sheets are kept entirely separate.
# Transparency
Source: https://docs.jup.ag/user-docs/more/jup-token/transparency
Jupiter revenue model, value accrual, market maker arrangements, and key resources.
## Revenue
Jupiter generates revenue from fees across its product suite, including perpetuals, spot swaps, limit orders, DCA, and onchain/offchain liquidity aggregation.
Revenue is split as follows:
* **50% of onchain revenue** is sent to the Litterbox Trust, a non-profit entity with the mandate to accumulate JUP through programmatic onchain purchases.
* **The remaining 50% of onchain revenue**, along with offchain revenue, forms the operational budget of the team. Excess funds go into treasury reserves. This budget is distributed across Foundation and Labs entities.
No profit (revenue net of costs) flows to founders or insiders.
## Litterbox Trust
The Litterbox Trust has been active since February 2025. It receives 50% of all onchain Jupiter revenue and uses it to buy JUP on the open market through automated, programmatic onchain transactions.
The trust functions as a long-term strategic reserve. To date, it has burned approximately 134 million JUP.
Track the Litterbox Trust wallet on Solscan:
[`6tZT9AUcQn4iHMH79YZEXSy55kDLQ4VbA3PMtfLVNsFX`](https://solscan.io/account/6tZT9AUcQn4iHMH79YZEXSy55kDLQ4VbA3PMtfLVNsFX)
For more context on the Litterbox Trust's role, see [Meow's overview](https://meow.bio/jup-4.html).
## Value accrual
There is no equity entity within Jupiter's structure. All value generated by Jupiter products accrues to the JUP token and the protocol. There are no present or future plans to return cash flow to equity holders through dividends or share repurchases.
JUP holders do not receive a direct percentage of protocol fees. They benefit indirectly through the Litterbox Trust's programmatic JUP purchases, funded by 50% of onchain revenue, and through ASR rewards distributed quarterly to stakers based on time-weighted stake.
Additional utility for JUP stakers is being explored across the Jupiter product suite. No specific features have been confirmed at this time.
## Related party transactions
Jupiter commits to publicly disclosing all related party transactions within 30 days.
## Market makers and exchange listings
Jupiter has never conducted an OTC sale and has not made any discounted sales to market makers. The team has worked with three market makers:
| Market maker | Tokens | % of supply (at launch) | % of supply (post-burn) | Call options | Term |
| - | - | - | - | - | - |
| Kbit | 6M | 0.06% | 0.086% | 2M tokens | 2 years |
| Wintermute | 15M | 0.15% | 0.214% | 5M tokens | 2 years |
| DWF | 20M | 0.20% | 0.286% | 20M tokens | 2 years |
Jupiter has never directly allocated tokens to centralized exchanges for market making. 10 million tokens were provided to DWF to facilitate listing arrangements independently. Jupiter is not party to any listing agreements.
## Key resources
| Resource | Link |
| - | - |
| JUP: The Genesis Post | [discuss.jup.ag](https://discuss.jup.ag/t/jup-the-genesis-post/478) |
| JUP: Minting and Accountability | [discuss.jup.ag](https://discuss.jup.ag/t/jup-minting-and-accountability/464) |
| JUP Community Audit: July 2024 | [discuss.jup.ag](https://discuss.jup.ag/t/jup-community-audit-jul-2024/20810) |
| JUP Community Audit: February 2025 | [discuss.jup.ag](https://discuss.jup.ag/t/jup-community-audit-feb-2025/34764) |
| Supply Reduction Proposal | [discuss.jup.ag](https://discuss.jup.ag/t/proposal-enhance-certainty-for-jup-holders-and-community-via-a-token-supply-reduction/20919) |
| JUP Unlock Schedule | [CoinMarketCap](https://coinmarketcap.com/currencies/jupiter-ag/#token_unlocks) |
| JUP Token Holder Update (Q2 2025) | [jup.ag](https://jup.ag/update/q2-2025) |
| JUP Token Holder Update (Q3 2025) | [jup.ag](https://jup.ag/update/q3-2025) |
| Case Study: JUP Launch | [Meteora blog](https://meteoraag.medium.com/dlmm-case-study-the-jup-launch-cf1d34d366a9) |
| Jupiter Dashboard | [Blockworks](https://blockworks.com/analytics/jupiter) |
# Poker Basics
Source: https://docs.jup.ag/user-docs/more/jupiter-poker
Core poker and action-selling concepts you need to understand before using Jupiter Poker.
Jupiter Poker is a marketplace where you can buy a share of a real poker player's tournament entry. Before using the product, it helps to understand a few poker fundamentals and the specific vocabulary used across the interface. This page is a reference: read it once if you're new to live poker, or come back to it whenever a term is unclear.
If you already know how live poker tournaments work, you can skip to [Jupiter Poker Concepts](/user-docs/more/jupiter-poker#jupiter-poker-concepts).
***
## What Action Selling Is
In live poker, a tournament has a fixed cost to enter, called the **buy-in**. For high-stakes events, this amount can be very large (\$25,000, \$100,000, or more). Many professional players don't want to put up the full buy-in themselves, so they sell **action**: they let other people pay part of their buy-in in exchange for a proportional share of any prize they win.
This practice exists in live poker as a private agreement between a player and their **backers**. It is informal, off-chain, and based on trust. Jupiter Poker brings this practice onchain: every share is represented as a position recorded on Solana, payouts are settled programmatically, and no one needs to trust an intermediary to hold or distribute funds.
The role you play on Jupiter Poker is the **backer** role. You are not the one playing the tournament. You are the one funding a share of a player's entry, and you receive a proportional share of their winnings if they finish in a paying position.
***
## Poker Tournament Concepts
These are general poker terms used across the Jupiter Poker interface and documentation. They are not specific to Jupiter.
The fixed amount of money a player must pay to enter a tournament. For example, a "\$100,000 No-Limit Hold'em Main Event" has a buy-in of \$100,000 per player. The buy-in is paid once, to the casino or tournament operator, before the tournament starts.
The total amount of money distributed to the top finishers of a tournament. It is built from the buy-ins of all players who entered (minus the casino's fee, where applicable). A bigger field means a bigger prize pool.
The total number of players entered in a tournament. The size of the field directly affects the prize pool and the number of paying positions.
The breakdown of how the prize pool is distributed among finishing positions. The winner gets the largest share, second place gets less, and so on, down to the lowest paying position. Each tournament publishes its full payout structure before play begins.
**In the Money**. A player is "in the money" when they finish in a position that receives a payout. Players who finish outside the paying positions receive nothing.
**Minimum In the Money**. The lowest-paying position in a tournament. For example, in a tournament that pays 11 positions, MIN ITM refers to the 11th-place finisher. This is the smallest payout a player can win while still being in the money.
A verb meaning to finish in the money. "The player cashed" means they finished in a paying position and received a payout. The size of the cash depends on where they finished.
A verb meaning to be eliminated from the tournament. A player "busts" when they lose all their chips and are knocked out. If the player busts before reaching the money, they receive no payout, and neither do their backers.
The position immediately before the money. The "bubble" is the last player eliminated before payouts begin. Busting on the bubble means finishing one place short of cashing.
A prize awarded for eliminating a specific player. In a "bounty" tournament, part of each player's buy-in becomes a bounty on their head. Whoever eliminates them collects it. Bounty payouts are separate from the standard prize pool.
***
## Jupiter Poker Concepts
These terms are specific to how Jupiter Poker is structured. You'll see them in the interface, in this documentation, and in any communication about the product.
A poker festival: a set of tournaments organised by the same operator in the same location over a defined period. Triton Super High Roller Series Montenegro 2026 is one series.
A single tournament inside a series. Each event has its own buy-in, format (No-Limit Hold'em, Pot-Limit Omaha, etc.), and prize pool. The "\$100,000 Pot-Limit Omaha Main Event" is one event inside the Triton Montenegro 2026 series.
One player's offer to sell action for one specific event. If two players are selling action for the same event, that's two separate listings. A listing displays the player, the event, the target raise, the fill progress, and the time remaining.
The poker professional whose entry you can buy a share of. Every player on Jupiter Poker is verified by Triton and Jupiter, with their identity publicly displayed alongside their listing.
You, when you buy a share of a player's listing. The backer funds part of the player's tournament entry and receives a proportional share of any payout the player wins.
The act of buying a share of a player's listing on Jupiter Poker. Throughout this documentation, "staking" refers exclusively to this action. It has no relation to Solana staking or to staking JUP for governance.
The total USDC amount the player wants to raise from backers for a given listing. This is set by the player and is typically a fraction of the tournament buy-in, not the full buy-in.
How much of the target raise has been bought by backers, expressed as a percentage. A listing at 64% fill has raised 64% of its target. A listing at 100% fill is fully raised.
The amount of USDC you commit when staking a listing. The buy amount includes Entry Fees: a small portion goes to fees, the remainder funds your position.
Your share of a player's action, recorded onchain after you complete a buy. The position is expressed as a percentage of the player's tournament buy-in and determines your share of any payout.
The percentage of the player's tournament entry that your position represents. If you hold 1% of action on a player who wins \$100,000, you receive \$1,000 before any settlement-side adjustments.
The fee Jupiter charges on each buy. The fee is shown explicitly in the buy modal before you confirm.
A minimum target raise level a listing must reach by its deadline. If the listing fails to reach this level, the listing is cancelled and every backer is refunded automatically.
A label shown on each listing card describing where it stands in its lifecycle. Examples include `RAISING` (open for buys) and `RAISED` (target reached).
The process by which the tournament result is recorded onchain and payouts become claimable by backers. Settlement happens after the event ends in real life.
The action a backer takes to receive their share of a payout after settlement. A claim requires one wallet signature and credits USDC to the backer's account.
USDC returned to the backer when a listing is cancelled (auto-cancel threshold missed, event cancelled, or other refund-eligible conditions). Refunds are visible in the dashboard alongside claims and stakes.
***
## How a Listing Is Priced
Every listing displays the player's tournament buy-in and the listing's target raise side by side. These are two different numbers.
The **tournament buy-in** is what the player owes to the casino to enter the event. For example, \$100,000 for the No-Limit Hold'em Main Event.
The **target raise** is what the player wants to raise from backers through Jupiter Poker. It is usually a fraction of the buy-in: the player covers the rest themselves.
When you stake a listing, your **buy amount** in USDC translates into a **% of action**: the share of the player's tournament entry that your position represents. The payout you can claim, if the player cashes, is proportional to that percentage.
For the exact math (buy amount → position → % of action → payout), see [How a Listing Is Priced](/user-docs/more/jupiter-poker#how-a-listing-is-priced).
***
## Listing Lifecycle in One Line
A listing moves through stages: it opens for buys, fills up (or doesn't), the event is played, and the result is recorded onchain. Backers either claim a payout, hold a losing position, or receive a refund if the listing was cancelled.
The full lifecycle, including each status and the exact rules for refunds and payouts, is described in [Listing Lifecycle in One Line](/user-docs/more/jupiter-poker#listing-lifecycle-in-one-line) above.
# Security
Source: https://docs.jup.ag/user-docs/more/security/index
Independent security audits for Jupiter's onchain programs, with direct links to each audit report.
Jupiter products are onchain programs running on Solana. This page lists the independent security audits performed on them, with a direct link to each report.
A security audit is a point-in-time review by a third party. It lowers risk but does not guarantee that a program is free of bugs or that funds cannot be lost. Review the risk section on each product page before using it.
## Trade
### Swap
| Auditor | Scope | Date | Report |
| - | - | - | - |
| Sec3 | Swap v3 | August 9, 2022 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/swap-v3-sec3.pdf) |
| Offside Labs | Swap v6 | April 2024 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/swap-v6-offside-april-2024.pdf) |
| Offside Labs | Swap v6 | October 2025 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/swap-v6-offside-october-2025.pdf) |
### Perpetuals
| Auditor | Scope | Date | Report |
| - | - | - | - |
| Offside Labs | Jupiter Perpetuals | February 2024 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/perpetual-offside.pdf) |
| OtterSec | Jupiter Perpetuals | 2023 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/perpetual-ottersec.pdf) |
| Sec3 | Jupiter Perpetuals | January 17, 2024 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/perpetual-sec3.pdf) |
### Limit Order
| Auditor | Scope | Date | Report |
| - | - | - | - |
| Offside Labs | Limit Order v2 | April 2024 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/limit-v2-offside.pdf) |
## Earn
### JLP
JLP is the liquidity pool that backs Jupiter Perpetuals. It runs on the same program, so it is covered by the [Perpetuals audits](#perpetuals) listed above.
### Lend
| Auditor | Scope | Date | Report |
| - | - | - | - |
| Offside Labs | Liquidity layer | July 2025 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lend-liquidity-offside.pdf) |
| Offside Labs | Oracle and flash loan | October 2025 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lend-oracle-and-flashloan-offside.pdf) |
| Offside Labs | Vault | August 2025 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lend-vault-offside.pdf) |
| MixBytes | Vault | October 2025 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lend-vault-mixbytes.pdf) |
| OtterSec | Lending | November 2025 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lend-ottersec.pdf) |
| OtterSec | Liquidity and Vaults | November 2025 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lend-ottersec-2.pdf) |
| Zenith | Jupiter Lend | July 2025 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lend-zenith.pdf) |
### Offerbook
| Auditor | Scope | Date | Report |
| - | - | - | - |
| Cantina | Offerbook | May 21, 2026 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/offerbook-cantina-may-2026.pdf) |
| Guardian | Offerbook | July 31, 2026 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/Offerbook-Guardian-Report-july-2026.pdf) |
### JupUSD
| Auditor | Scope | Date | Report |
| - | - | - | - |
| Offside Labs | JupUSD | December 2025 | [View report](https://jupusd.money/homepage/audits/offsidelabs.pdf) |
| Guardian | JupUSD | December 25, 2025 | [View report](https://jupusd.money/homepage/audits/guardian.pdf) |
| Pashov | JupUSD | December 10–17, 2025 | [View report](https://jupusd.money/homepage/audits/pashov.pdf) |
## More
### DAO
| Auditor | Scope | Date | Report |
| - | - | - | - |
| Offside Labs | Jupiter DAO | March 2024 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/dao-offside.pdf) |
### Lock
| Auditor | Scope | Date | Report |
| - | - | - | - |
| OtterSec | Jupiter Lock | August 15, 2024 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lock-ottersec.pdf) |
| Sec3 | Jupiter Lock | August 5, 2024 | [View report](https://github.com/jup-ag/docs/blob/main/static/files/audits/lock-sec3.pdf) |
## Third-party and shared programs
Some Jupiter features rely on external Solana programs that are audited by their own maintainers, not by Jupiter. They are listed here for completeness, with links to the canonical reports:
* **JupSOL** uses the SPL Stake Pool Program. See [Sanctum's audit reports](https://learn.sanctum.so/docs/technical-documentation/sanctum-lsts#security).
* **Native staking** uses the Solana Foundation Single Pool Program. See [its audit reports](https://github.com/solana-program/single-pool/tree/main?tab=readme-ov-file#security-audits).
# Bridge & Swap
Source: https://docs.jup.ag/user-docs/onramp/deposit/bridges
Bridge & swap moves tokens to Solana from 11 networks, comparing GUM Universal Bridge, GUM Universal Deposit and deBridge routes ranked by delivered amount.
## Overview
Bridge & Swap moves crypto assets from other blockchains to Solana. It is the **Bridge & swap** tab of [jup.ag/deposit](https://jup.ag/deposit), also reachable at [jup.ag/deposit/bridge](https://jup.ag/deposit/bridge). For your token and networks, it compares the available routes from **GUM** (Universal Bridge and Universal Deposit) and **deBridge** side by side, with the estimated delivered amount shown per route. Routes are ranked by that estimate, and the best one is marked with a **Best** badge showing the difference in percent. Routes that cannot fill the transfer are listed as **Unavailable**.
| Detail | Value |
| - | - |
| **Networks** | Solana, Ethereum, Base, Arbitrum, Sui, BNB Chain, Robinhood Chain, Optimism, Polygon, Avalanche, Linea (11 networks) |
| **Tokens** | Any supported token with available liquidity on the source network; depends on the route |
| **Output** | Native Solana-compatible tokens (no wrapped tokens) |
| **Routes compared** | GUM Universal Bridge, GUM Universal Deposit, deBridge |
| **Jupiter fees** | None (each route's own fees are shown in the comparison) |
The former standalone USDC Bridge page (Wormhole + Circle CCTP) has been folded into this page; its old URL redirects here. See [USDC and Circle CCTP](#usdc-and-circle-cctp).
***
## Bridge routes
* **GUM Universal Bridge** (formerly shown as Universal Swap) — bridges a token cross-chain and swaps it into the destination asset in one flow.
* **deBridge** — an intent-based cross-chain interoperability protocol (detailed below).
* **GUM Universal Deposit** — the same mechanism as [Universal Deposit](/user-docs/onramp/deposit/universal-deposit): the tokens are sent to a deposit address and arrive on Solana as USDC. Typically the best route for stablecoin transfers such as USDC to USDC. The same route also covers the outbound direction: USDC from Solana to Ethereum, Base, Arbitrum, Sui, or BNB Chain, with a flat \$0.30 fee.
The routes available for a given transfer depend on the token and the source network. Routes that cannot fill it are listed as **Unavailable**, and if your amount is below a route's minimum the app says so (for example, \$10 per bridge for USDC from Ethereum).
## How deBridge works
deBridge uses a 0-TVL (zero total value locked) architecture. Unlike traditional bridges that rely on liquidity pools where user funds are locked in smart contracts, deBridge uses an intent-based system where external solvers fulfill orders in real time. No user funds are stored in pools that could be targeted by exploits.
This means:
* **No wrapped tokens.** You receive native assets on Solana, not synthetic or wrapped versions.
* **No pooled liquidity risk.** There is no pool of locked funds that could be exploited.
* **Market-dependent rates.** The exchange rate depends on available liquidity at the time of the transaction.
Jupiter does not operate the routes. Each provider handles its own cross-chain logic, routing, and settlement. Jupiter provides the interface and the comparison.
***
## Supported networks
Bridge & Swap lets you pick a source network among the following 11. EVM chains are blockchains compatible with the Ethereum Virtual Machine (such as Ethereum, Polygon, and BNB Chain). L2 (Layer 2) chains are scaling solutions built on top of Ethereum (such as Arbitrum, Optimism, and Base). Not every route is available for every network and token; the comparison only lists routes that can fill your transfer (for example, there is no route between BNB Chain and Robinhood Chain).
| Network | Type |
| - | - |
| Solana | Non-EVM |
| Ethereum | EVM |
| Base | EVM (L2) |
| Arbitrum | EVM (L2) |
| Sui | Non-EVM |
| BNB Chain | EVM |
| Robinhood Chain | EVM (L2) |
| Optimism | EVM (L2) |
| Polygon | EVM |
| Avalanche | EVM |
| Linea | EVM (L2) |
Solana appears as both a source and destination network. Bridging *from* Solana is supported too — Universal Deposit carries USDC out to Ethereum, Base, Arbitrum, Sui, or BNB Chain — although the primary Deposit use case is bridging *to* Solana.
***
## Supported tokens
Routes support a large number of tokens on each source network. The token selector is searchable by **name** or **contract address**, and shows the most common tokens for the selected network first (for example ETH, USDC, and USDT on Ethereum). Available tokens include major assets (ETH, USDC, USDT, WETH, DAI) and smaller tokens (PEPE, SPX6900, and others), depending on available liquidity on the source network.
The tokens you can receive on Solana depend on the route and available liquidity.
***
## How to bridge
Connect your Solana wallet to Jupiter. This is the destination wallet by default.
Go to [jup.ag/deposit/bridge](https://jup.ag/deposit/bridge), or open the **Bridge & swap** tab on the [Deposit page](/user-docs/onramp/deposit).
In the **Sell** section, open the token selector. The **Select origin token** window lists the networks on the left (popular networks first, then all networks) and the tokens for the selected network on the right. Pick the network and token you want to bridge, then enter the amount.
In the **Buy** section, select the token you want to receive on Solana. The estimated output is calculated automatically.
The **Route** list shows the routes that can fill your transfer, with the **Estimate** of what each one delivers. Routes are ranked by that estimate; the best one is selected and marked **Best** with the difference in percent. Select another route if you prefer it.
Before confirming, review the amounts shown for the selected route. For deBridge routes, the widget also displays:
* The **exchange rate** between source and destination tokens
* The **estimated fees** (gas on the source network + protocol fee)
* The **ETA** (estimated time of arrival)
* The **price impact** percentage
Click **Bridge with \[route name]**, then connect the wallet on the source network (for example, MetaMask for Ethereum). This is separate from your Solana wallet.
Confirm the transaction and sign it in your source wallet. The route provider processes the transfer.
***
## Additional features
The deBridge widget includes a **"Trade and Send to Another Address"** option. When enabled, you can enter a different Solana address as the destination instead of your connected wallet. This is useful for bridging on behalf of another wallet.
The widget includes a **settings panel** (gear icon) where you can adjust source chain parameters, including gas fee preferences. A **Routing** section (expandable at the bottom of the widget) shows details about the route deBridge is using for the transaction.
***
## Fees
| Fee type | Charged by | Details |
| - | - | - |
| Gas fee (source network) | Source blockchain network | Required to execute the transaction on the source network. Amount depends on the network and congestion. |
| Route fee | Route provider (GUM or deBridge) | Each route's fee is reflected in its estimated delivered amount in the comparison. |
| Jupiter fee | Jupiter | **None** |
All fees are displayed before you confirm.
***
## Transaction speed
Each route displays an estimated time of arrival (ETA) before you confirm. Actual settlement time depends on source network finality (the point at which a transaction is considered irreversible on the source blockchain) and network conditions.
***
## USDC and Circle CCTP
The former standalone USDC Bridge used Circle's Cross-Chain Transfer Protocol (CCTP), with Wormhole relaying the cross-chain messages. CCTP moves USDC between blockchains through a burn-and-mint process: the USDC is burned (permanently destroyed) on the source chain, Circle attests that the burn occurred, and an equivalent amount of **native USDC** is minted on Solana and delivered to the destination wallet.
This mechanism has three properties:
* **Native USDC.** The USDC received on Solana is issued by Circle, not a wrapped or bridged version.
* **1:1 transfer.** There is no slippage, no exchange rate, and no liquidity pool dependency.
* **Constant supply.** The total USDC supply stays constant across chains (burned on one, minted on another).
The only costs are gas fees on the source chain (for the burn) and on Solana (for the mint). Transfer time depends on the source chain reaching finality, followed by a waiting period for Circle's attestation.
The USDC Bridge page has been retired. For USDC transfers, use Bridge & Swap and compare the routes offered for your networks, or send USDC through [Universal Deposit](/user-docs/onramp/deposit/universal-deposit) from a supported network.
***
## Risks and limitations
**Third-party service.** Each route is operated by its provider (GUM or deBridge). Jupiter provides the interface but does not control the bridging process. For failed or stuck transactions, contact the provider of the route you used.
**Exchange rate variability.** The estimate shown for a route is not final. The delivered amount may differ due to market movement between the quote and execution.
**Gas requirements.** You need sufficient gas tokens on the source network (for example, ETH on Ethereum) to pay for the transaction. Without gas, the transaction will fail.
**Price impact.** Large transfers may have significant price impact. Review the estimated delivered amount carefully for large amounts; deBridge routes also display the impact percentage before confirmation.
**Smart contract risk.** As with any bridge protocol, there is inherent risk associated with the smart contracts involved. Audits reduce but do not eliminate this risk.
**Never send tokens from another network directly to your Solana address.** Use a Bridge & swap route, or a [Universal Deposit](/user-docs/onramp/deposit/universal-deposit) address generated for that specific network. Sending tokens from an Ethereum (ERC-20), BNB Chain (BEP-20), or other non-Solana wallet straight to a Solana address (without going through one of these) will result in **permanent, unrecoverable loss of funds**. Solana uses the SPL token standard, which is not compatible with EVM token standards.
Having issues with Bridge & Swap? See the [Deposit FAQ](/user-docs/onramp/deposit/faq#bridge-and-swap) for troubleshooting and support contacts.
# Buy with a card
Source: https://docs.jup.ag/user-docs/onramp/deposit/buy-crypto
Buy SOL or USDC with a card, Apple Pay, Google Pay, bank transfer, or other local payment methods and receive them in your Solana wallet. Powered by Onramper.
## Overview
Buy with a card lets you purchase **SOL** or **USDC** with fiat currency (such as USD, EUR, or other local currencies) and receive the tokens directly in your connected Solana wallet.
The service is powered by Onramper, a fiat-to-crypto aggregator integrated into the Jupiter interface at [jup.ag/deposit/onramp](https://jup.ag/deposit/onramp). Onramper compares prices across multiple payment processors in real time and routes your purchase to the best available option.
| Detail | Value |
| - | - |
| **Tokens available** | SOL, USDC |
| **Input** | Fiat currency (USD, EUR, and other local currencies) |
| **Provider** | Onramper (fiat-to-crypto aggregator) |
| **Jupiter fees** | None |
| **KYC** | May be required, handled by the payment processor |
***
## How it works
When you initiate a purchase, Onramper compares prices across multiple payment processors (third-party services that handle fiat-to-crypto transactions, such as Revolut, Stripe, Banxa, and Topper) in real time and selects the best option based on:
* Your **region** (country and local regulations)
* The **amount** you want to spend
* Your preferred **payment method**
The selected processor handles the payment, identity verification (if required), and token delivery to your wallet.
**Jupiter does not charge any additional fees.** The fees you see come entirely from the payment processor selected by Onramper.
***
## Supported tokens
| Token | Description |
| - | - |
| **SOL** | Native token of the Solana blockchain. Required for paying transaction fees on Solana. |
| **USDC** | USD-pegged stablecoin issued by Circle, native on Solana. |
***
## Payment methods
The available payment methods depend on your region. Onramper dynamically displays the options available to you.
* Credit Card
* Debit Card
* Apple Pay
* Google Pay
* Revolut Pay
* PayPal
* Skrill
* SEPA Bank Transfer
* SEPA Instant
* Sofort
* Bancontact
* Dutch Instant Bank Transfer
* Open Banking
* Bank (generic)
This list reflects methods observed in the EU region and is not exhaustive. Onramper selects and displays methods based on your location and the processor handling your transaction. Availability varies by country.
***
## Payment processors
Onramper routes transactions to multiple processors. Known processors include **Revolut**, **Stripe**, **Banxa**, and **Topper**, among others.
The processor selected for your transaction depends on your region, payment method, and purchase amount. The processor name is displayed in the interface before you confirm (for example, "By Revolut").
***
## How to buy crypto
Connect your Solana wallet to Jupiter. The purchased tokens will be sent to this wallet.
Go to [jup.ag/deposit/onramp](https://jup.ag/deposit/onramp), or select **Buy with a card** under **More ways to deposit** on the [Deposit page](/user-docs/onramp/deposit).
In the **"You spend"** field, enter the fiat amount and select your local currency from the dropdown (for example, EUR or USD).
In the **"You receive"** field, select either **SOL** or **USDC**.
Onramper searches for the best price. Once ready, you will see:
* The amount of tokens you will receive
* The exchange rate (for example, "1 SOL ≈ 83.05 EUR")
* The processor handling the transaction
Open the payment method selector. Onramper may recommend a method for your region (marked as "Recommended").
Click the buy button. Depending on the processor, you may be redirected to the processor's website or app to complete payment and identity verification.
***
## Fees
| Fee type | Charged by | Details |
| - | - | - |
| Processing fee | Payment processor (Revolut, Banxa, Topper, Stripe, etc.) | Varies by processor, region, and payment method |
| Jupiter fee | Jupiter | **None** |
The total cost, including processor fees, is reflected in the exchange rate and the token amount shown in the **"You receive"** field. Review this amount before confirming.
***
## KYC (Identity verification)
Some payment processors require KYC (Know Your Customer) verification before processing your first purchase. KYC is an identity verification process required by financial regulations and typically involves providing ID documents. This is handled entirely by the processor, not by Jupiter. Requirements vary by processor and region.
***
## Risks and limitations
**Regional availability.** Not all payment methods and processors are available in all countries or regions. If no processor is available for your location, you will not be able to use Buy with a card.
**Processing delays.** Transactions may take time depending on the payment method and the processor. Bank transfers are typically slower than card payments.
**Third-party service.** Buy with a card is operated by Onramper and the underlying payment processors. Jupiter does not control the service. In case of payment issues, delays, or failed transactions, contact the payment processor's support directly.
**Exchange rate fluctuations.** The rate shown at the time of the quote may differ slightly from the final rate at the time the transaction is processed, depending on market conditions and the processor.
Having issues with Buy with a card? See the [Deposit FAQ](/user-docs/onramp/deposit/faq#buy-with-a-card) for troubleshooting and support contacts.
# Deposit FAQ
Source: https://docs.jup.ag/user-docs/onramp/deposit/faq
Frequently asked questions about Jupiter Deposit: Universal Deposit, Bridge & Swap, Buy with a card, and Send from an exchange.
## General
Jupiter offers 4 ways to fund your Solana wallet: use [Universal Deposit](/user-docs/onramp/deposit/universal-deposit), move tokens across networks with [Bridge & Swap](/user-docs/onramp/deposit/bridges), [buy crypto with a card](/user-docs/onramp/deposit/buy-crypto), or [send crypto from a supported exchange](/user-docs/onramp/deposit/send-from-exchange).
Bridge & Swap supports Solana, Ethereum, Base, Arbitrum, Sui, BNB Chain, Robinhood Chain, Optimism, Polygon, Avalanche, and Linea. Universal Deposit supports Solana, Ethereum, Base, Arbitrum, Sui, BNB Chain, and Robinhood Chain.
Yes. Use [Send from an exchange](/user-docs/onramp/deposit/send-from-exchange) to bridge supported tokens onchain from Binance, Coinbase or Uphold to your Jupiter Wallet, or [Buy with a card](/user-docs/onramp/deposit/buy-crypto) to pay with Apple Pay, Google Pay, or your preferred supported payment method.
No. Jupiter does not add fees on top of any Deposit method. The costs you pay are network gas and third-party fees: the slippage shown for Universal Deposit (max 0.5%), the route fee shown in the Bridge & Swap comparison, payment processor fees (Buy with a card), and exchange withdrawal fees (Send from an exchange).
Each method relies on a different provider:
| Method | Provider |
| - | - |
| Universal Deposit | Jupiter interface; cross-chain routing by third-party infrastructure |
| Bridge & Swap | Route providers: GUM (Universal Bridge, Universal Deposit), [deBridge](https://debridge.com/) |
| Buy with a card | [Onramper](https://www.onramper.com/) (aggregates processors like Revolut, Stripe, Banxa, Topper) |
| Send from an exchange | [Mesh](https://www.meshpay.com/) |
Jupiter provides the interface but does not control the underlying services.
It depends on where your funds currently are:
* **Crypto on a supported network, to send to an address:** [Universal Deposit](/user-docs/onramp/deposit/universal-deposit)
* **Tokens on another blockchain, when you want to choose what you receive:** [Bridge & Swap](/user-docs/onramp/deposit/bridges)
* **Fiat currency (bank, card):** [Buy with a card](/user-docs/onramp/deposit/buy-crypto)
* **Crypto on Binance, Coinbase, or Uphold:** [Send from an exchange](/user-docs/onramp/deposit/send-from-exchange)
Yes. All Deposit methods require a Solana wallet connected to Jupiter. If you do not have one, you can create one through [Jupiter Mobile or the Wallet extension](/user-docs/global/mobile/managing-wallets#creating-a-wallet).
No. Jupiter Deposit is designed for moving funds **onto** Solana, not off it. There is no native fiat off-ramp (crypto-to-bank withdrawal) in Deposit.
If you want to spend or access your funds in fiat, you have two options:
* **Spend directly in fiat:** Use [Jupiter Spend](/user-docs/global/spend) and the Jupiter Card (Visa) to spend your USDC balance at any merchant accepting Visa. Jupiter Spend also supports bank withdrawals and fiat transfers in supported regions.
* **Cash out to a bank account:** Transfer your tokens to a centralized exchange (such as Binance or Coinbase) using the exchange's deposit address, then sell to fiat and withdraw to your bank account. This process happens entirely on the exchange, not on Jupiter.
***
## Universal Deposit
Deposits below the displayed minimum accumulate until the minimum is reached. Check the minimum amount shown for the selected network before sending funds.
Funds sent on Solana arrive as the token you sent. Funds sent from any other network arrive in your Solana wallet as **USDC**.
In the **Deposit crypto** tab of [jup.ag/deposit](https://jup.ag/deposit), select the network you are sending from: the QR code and address shown are for that network. The same network-specific addresses are available from the Receive view in [Jupiter Mobile](/user-docs/global/mobile/funding-and-sending#depositing-funds) and the [Jupiter Wallet extension](/user-docs/manage/extension-wallet/sending-and-receiving#receiving-from-other-networks).
***
## Buy with a card
Payment and identity verification are handled by the payment processor (Revolut, Banxa, Topper, Stripe, etc.), not by Jupiter. Contact the processor directly. The processor name is displayed in the interface during the purchase flow (for example, "By Revolut").
Processing times vary by payment method and processor. Bank transfers may take several hours. If tokens have not arrived after a reasonable period, contact the payment processor's support. Transaction status is usually available in the processor's confirmation email or portal.
Onramper dynamically selects payment methods based on your region, the amount you are purchasing, and the available processors. Not all methods are available in all countries. If you do not see a specific method, it is likely not supported in your location.
No. Buy with a card currently supports only **SOL** and **USDC**. To acquire other Solana tokens, first purchase SOL or USDC, then use [Jupiter Swap](/user-docs/trade/spot/index) to exchange them.
***
## Send from an exchange
Contact [Mesh support](https://www.meshpay.com/). Jupiter does not have access to your exchange credentials and cannot troubleshoot exchange login issues. Make sure pop-ups are allowed in your browser, as the exchange-link flow opens in a separate window.
Contact your exchange's support ([Binance](https://www.binance.com/en/support), [Coinbase](https://help.coinbase.com/), or Uphold). Withdrawal processing times are determined by the exchange and are outside of Jupiter's and Mesh's control.
This is a common and serious issue. If you sent crypto using a non-Solana standard such as **BEP-20** (BNB Chain), **ERC-20** (Ethereum), or any other non-Solana network when withdrawing from an exchange to a Solana address, the funds are typically **not recoverable**.
**Why it happens:** Solana uses the SPL token standard, which is not compatible with EVM-based standards like ERC-20 or BEP-20. Even if the destination address looks valid on the exchange's interface, the tokens cannot be received on Solana if sent on the wrong network.
**What to do:** Contact your exchange's support immediately with your transaction hash. Some exchanges may be able to recover funds in specific cases (typically for a fee), but this is not guaranteed and depends on the exchange's internal procedures. Jupiter cannot recover funds sent on the wrong network.
**How to prevent this:** When withdrawing from an exchange to a Solana wallet, always select **Solana (SPL)** as the network, never ERC-20, BEP-20, or any other option.
Mesh establishes a secure, temporary connection to your exchange account through an exchange-link window. It handles authentication within the session and does not store your login credentials. The connection is used only to initiate the withdrawal.
No. Send from an exchange currently supports only **Binance**, **Coinbase**, and **Uphold**. If you hold funds on another exchange, you can withdraw manually to your Solana wallet address using the exchange's own withdrawal feature, or use the **Standard deposit** option to display your address.
***
## Bridge and Swap
The comparison lists **GUM Universal Bridge**, **GUM Universal Deposit** (the same mechanism as Universal Deposit, arriving as USDC), and **deBridge**. Routes that cannot fill your transfer are shown as Unavailable. See [Bridge routes](/user-docs/onramp/deposit/bridges#bridge-routes).
Routes are ranked by their estimated delivered amount. The route with the highest estimate is selected by default and marked **Best**, with the difference in percent compared to the next route. You can select another route before continuing.
Contact the provider of the route you used. For deBridge routes, use the **Support** link at the bottom of the widget. Provide your transaction hash from the source network so they can investigate.
The estimate shown for a route is market-dependent and may shift between the quote and execution. Large transactions may also incur higher price impact. Review the estimated delivered amount before you confirm; deBridge routes also display the impact percentage.
Yes. You need sufficient gas tokens on the source network (for example, ETH on Ethereum, BNB on BNB Chain) to pay for the source-network transaction. Without gas, the transaction will not execute.
Some routes support Solana as a source network, allowing transfers from Solana to other supported networks, although the primary Deposit use case is bridging *to* Solana. The comparison only lists routes that can fill the transfer you set up.
The standalone USDC Bridge page has been retired and its URL redirects to Bridge & Swap. For USDC, compare the routes offered for your networks, or use Universal Deposit from a supported network. See [USDC and Circle CCTP](/user-docs/onramp/deposit/bridges#usdc-and-circle-cctp) for how that mechanism worked.
***
## Troubleshooting
Contact [Jupiter Support](https://support.jup.ag) for interface-related issues. This applies to all Deposit methods.
Take a screenshot of the error and contact the relevant provider's support (see the table in "Who operates these services?" above). For general Jupiter UI errors, contact [Jupiter Support](https://support.jup.ag).
# Deposit Overview
Source: https://docs.jup.ag/user-docs/onramp/deposit/index
Get your funds onto Solana through Jupiter Deposit: deposit crypto from supported networks, bridge and swap, buy with a card, or send from an exchange.
Jupiter Deposit is the set of tools at [jup.ag/deposit](https://jup.ag/deposit) for moving funds onto the Solana blockchain. Whether you hold crypto on another network, on a centralized exchange (CEX), or only have fiat currency, Deposit provides a path to get it into your Solana wallet. Deposit was previously named Onboard; links to the old documentation pages redirect here.
Jupiter does not add fees on top of the Deposit methods. Third-party provider fees, network gas and, for Universal Deposit, the minimum amount, maximum slippage, and estimated processing time are shown per network before you deposit.
***
## Choose a deposit method
**Have crypto on Solana, Ethereum, Base, Arbitrum, Sui, BNB Chain, or Robinhood Chain**
Pick a network, send to the address shown, and receive the funds in your Solana wallet. Cross-chain deposits arrive as USDC. No source wallet to connect.
**Have tokens on another blockchain**
Compare the available routes across 11 networks, ranked by estimated delivered amount, and choose the one to execute.
Routes from GUM Universal Bridge, GUM Universal Deposit, and deBridge
**Starting from fiat currency (USD, EUR, etc.)**
Purchase SOL or USDC with a card, Apple Pay, Google Pay, bank transfer, and other local payment methods.
Powered by Onramper
**Have crypto on Binance, Coinbase, or Uphold**
Connect your exchange account and send crypto directly to your Solana wallet, or send it yourself to your wallet address.
Powered by Mesh
***
## Which method should I use?
| Your situation | Recommended method | Why |
| - | - | - |
| You have crypto on Solana, Ethereum, Base, Arbitrum, Sui, BNB Chain, or Robinhood Chain and want to send to an address without connecting a source wallet | [Universal Deposit](/user-docs/onramp/deposit/universal-deposit) | A network-specific address and QR code; cross-chain deposits arrive as USDC |
| You have tokens (ETH, BNB, USDC, USDT, etc.) on another chain and want to choose what you receive | [Bridge & Swap](/user-docs/onramp/deposit/bridges) | Compares the available routes side by side, with estimated output and fees, before you choose |
| You have fiat currency (bank account, card) and no crypto | [Buy with a card](/user-docs/onramp/deposit/buy-crypto) | Converts fiat directly to SOL or USDC on Solana |
| You have crypto on Binance, Coinbase, or Uphold | [Send from an exchange](/user-docs/onramp/deposit/send-from-exchange) | Sends crypto from your exchange account to your Solana wallet |
***
## Prerequisites
All Deposit methods require a **Solana wallet** connected to Jupiter. If you do not have one yet, you can create one through [Jupiter Mobile](/user-docs/global/mobile) or the [Jupiter Wallet browser extension](/user-docs/manage/extension-wallet).
Set up a Solana wallet to get started on Jupiter.
Have questions? Check the [Deposit FAQ](/user-docs/onramp/deposit/faq) for answers about fees, providers, troubleshooting, and more.
# Send from an exchange
Source: https://docs.jup.ag/user-docs/onramp/deposit/send-from-exchange
Send crypto from Binance, Coinbase or Uphold to your Solana wallet through Mesh (Secure deposit), or send it yourself to your address (Standard deposit).
## Overview
Send from an exchange lets you move crypto from a centralized exchange (CEX) to your connected Solana wallet. A centralized exchange is a platform like Binance, Coinbase, or Uphold where you can buy, sell, and hold crypto, and the exchange holds custody of your funds until you withdraw them.
The tool is powered by Mesh, a secure connectivity provider that establishes authenticated connections between Jupiter and your exchange account to initiate withdrawals. It is available at [jup.ag/deposit/cex](https://jup.ag/deposit/cex).
| Detail | Value |
| - | - |
| **Supported exchanges** | Binance, Coinbase, Uphold |
| **Provider** | Mesh |
| **Jupiter fees** | None |
| **Mesh fees** | None |
***
## Supported exchanges
| Exchange | Login method |
| - | - |
| **Binance** | QR code scan via the Binance app, or login with Email/Phone |
| **Coinbase** | Login through the exchange-link window |
| **Uphold** | Redirects to Uphold's website, where you log in and authorize the Mesh connection |
***
## How it works
Send from an exchange offers two paths, shown in the Mesh window as **Secure deposit** (recommended) and **Standard deposit**.
You connect your exchange account through Mesh, and Mesh initiates the withdrawal to your connected Solana wallet. Mesh describes this option as "Deposit from your exchange or wallet".
Connect your Solana wallet to Jupiter. The Mesh window shows the connected wallet's shortened address at the top.
Go to [jup.ag/deposit/cex](https://jup.ag/deposit/cex), or select **Send from an exchange** under **More ways to deposit** on the [Deposit page](/user-docs/onramp/deposit). The Mesh window opens with the title **Fund your account**.
Select **Secure deposit**, then pick your exchange (**Binance**, **Coinbase**, or **Uphold**) and log in.
**Binance:** Scan the QR code with the Binance app, or select "Login with Email/Phone."
**Coinbase:** Log in through the exchange-link window.
**Uphold:** You are redirected to Uphold's website. Log in, review the **Authorize application** screen listing what Mesh can access, and select **Authorize** to return to the flow.
Follow the exchange's prompts to authorize the withdrawal. The destination wallet shown in the exchange flow should match the wallet you connected on the Jupiter page. Complete any required confirmation steps (such as two-factor authentication).
If you prefer not to connect your exchange account, choose **Standard deposit** ("Deposit with a wallet address"). Mesh displays your wallet information so you can complete the withdrawal yourself from your exchange.
The screen shows:
* **Token:** The token to send (for example, SOL)
* **Network:** The network to use (Solana)
* **QR code:** Scannable QR code of your wallet address
* **Wallet address:** Your Solana address, with a copy button
Copy the wallet address displayed on screen, or scan the QR code from your exchange app.
Log in to your exchange directly (outside of Jupiter).
In your exchange's withdrawal or send section:
1. Paste your Solana wallet address as the destination
2. Select the correct **token** (for example, SOL)
3. Select the **Solana network**
4. Confirm the withdrawal
**Critical: verify the token and network before confirming.**
Only send the correct token on the **Solana network** (SPL token standard) to this address. Sending a different asset, or selecting a different network such as **Ethereum (ERC-20)**, **BNB Chain (BEP-20)**, or any other non-Solana network, will result in **permanent, unrecoverable loss of funds**.
Solana addresses look like base58 strings (for example, `cRXuEC...j65vs2`) and are not compatible with Ethereum-style addresses starting with `0x`. If your exchange asks you to choose between Solana, ERC-20, BEP-20, or another network, always select **Solana**.
***
## Fees
| Fee type | Charged by | Details |
| - | - | - |
| Withdrawal fee | The exchange | Each exchange sets its own withdrawal fee. Check the exchange's fee schedule. |
| Mesh fee | Mesh | **None** |
| Jupiter fee | Jupiter | **None** |
***
## Risks and limitations
**Wrong network or token (Standard deposit).** If you send the funds yourself and select the wrong network or token on the exchange side, the funds will be permanently lost. Always double-check that you are sending the correct token on the **Solana network** (SPL token standard). Do not select **ERC-20** (Ethereum), **BEP-20** (BNB Chain), or any other non-Solana network when withdrawing to a Solana address.
**Exchange restrictions.** Withdrawals may be subject to limits, delays, or regional restrictions imposed by the exchange. These are outside of Jupiter's control.
**Two-factor authentication.** Most exchanges require 2FA for withdrawals. Ensure you have access to your 2FA method before initiating the transfer.
**Third-party service.** The connection is operated by Mesh. Jupiter does not have access to your exchange credentials. Mesh handles authentication within the exchange-link window and does not store your login information.
**Processing time.** Withdrawal processing depends on the exchange. Some withdrawals are instant; others may take minutes or longer, depending on the exchange's internal processing and network congestion.
Having issues with Send from an exchange? See the [Deposit FAQ](/user-docs/onramp/deposit/faq#send-from-an-exchange) for troubleshooting and support contacts.
# Universal Deposit
Source: https://docs.jup.ag/user-docs/onramp/deposit/universal-deposit
Deposit crypto to your Solana wallet from Ethereum, Base, Arbitrum, Sui, BNB Chain or Robinhood Chain; cross-chain deposits arrive as USDC.
## Overview
Universal Deposit is the **Deposit crypto** tab of [jup.ag/deposit](https://jup.ag/deposit). You pick the token and the network you are sending from, and the app shows a QR code and a deposit address for that network, with the minimum deposit, the maximum slippage, and the estimated processing time. Send funds to it from any wallet or exchange on that network, and they arrive in your Solana wallet. There is no source wallet to connect and no route to choose.
| Detail | Value |
| - | - |
| **Networks** | Solana, Ethereum, Base, Arbitrum, Sui, BNB Chain, Robinhood Chain |
| **What you receive** | From Solana: the token you sent. From any other network: **USDC** on Solana |
| **Source** | Any wallet or exchange on the selected network |
| **Minimum deposit** | Shown per network in the app (currently $10 on Ethereum and $3 on every other network); smaller deposits accumulate until the minimum is reached |
| **Max slippage** | 0.5%, shown in the app |
| **Estimated processing time** | Shown in the app (currently about 2 minutes from Ethereum, under 20 seconds from every other network) |
| **Also available in** | The Receive view of the [Jupiter Wallet extension](/user-docs/manage/extension-wallet/sending-and-receiving#receiving-from-other-networks) (same networks) and of [Jupiter Mobile](/user-docs/global/mobile/funding-and-sending#depositing-funds) (Solana, Base, Arbitrum, Sui) |
***
## How it works
Each network in the selector has a deposit address tied to your connected Solana wallet. One `0x` address is shared across the EVM networks (Ethereum, Base, Arbitrum, BNB Chain, Robinhood Chain); Solana and Sui each have their own. The address for a network does not change when you reload the page, so you can save it and reuse it. When you send funds to the address shown for a non-Solana network, they are routed to Solana and delivered to your wallet as USDC. Funds sent on Solana itself arrive as the token you sent.
Deposits are processed once they reach the minimum amount displayed for that network. Below that amount, funds accumulate until the minimum is reached.
The same mechanism appears in the [Bridge & swap](/user-docs/onramp/deposit/bridges#bridge-routes) tab as the **GUM Universal Deposit** route, compared against the other routes for your transfer.
***
## Supported networks
| Network | Type | Preselected token | Arrives on Solana as |
| - | - | - | - |
| Solana | Non-EVM | USDC | The token you sent |
| Ethereum | EVM | USDC | USDC |
| Base | EVM (L2) | USDC | USDC |
| Arbitrum | EVM (L2) | USDC | USDC |
| Sui | Non-EVM | USDC | USDC |
| BNB Chain | EVM | USDT (Binance-Peg) | USDC |
| Robinhood Chain | EVM (L2) | USDG | USDC |
The **Tokens** selector opens on the preselected token for that network and lists the other tokens it accepts; anything you send above the minimum is swapped to USDC on Solana. For routes across more networks, or to choose the token you receive, use [Bridge & Swap](/user-docs/onramp/deposit/bridges).
***
## How to deposit
Connect your Solana wallet to Jupiter. Deposit addresses are only displayed for a connected wallet.
Go to [jup.ag/deposit](https://jup.ag/deposit). The **Deposit crypto** tab is selected by default.
Open the **Tokens** selector and pick the token you are sending, then the **Chains** selector and pick the network your funds are on. The QR code, address, minimum, and estimated processing time update for that network.
Click **Copy address**, or scan the QR code from the wallet or exchange app you are sending from.
In your wallet or exchange, send the funds to that address **on the network you selected**. Check the minimum amount displayed before sending.
Once processed, the funds appear in your Solana wallet: the same token if sent on Solana, USDC if sent from another network.
***
## Minimum deposits
Deposits below the displayed minimum accumulate until the minimum is reached. Check the minimum amount shown for the selected network before sending funds. At the time of writing, the minimum is $10 on Ethereum and $3 on every other network; the value shown in the app prevails.
***
## Fees
| Fee type | Charged by | Details |
| - | - | - |
| Gas fee (source network) | Source blockchain network | Paid by the sending wallet or exchange to broadcast the transfer. |
| Conversion slippage | Route | The app shows a **Max slippage** of 0.5% for the conversion to USDC on Solana. No separate deposit fee line is displayed. |
***
## Sending out of Solana (outbound)
Universal Deposit also works in the outbound direction, as one of the routes in [Bridge & Swap](/user-docs/onramp/deposit/bridges): you can send **USDC from Solana** to Ethereum, Base, Arbitrum, Sui, or BNB Chain. Robinhood Chain is deposit-only. The destination address on the target network is validated live before the transfer loads, and the route carries a **flat \$0.30 fee**. Pick the Solana-to-network direction in Bridge & Swap and choose the Universal Deposit route when it appears in the comparison.
## Universal Deposit or Bridge & Swap?
| | Universal Deposit | Bridge & Swap |
| - | - | - |
| **Connect a source wallet** | No, send to an address | Yes, on the source network |
| **Choose the token you receive** | No, USDC for cross-chain deposits | Yes |
| **Networks** | 7 | 11 |
| **Route comparison** | No | Yes, ranked by estimated delivered amount |
| **Best for** | Sending from an exchange or another wallet without connecting it | Moving a specific token, or swapping while bridging |
See [Bridge & Swap](/user-docs/onramp/deposit/bridges) for the route comparison.
***
## Risks and limitations
**Match the network.** Only send funds on the network the address was displayed for. Sending on a different network than the one selected can result in loss of funds.
**Cross-chain deposits arrive as USDC.** Funds sent from any network other than Solana are delivered as USDC on Solana, not as the token you sent.
**Minimum amount.** Deposits below the displayed minimum are held until the total reaches the minimum for that network.
**Supported tokens only.** Each network accepts a specific set of tokens, shown in the app when you select it. Sending an unsupported token may result in loss of funds.
**Processing time.** Delivery depends on the source network's confirmation time and on the deposit being processed.
Having issues with Universal Deposit? See the [Deposit FAQ](/user-docs/onramp/deposit/faq#universal-deposit) for troubleshooting and support contacts.
# Jupiter Send FAQ
Source: https://docs.jup.ag/user-docs/onramp/send/faq
Frequently asked questions about Jupiter Send, Magic Links, Gasless Send, and token transfers.
Common questions about Jupiter Send. For detailed guides, see the [Jupiter Send overview](/user-docs/onramp/send) and the [Magic Links](/user-docs/onramp/send/magic-links) page.
## General
Jupiter Send is a feature on [jup.ag/send](https://jup.ag/send) that lets you send tokens on Solana. You can send directly to a wallet address or create a Magic Link that anyone can claim, even without an existing wallet.
No. Jupiter does not charge any protocol fee for Send. The only cost is the standard Solana network transaction fee. If you use Gasless Send, a small portion of the tokens you're sending is swapped to cover that fee instead of paying in SOL.
No. Jupiter Send only works on the Solana blockchain. Sending tokens from or to another blockchain (Ethereum, Arbitrum, etc.) is not supported and may result in permanent loss of funds.
## Gasless Send
Gasless Send lets you send tokens without needing SOL in your wallet to cover transaction fees. Instead, a small portion of the tokens you're sending is swapped to cover the Solana network fee.
All tokens on the [Jupiter Verified Token List](/user-docs/launch/vrfd/token-verification) are eligible for Gasless Send. Unverified tokens are not supported.
The Solana network fee is the same. The difference is how it's paid: instead of SOL from your wallet, a small amount of the token you're sending is swapped to cover it. The recipient receives slightly less than the entered amount as a result.
## Magic Links
A Magic Link is a shareable link (or QR code) that holds tokens until someone claims them. It's useful when the recipient doesn't have a wallet yet or when you don't know their address. See the [Magic Links](/user-docs/onramp/send/magic-links) page for full details.
Yes. Anyone who has the link can claim the tokens. Treat it like cash and only share it with the intended recipient.
Yes. An unclaimed Magic Link expires 7 calendar days after creation. The tokens are then returned automatically to the wallet that created it.
Yes, as long as it hasn't been claimed yet. Go to [jup.ag/send](https://jup.ag/send), connect your wallet, and click the 🗑️ icon next to the active link. Tokens are returned to the creator's wallet.
At [jup.ag/send](https://jup.ag/send), connect your wallet and check the **Active** and **Past** tabs below the send widget.
This can happen if your Associated Token Account (ATA) for that token was closed or doesn't exist. An ATA is a dedicated account tied to your wallet for one specific token type. If it's missing, the return transaction can fail silently. Open a ticket at [support.jup.ag](https://support.jup.ag) for help.
## Receiving Tokens
Go to [jup.ag/send](https://jup.ag/send), open the **Receive** tab, and share the displayed QR code or wallet address with the sender.
If someone sends to your wallet address and you already have an ATA for that token, the tokens appear in your wallet once the transaction confirms on-chain. For Magic Links, you need to open the link and claim the tokens.
# Jupiter Send Overview
Source: https://docs.jup.ag/user-docs/onramp/send/index
Send tokens to any Solana wallet or via Magic Link, even to users without a wallet.
Jupiter Send lets you send tokens on Solana to anyone. You can send directly to a wallet address, or generate a **Magic Link** that anyone can use to claim tokens, even if they don't have a wallet yet.
Jupiter Send is available at [jup.ag/send](https://jup.ag/send).
## Send Methods
Jupiter Send supports two ways to send tokens:
Generate a shareable link or QR code. The recipient claims the tokens by opening the link. No wallet required on their end at the time of sending.
Send tokens directly to a recipient's Solana wallet address. The recipient must already have a wallet.
## Receiving Tokens
To receive tokens through Jupiter Send:
Go to [jup.ag/send](https://jup.ag/send) and select the **Receive** tab.
You'll see a QR code and your wallet address. Share either with the sender.
Jupiter Send only works on the **Solana blockchain**. Tokens sent from other blockchains (Ethereum, Arbitrum, etc.) to a Solana address cannot be recovered.
## Gasless Send
Gasless Send allows you to send tokens even if you have no SOL in your wallet to pay for transaction fees.
Instead of paying gas in SOL, a small portion of the tokens you're sending is swapped to cover the Solana transaction fee. This means the recipient receives slightly less than the amount you enter.
Gasless Send is available for all tokens on the [Jupiter Verified Token List](/user-docs/launch/vrfd/token-verification). Unverified tokens are not eligible.
## Fees
Jupiter does not charge any protocol fee for using Jupiter Send.
The only cost is the standard Solana network transaction fee (typically fractions of a cent), paid in SOL. If you use Gasless Send, this fee is covered by swapping a small portion of the tokens you're sending instead.
## Risks and Limitations
Jupiter Send operates exclusively on Solana. Sending tokens from another blockchain to a Solana address will result in permanent loss of funds.
Anyone with access to a Magic Link can claim the tokens. There is no password or recipient restriction.
Treat Magic Links like cash. If someone else opens the link before the intended recipient, the tokens go to them and cannot be recovered.
To hold a specific token on Solana, a wallet needs an Associated Token Account (ATA) for that token. An ATA is a dedicated account tied to your wallet for one specific token type.
If the recipient's wallet doesn't have an ATA for the token being sent, one must be created, which costs a small amount of SOL (called rent).
Standard Solana transaction size limits apply.
## Related Pages
* [Magic Links](/user-docs/onramp/send/magic-links) — Send tokens via a shareable link or QR code. Recipients can claim tokens even without an existing wallet
* [Jupiter Send FAQ](/user-docs/onramp/send/faq) — Frequently asked questions about Send, Magic Links, Gasless Send, and transfers
# Magic Links
Source: https://docs.jup.ag/user-docs/onramp/send/magic-links
Send tokens via a shareable link or QR code. Recipients can claim tokens even without an existing wallet.
A Magic Link is a shareable link (or QR code) that holds tokens until a recipient claims them. It's designed for cases where the recipient doesn't have a Solana wallet yet, or when you want to send tokens without needing their address.
## Creating a Magic Link
Go to [jup.ag/send](https://jup.ag/send) and select the **Send** tab, then the **Magic Link** option.
Connect the wallet you want to send tokens from.
Select the token and enter the amount you want to send.
Click **Create Magic Link**. A link and QR code will be generated.
Send the link or QR code to the recipient through any channel (message, email, etc.).
Anyone who has the link can claim the tokens. Do not share it publicly or with unintended recipients.
## Claiming a Magic Link
When a recipient opens a Magic Link, they can claim the tokens to their Solana wallet.
## Managing Magic Links
You can view and manage your Magic Links at [jup.ag/send](https://jup.ag/send) after connecting your wallet.
Shows all unclaimed Magic Links that are still valid (not expired, not cancelled). From here you can cancel a link to recover your tokens.
Shows all Magic Links that have been claimed, cancelled, or expired.
## Cancelling a Magic Link
You can cancel any unclaimed Magic Link to recover your tokens.
Go to [jup.ag/send](https://jup.ag/send) and connect your wallet.
Go to the **Active** section under the send widget.
Click the 🗑️ icon next to the link you want to cancel.
Once cancelled, the tokens are returned to the wallet that created the link.
You can only cancel a Magic Link that has not been claimed yet. Once claimed, the tokens belong to the recipient.
## Expiration
Magic Links that are not claimed expire automatically **7 calendar days** after creation. When a link expires, the tokens are returned to the creator's wallet.
You don't need to do anything to trigger the refund. Expiration and fund return are handled automatically.
## Troubleshooting
Tokens should return automatically when a link expires. If they haven't appeared in your wallet, the issue may be related to your Associated Token Account (ATA) for that token.
An ATA is a dedicated account tied to your wallet for one specific token type. If it was closed or doesn't exist, the return transaction can fail silently.
Open a ticket at [support.jup.ag](https://support.jup.ag) so the team can investigate.
# Collection
Source: https://docs.jup.ag/user-docs/trade/gacha/collection
Your Jupiter Gacha Collection: the items you own from both providers, your pull activity, and shipping status. Includes the card detail page and what insured value means.
The Collection page groups everything you own and everything you have done in Jupiter Gacha. It has three tabs: Items, Activity, and Shipping.
## Items tab
The Items tab lists every item you currently own, from Collector Crypt and Phygitals packs alike: cards, and watches on watch pack pulls. Each item shows its image, its grade when it is graded, and its value. You can:
* Search by card name or set
* Filter, including a "Buyback only" filter that shows cards still carrying a live instant buyback offer: Collector Crypt cards within their 3-day window, Phygitals cards with a quoted offer
* Sort, for example by value from high to low
The Collection Highlights section surfaces your most notable items. When a battlepass campaign is live, the Next free pack widget also tracks your progress toward your next free pack (see [Rewards](/user-docs/trade/gacha/rewards)); it is hidden between campaigns.
## Activity tab
The Activity tab shows recent pulls with a You / Platform toggle:
* **You**: your own pack openings, with the rarity, source pack, value, and timestamp of each pull.
* **Platform**: recent pulls across all Jupiter Gacha users.
Pulls from both providers are listed. Each Collector Crypt opening includes a Verify action that shows the [verifiable randomness](/user-docs/trade/gacha/verifiable-randomness) details for that draw. Phygitals openings have no Verify action: their fairness proof is a commit-reveal scheme documented by Phygitals rather than an on-chain transaction.
## Shipping tab
The Shipping tab tracks Collector Crypt cards you redeem to ship home: status, estimated delivery, and tracking link for each shipment. It also holds the Ship home action. Before shipments can load, you verify your wallet by signing a message with Collector Crypt. The signature is a read-only verification: no transaction is sent and no fee is charged. Phygitals cards cannot be shipped from Jupiter Gacha: they are redeemed through Phygitals directly. See [Shipping](/user-docs/trade/gacha/shipping) for both flows.
## The card detail page
Every card has a detail page. A Collector Crypt card shows the four sections below. A Phygitals card shows Grading (when the card is graded), Metadata, and Contract info; it has no Vault details section, and its Est. value is Phygitals' fair market value estimate rather than a Collector Crypt insured value. See [Providers](/user-docs/trade/gacha/providers#phygitals-cards-in-your-collection).
### Grading
| Field | Meaning |
| - | - |
| Grading company | The company that graded the physical card, for example PSA or CGC |
| Grading ID | The certificate number issued by the grading company, verifiable on the grader's own website |
| Grade | The condition grade of the card, for example MINT 9 or GEM-MT 10 |
| Authenticated | Confirmation that the slab has been authenticated |
| Est. value | The card's reference value, labelled Est. value on the card page and explained below |
### Metadata
Set, card name, description, Gemrate grade and ID, parallel, set URL, and spec ID. Gemrate is an independent aggregator of grading data.
### Contract info
The token ID representing the card, and the blockchain it lives on (Solana). This is the on-chain representation of your ownership. It is also what you transfer if you [send the card to another wallet](/user-docs/trade/gacha/gifting#sending-a-card-to-another-wallet).
### Vault details
The vault holding the physical slab, its vault ID, and its location where available. Cards are stored with different professional vaulting partners depending on the card, for example PSA Vault or OmniVault. The Vault details section tells you exactly where a specific card is held.
## Insured value
The card detail page labels a card's value **Est. value**. Elsewhere in the app, for example on the reveal and in the marketplace filters, the same figure is called the insured value.
On a Collector Crypt card, the insured value is a reference value assigned by Collector Crypt at its discretion. It serves one purpose: it is the basis on which the [instant buyback](/user-docs/trade/gacha/instant-buyback) amount is calculated.
On a Phygitals card, the figure is Phygitals' fair market value estimate for the card, which is the basis of the buyback offer Phygitals quotes on the card. Phygitals states that cards in its vault custody are insured through its vault partners against loss, theft, and damage; that cover is separate from the value displayed.
Despite the name, the insured value of a Collector Crypt card is not an insurance policy. It does not provide coverage for loss, theft, or damage. It is also not a market price: marketplace sellers set their asking prices freely, and a card's market price can be above or below its insured value.
# FAQ and Troubleshooting
Source: https://docs.jup.ag/user-docs/trade/gacha/faq
Common questions and issues in Jupiter Gacha: pack opening errors, the two providers, insured value vs market price, buyback windows, Turbo mode, card custody, authenticity, sending a card to a friend, and shipping.
## Access and payment
Yes. Open [jup.ag/gacha](https://jup.ag/gacha) in the Jupiter Mobile in-app browser to use Gacha on mobile.
Pack prices, buybacks, and marketplace sales are denominated in USDC because it is the most widely held stablecoin.
The app does not name the provider. The Pokemon packs from Silver to Immortal, the Watch packs, and the One Piece Straw Hat, Emperor, and Gorosei packs come from Collector Crypt. The Sport packs, the Pokemon Trainer pack, the Riftbound packs, and the One Piece Throne pack come from Phygitals, so a category can mix the two. On a pack page, a Phygitals pack shows a 7-day buyback window and no Turbo toggle, a Collector Crypt pack a 3-day window. See [Providers](/user-docs/trade/gacha/providers) for everything that differs.
This message comes from Phygitals: purchases and buybacks on its packs follow its [restricted jurisdictions policy](https://docs.phygitals.com/user-agreements/restricted-jurisdictions). Collector Crypt packs are not affected by that policy. See [Geographic restrictions](/user-docs/trade/gacha/providers#geographic-restrictions).
## Opening packs
Pack opening fails for one of these reasons, in order of likelihood:
1. **Not enough USDC.** Your wallet must hold at least the pack price multiplied by the quantity selected. If you are short, the app offers to swap the missing amount from your highest-balance token (it must be worth about 5% more than the shortfall). The Open pack button shows "Insufficient USDC" when no balance can cover it.
2. **No SOL for network fees.** Every opening is a Solana transaction and requires a small amount of SOL, separate from the USDC pack price.
3. **The machine is temporarily disabled or sold out.** A Collector Crypt machine that runs too low on higher rarity cards is disabled until Collector Crypt restocks it. A Phygitals pack out of stock shows "Sold out" until Phygitals restocks it. Try again later or open a different pack tier.
Check your USDC and SOL balances first, then retry.
Refresh the page. The interface can lag a few moments behind the on-chain state after an opening. Your pull is recorded on-chain the moment the transaction confirms; only the display is delayed. If the card is still missing after refreshing and a few minutes, [contact support](https://support.jup.ag/).
On a [Phygitals pack](/user-docs/trade/gacha/providers#which-packs-come-from-which-provider), Phygitals settles the opening on its side after you approve the transaction, and the app waits for its answer. The reveal usually arrives within seconds. If Phygitals reports the opening as failed, the app tells you so and the payment is refunded. If Phygitals holds the opening for review, it stays pending until Phygitals reconciles it. If the reveal does not arrive at all, check your Collection before opening again, since the card may already be there. Collector Crypt packs reveal as soon as the transaction confirms.
Turbo mode exists on Collector Crypt packs only. The Sport packs, the Pokemon Trainer pack, the Riftbound packs, and the One Piece Throne pack come from Phygitals, which has no Turbo mode. See [Turbo mode](/user-docs/trade/gacha/opening-packs#turbo-mode).
Turbo mode becomes mandatory on a machine that runs too low on common cards, until Collector Crypt restocks it. While Turbo is forced, every Common pull is automatically sold back for USDC at the machine's buyback rate, and the app shows a notice on every opening so you are aware before you spin. The displayed odds are not affected. See [Turbo mode](/user-docs/trade/gacha/opening-packs#turbo-mode).
No. The odds per rarity tier are fixed and guaranteed regardless of how many cards remain in the machine pool. What changes with the pool contents is which specific cards can be drawn within each tier, and the pack's expected value.
## Value and buyback
The card page labels a card's value Est. value. On a Collector Crypt card, that is the insured value, a reference value assigned by Collector Crypt and used to calculate the instant buyback amount. It is not an insurance policy and not a market price. On the marketplace, sellers set asking prices freely, so a card can trade above or below its insured value. On a Phygitals card, the value shown is Phygitals' fair market value estimate, which is the basis of its buyback offer. See [Insured value](/user-docs/trade/gacha/collection#insured-value).
The window is set by the pack's provider: 3 days from the pull on Collector Crypt packs, 7 days on [Phygitals packs](/user-docs/trade/gacha/providers#which-packs-come-from-which-provider). The rate is set per pack as well and displayed in the Instant buyback panel. See [Instant Buyback](/user-docs/trade/gacha/instant-buyback#window-and-rate-by-provider).
Phygitals quotes the buyback as an offer on the card, and a quote can expire before the 7-day window ends. When that happens, the app hides the offer until Phygitals issues a new one: refresh the page. If the card is past 7 days from the pull, the buyback has expired.
The buyback rate is set per machine and displayed on each pack's page in the Instant buyback panel. In rare cases, shortly after Collector Crypt updates insured values, the buyback amount shown on a card can temporarily not match the machine's rate. If the buyback you are offered does not match the machine's displayed percentage, open a ticket at [support.jup.ag](https://support.jup.ag/).
The buyback for that card is no longer available and cannot be reopened. The card remains yours and stays vaulted at no cost. A Collector Crypt card can be kept, [shipped home](/user-docs/trade/gacha/shipping), listed on the [marketplace](/user-docs/trade/gacha/marketplace) at a price you set, or used to borrow USDC on [Offerbook](/user-docs/earn/offerbook/markets) directly from your Collection. A Phygitals card can be kept, sent to another wallet, redeemed through Phygitals, or [listed outside Jupiter Gacha](/user-docs/trade/gacha/providers#selling-a-phygitals-card-elsewhere) on the Phygitals marketplace, Tensor, or Magic Eden.
No. The expected value is the average pull value across the machine's current pool, weighted by the odds. Individual pulls vary widely around it: on most packs, the majority of pulls fall in the lowest value range. The expected value also changes over time as the pool contents change.
## Cards, custody, and authenticity
Every card is a physical card held by a professional vaulting partner. A Collector Crypt card is stored with a partner such as PSA Vault or OmniVault: open the card's detail page and check the Vault details section to see the vault and, where available, its location. A Phygitals card (from the Sport packs or the Pokemon Trainer pack) is stored in the United States with PSA Vault, Fanatics Vault, or Alt Vault; its card page has no Vault details section.
Graded cards are slabs graded and authenticated by a professional grading company such as PSA, CGC, or Beckett. The card detail page shows the grading company and the grading ID, which can be verified independently on the grading company's own certificate lookup. The Sport Practice and Pokemon Trainer packs also contain ungraded cards, which Phygitals holds in its vault partners' custody and describes as Near Mint or Lightly Played; an ungraded card shows no grading company or grade on its page.
No. Every Collector Crypt card and every Sport Hall of Fame card is a graded slab. The Sport Practice (\$5) and Pokemon Trainer (\$10) packs from Phygitals mix graded slabs with ungraded cards. See [Providers](/user-docs/trade/gacha/providers#graded-and-ungraded-cards).
Nothing is required from you. The card stays vaulted with its custody partner and remains in your Collection indefinitely, at no storage cost. You can sell it or ship it at any time.
Yes. Each card is an NFT on Solana, whichever provider it came from, so you can transfer it from your wallet to your friend's wallet with your wallet's send function, the same way as any other NFT. Jupiter Gacha has no send button for cards. Delist the card first if it is listed on the marketplace, and use the instant buyback before sending if you intend to use it: it is tied to the wallet that pulled the card. The card then appears in your friend's Collection. See [Sending a card to another wallet](/user-docs/trade/gacha/gifting#sending-a-card-to-another-wallet). To give a friend packs to open instead, see [Gifting packs](/user-docs/trade/gacha/gifting#gifting-packs).
Your ownership is recorded on Solana and always visible in your Jupiter Gacha [Collection](/user-docs/trade/gacha/collection), which is the reference view for your cards. Cards from both providers are Metaplex Core assets, not compressed NFTs, so a wallet that supports the Metaplex Core standard displays them; wallets that do not yet support it may not. Display in external wallet interfaces can therefore vary.
## Marketplace
The marketplace is operated by Collector Crypt and carries Collector Crypt cards. A card pulled from a Phygitals pack (Sport Practice, Sport Hall of Fame, Pokemon Trainer) has no list action on Jupiter Gacha. You can sell it back to Phygitals within 7 days of the pull, keep it, send it to another wallet, or, since it is a Solana NFT, list it on the Phygitals marketplace, Tensor, or Magic Eden. See [Selling a Phygitals card elsewhere](/user-docs/trade/gacha/providers#selling-a-phygitals-card-elsewhere) for the links and what to watch for.
Refresh the page. After a purchase or a listing change, the interface can briefly show the previous state (for example a Manage listing button on a card you just bought). The on-chain state is correct; the display catches up after a refresh.
Marketplace sales carry a 2% fee on the sale price, charged by Collector Crypt. A card sold at 100 USDC pays out 98 USDC. There are no other marketplace fees. See [Marketplace](/user-docs/trade/gacha/marketplace#the-sell-fee).
## Shipping
The provider the card came from. Collector Crypt cards ship from Jupiter Gacha with Ship home. Cards from a Phygitals pack cannot be shipped from Jupiter Gacha: you redeem them through Phygitals directly, which ships them from its US vault partners. Each provider handles its own shipping support. See [Shipping](/user-docs/trade/gacha/shipping).
Collector Crypt ships worldwide, with fees by zone: United States, Canada, Europe, Australia and New Zealand, and the rest of the world. A few destinations are restricted, and an address in one of them is refused when you enter it, with the message "Sorry, we do not ship to \[country] at this time", before any fee is paid. International deliveries can carry customs duties payable on delivery. See [Shipping](/user-docs/trade/gacha/shipping#how-to-ship-a-collector-crypt-card-home).
Collector Crypt estimates around 2–3 weeks within the United States and around 5 weeks internationally. For a card redeemed through Phygitals, Phygitals estimates around 2–3 weeks within the United States from PSA Vault and around 1–2 weeks from Fanatics Vault or Alt Vault, plus 1–4 weeks for international deliveries. Vault processing time and the destination both affect the actual delivery date. See [Shipping — Delivery times](/user-docs/trade/gacha/shipping#delivery-times).
Cards held by different vaulting partners ship separately, so one shipment can arrive as several packages with their own tracking numbers and delivery dates. A partial delivery is expected in that case, with either provider. Check the other tracking numbers, and for Collector Crypt cards the Vault details section of each card, before contacting the provider's support. See [Shipping — Cards from different vaults ship separately](/user-docs/trade/gacha/shipping#cards-from-different-vaults-ship-separately).
No. Most of the delivery time is the vault pulling, packing, and releasing the card, and neither provider controls how fast each vault processes a request. There is no faster shipping option.
Not from Jupiter Gacha: there is no cancel or edit control on a shipment, because redeeming a card burns it and pays the shipping fee in the same transaction, after which the request belongs to Collector Crypt. Contact Collector Crypt support as early as possible (chat widget on [collectorcrypt.com](https://collectorcrypt.com/) or [support@collectorcrypt.com](mailto:support@collectorcrypt.com)) with the order ID from the shipment card. Collector Crypt decides whether the shipment can still be stopped and what happens to the card and the fee; a cancelled request shows as Cancelled in the Shipping tab. See [Cancelling or changing a shipment](/user-docs/trade/gacha/shipping#cancelling-or-changing-a-shipment).
No. Packages are declared at the card's value, the [insured value](/user-docs/trade/gacha/collection#insured-value) for a Collector Crypt card and Phygitals' fair market value for a Phygitals card, because the provider insures the shipment in transit for the declared amount. Customs and import duties in the destination country are calculated on that amount. See [Shipping — Customs and declared value](/user-docs/trade/gacha/shipping#customs-and-declared-value).
The provider that ships the card also handles shipping support: delays, customs, and delivery issues go to them. For a Collector Crypt card, track your shipment first in Collection, Shipping tab, then reach Collector Crypt support through the chat widget at the bottom right of [collectorcrypt.com](https://collectorcrypt.com/). For a Phygitals card, contact Phygitals through [phygitals.com/contact](https://www.phygitals.com/contact). For anything else related to Jupiter Gacha, contact [Jupiter support](https://support.jup.ag/).
The Shipping tab loads your outbound Collector Crypt shipments from Collector Crypt. Signing a message proves you control the wallet, so only you can see your shipments. It is a signature, not a transaction: nothing is sent on-chain and no fee is charged.
If your wallet shows *The app's signature request cannot be shown due to invalid formatting*, you are most likely signing with a Ledger. The Solana app on the device only signs transactions, so it cannot sign the Collector Crypt verification message, whether the Ledger is connected to jup.ag directly or through another wallet app. The Jupiter team is working on it. In the meantime, open a ticket at [support.jup.ag](https://support.jup.ag/) with your wallet address, your wallet app, and your Ledger model.
With a software wallet such as Phantom, Solflare, or the Jupiter Extension Wallet, check that the wallet is unlocked and that you approved the signature request in the wallet pop-up, then retry from the Shipping tab.
Shipping details (name, delivery address, contact information) are collected and processed by the provider operating the shipment, Collector Crypt or Phygitals, not Jupiter: Jupiter never receives or stores them, in its databases or logs. To request access to or deletion of your shipping data, contact Collector Crypt through the chat widget at the bottom right of [collectorcrypt.com](https://collectorcrypt.com/), or Phygitals through [phygitals.com/contact](https://www.phygitals.com/contact). See [Shipping — Your shipping data](/user-docs/trade/gacha/shipping#your-shipping-data).
No. Cards stay vaulted indefinitely at no storage cost. You can redeem a card whenever you choose.
# Gifting Packs and Cards
Source: https://docs.jup.ag/user-docs/trade/gacha/gifting
Gift Jupiter Gacha packs to another wallet, or send a card you own to a friend by transferring its token from your wallet: steps, what to check before sending, and what the recipient sees.
There are two ways to give something from Jupiter Gacha to another person: gift them packs to open, or send them a card you already own. Packs are gifted from the Gacha interface. Cards are sent from your wallet, because each card is a token on Solana and Jupiter Gacha has no send action of its own.
## Gifting packs
Packs from both providers can be gifted to another wallet: Collector Crypt packs and Phygitals packs alike. See [Providers](/user-docs/trade/gacha/providers#which-packs-come-from-which-provider) for which is which. Gifting works for a single pack or several at once, and the recipient opens the gift like any pack they purchased. See [Providers](/user-docs/trade/gacha/providers#what-differs).
### Sending a gift
The gift icon next to the pack price opens the **Gifts** dialog. From there:
Paste the recipient's Solana wallet address in the **Recipient wallet** field.
Pick the packs to send. A single gift can mix several pack tiers, each with its own quantity.
Confirm and approve the transaction in your wallet. The gift is paid in USDC at the packs' current prices.
The dialog's **History** tab lists the gifts you have sent.
Double-check the recipient wallet address before confirming a gift. Gifts sent to a wrong address cannot be recovered.
### Receiving a gift
The recipient sees the gifted pack directly on the corresponding pack page, with an "Open gifted" action in place of the purchase button. Gifted packs are consumed before any USDC is spent when the recipient opens packs, same as [free packs](/user-docs/trade/gacha/rewards).
## Sending a card to another wallet
Every card in your Collection is an NFT (non-fungible token) on Solana, and holding that token is what makes you the owner of the vaulted physical card. To give a card to a friend, send the token from your wallet to theirs, the same way you send any other NFT. Jupiter Gacha has no send button for cards: the transfer is done in your wallet.
### Before you send
* **Cancel any active listing.** A Collector Crypt card listed on the [marketplace](/user-docs/trade/gacha/marketplace) stays in your wallet while listed, so your wallet lets you send it, but the listing does not follow the card. Collector Crypt tries to cancel a listing when the card moves, but this is not guaranteed, and a stale listing can still be active if the card later comes back to you. Delist first from the card's Manage listing state.
* **Use the instant buyback first if you want it.** Sending a card does not restart its [instant buyback](/user-docs/trade/gacha/instant-buyback) window, and on a Collector Crypt card the buyback is checked against the wallet that pulled it, so the recipient cannot use it. If you intend to sell a card back, do it before sending it.
- **Check the address.** A token sent to a wrong address cannot be recovered, same as a gifted pack.
### How to send
Open your wallet's NFT view. In the [Jupiter Wallet extension](/user-docs/manage/extension-wallet/portfolio), cards appear under the **NFTs** tab. To be sure you are sending the right card, compare the token address with the **Token ID** shown in the Contract info section of the card's [detail page](/user-docs/trade/gacha/collection#the-card-detail-page) in Jupiter Gacha.
Choose the wallet's send action for that NFT, paste the recipient's Solana wallet address, and confirm. The transfer is a regular Solana transaction: it costs a small network fee in SOL, and nothing else.
Once the transaction confirms, the card belongs to the recipient. It appears in their [Collection](/user-docs/trade/gacha/collection) when they connect that wallet on [jup.ag/gacha](https://jup.ag/gacha). Display can lag a few moments behind the on-chain state; refreshing the page settles it.
Jupiter Mobile currently displays NFTs but cannot send them. Use a wallet that supports sending NFTs, such as the Jupiter Wallet extension. If your wallet does not display the card at all, see [the FAQ](/user-docs/trade/gacha/faq#cards-custody-and-authenticity).
### What the recipient can do
The token carries the full ownership of the vaulted card. The recipient can keep it vaulted at no cost and, for a Collector Crypt card, [ship it home](/user-docs/trade/gacha/shipping) or list it on the [marketplace](/user-docs/trade/gacha/marketplace) at a price they set. A Phygitals card is redeemed through Phygitals, or resold [outside Jupiter Gacha](/user-docs/trade/gacha/providers#selling-a-phygitals-card-elsewhere) on the Phygitals marketplace, Tensor, or Magic Eden. The instant buyback is the exception, as explained above.
# Jupiter Gacha Overview
Source: https://docs.jup.ag/user-docs/trade/gacha/index
Open Jupiter Gacha packs to pull real Pokemon, One Piece, Riftbound and sports cards, or luxury watches, vaulted by Collector Crypt and Phygitals.
Jupiter Gacha is a pack opening product built on two collectibles providers, [Collector Crypt and Phygitals](/user-docs/trade/gacha/providers). You open digital packs and pull real trading cards (Pokemon, One Piece, and sports cards) or, on watch packs, luxury watches authenticated by WristCheck. Every item shown in Jupiter Gacha corresponds to a physical collectible stored with a professional vaulting partner and represented by a token on Solana.
When you pull a card, you own the token that represents the physical card. From there, you choose what to do with it.
Pick a pack tier, check the odds, and pull a card.
Sell any pull back for USDC at the pack's buyback rate, within 3 or 7 days depending on the provider.
Buy and sell graded, tokenized cards with other collectors.
Redeem a card to have the physical card shipped to your address.
## What you actually own
Each card in Jupiter Gacha is a real, physical trading card held in custody by a professional vaulting partner. Most cards are graded slabs from a grading company such as PSA, CGC, or Beckett; the Sport Practice and Pokemon Trainer packs also contain ungraded cards. Collector Crypt cards are stored with vaulting partners such as PSA Vault or OmniVault, listed in the Vault details section of the card's page. Phygitals cards are stored in the United States with PSA Vault, Fanatics Vault, or Alt Vault.
The card is tokenized on Solana. Owning the token means owning the claim to the physical card. You can verify a graded card's grading company, grading ID, and grade directly on its card detail page.
## The four options after a pull
After opening a pack, you have four options for the card you pulled:
1. **Sell it back instantly.** Every pull carries an instant buyback at the pack's displayed rate, available for 3 days on Collector Crypt packs and 7 days on Phygitals packs. See [Instant Buyback](/user-docs/trade/gacha/instant-buyback).
2. **List it on the marketplace.** Set your own asking price and sell to other collectors. Collector Crypt cards only. See [Marketplace](/user-docs/trade/gacha/marketplace).
3. **Keep it.** The card stays vaulted and appears in your [Collection](/user-docs/trade/gacha/collection). There is no time limit and no storage fee.
4. **Ship it home.** Redeem the card to receive the physical card at your address: from Jupiter Gacha for a Collector Crypt card, through Phygitals for a Phygitals card. See [Shipping](/user-docs/trade/gacha/shipping).
You can also give things away: gift packs to another wallet, or send a card you own to a friend by transferring its token from your wallet. See [Gifting](/user-docs/trade/gacha/gifting).
## Two providers, one interface
Collector Crypt supplies the Pokemon packs from Silver to Immortal, the Watch packs, and the One Piece Straw Hat, Emperor, and Gorosei packs, runs their draws through its on-chain verifiable randomness program, operates the marketplace, and ships its cards. Phygitals supplies the Sport packs, the Pokemon Trainer pack, the Riftbound packs, and the One Piece Throne pack; its cards are shipped and resold through Phygitals or external marketplaces rather than from Jupiter Gacha. The app does not name the provider on a pack or a card, and a few rules differ between the two: the buyback window, Turbo mode, gifting, marketplace listing, shipping, and how randomness is verified. See [Providers](/user-docs/trade/gacha/providers) for the full comparison.
## Fees
Opening packs carries no platform fee: you pay the pack price in USDC plus Solana network fees. Selling a Collector Crypt card on the marketplace carries a 2% fee on the sale price. Shipping a card home carries shipping fees set by the provider shipping it, Collector Crypt from Jupiter Gacha or Phygitals on its own site. There are no other user-facing fees.
## Risk disclosure
Pack opening outcomes are random. Each pack displays fixed drop odds by rarity tier, and on most packs the majority of pulls fall in the lowest value range, below the pack price. The instant buyback guarantees a floor on the value of every pull, not a profit. Only spend what you are comfortable spending on collectible cards.
The expected value displayed on each pack is calculated from the current contents of that pack's card pool and changes over time. It is an average across all possible outcomes, not a prediction of your individual pull.
# Instant Buyback
Source: https://docs.jup.ag/user-docs/trade/gacha/instant-buyback
Every Jupiter Gacha pull carries an instant buyback paid in USDC: a percentage of the card's value set per pack, available for 3 days on Collector Crypt packs and 7 days on Phygitals packs.
The instant buyback is a sell-back option attached to every pull. It sets a floor on the value of every card you open: you can sell a pull back for USDC at the percentage displayed on the pack, within the pack's buyback window. The window and the way the amount is quoted depend on the pack's [provider](/user-docs/trade/gacha/providers): 3 days on Collector Crypt packs, 7 days on Phygitals packs.
## How the buyback works
The moment a card is revealed, its buyback window starts. The buyback percentage and the resulting USDC amount are shown on the card.
From the reveal, the card page, or your Collection, choose the sell action and confirm. You can filter your Collection with "Buyback only" to see which cards still carry a live offer.
The buyback amount is paid to your wallet in USDC. The card leaves your Collection and returns to the provider it came from.
## Window and rate by provider
| | Collector Crypt packs | Phygitals packs |
| - | - | - |
| Window | 3 days from the pull | 7 days from the pull |
| Rate | 85% to 93% of the card's insured value at pull time, set per machine | A percentage of Phygitals' fair market value for the card, set per pack. 100% on the Sport Practice, Sport Hall of Fame, and Pokemon Trainer packs at launch |
| Where the amount shows | On the card, with a countdown to the end of the window | On the card, as a Buyback offer quoted by Phygitals |
The rate of each pack is displayed on its page in the Instant buyback panel, together with the window. Rates may be adjusted over time.
**Worked example.** You open a \$50 Collector Crypt pack whose buyback rate is 85% and pull a card with an insured value of \$80. The instant buyback pays 68 USDC (85% of 80) at any time during the 3 days following the pull.
## The buyback window
The buyback is available from the moment of the pull until the window closes. After that, the buyback for that card expires. The card remains yours: it stays vaulted in your Collection. A Collector Crypt card can still be [shipped home](/user-docs/trade/gacha/shipping) or listed on the [marketplace](/user-docs/trade/gacha/marketplace) at a price you set; a Phygitals card can be redeemed or resold through Phygitals and external marketplaces, outside Jupiter Gacha. See [Providers](/user-docs/trade/gacha/providers#phygitals-cards-in-your-collection).
The buyback window cannot be extended or reopened. If you intend to use the buyback, do it within the window: 3 days on a Collector Crypt pack, 7 days on a Phygitals pack.
The buyback belongs to the wallet that pulled the card. If you send a card to another wallet, use the buyback first: see [Sending a card to another wallet](/user-docs/trade/gacha/gifting#sending-a-card-to-another-wallet).
## Collector Crypt cards: buyback and insured value
On a Collector Crypt card, the buyback percentage applies to the card's insured value **at the time of the pull**, a reference value assigned by Collector Crypt. The insured value is the basis for buyback calculations. It is not an insurance policy, and it can differ from what the card would fetch on the open market. See [Collection](/user-docs/trade/gacha/collection#insured-value) for the full explanation of insured value.
Two consequences follow from this:
* **Insured values can change after the pull.** Collector Crypt updates insured values over time, and the value displayed can occasionally be out of sync. The buyback amount is set against the insured value when the card was pulled, so it can later represent more or less than the stated percentage of the insured value currently displayed.
* **Discrepancies are handled by Collector Crypt.** Jupiter does not adjust buyback amounts when an insured value changes. If a buyback amount looks inconsistent with the card's insured value at pull time, contact Collector Crypt support via the chat widget at [collectorcrypt.com](https://collectorcrypt.com/).
## Phygitals cards: the quoted offer
On a Phygitals card, the buyback is a standing offer that Phygitals quotes for the card and for the wallet holding it. The offer is displayed on the card as a Buyback offer, in USDC, and is the pack's percentage of Phygitals' fair market value for the card. A quote can carry an expiry: when it lapses, the app hides it until Phygitals issues a new one, so if you see no offer on a card still within its 7 days, refresh the page.
Selling submits the sale to Phygitals, which settles it on its side. The confirmation can take a moment: if the app reports the sale as still settling, check your Collection before selling again rather than repeating the sale. A sale that Phygitals rejects leaves the card in your Collection.
## What happens to bought-back cards
Cards sold through the buyback return to the provider. Collector Crypt cards go back to the machine pool of the pack they came from, where they can be pulled again by other users. This is how machine pools stay stocked over time.
## Buyback in Turbo mode
When [Turbo mode](/user-docs/trade/gacha/opening-packs#turbo-mode) is active on a Collector Crypt pack, Common pulls are sold automatically at the machine's buyback rate the moment they are revealed. The mechanism and the rate are the same as a manual buyback; only the timing is automatic. Phygitals packs have no Turbo mode.
# Marketplace
Source: https://docs.jup.ag/user-docs/trade/gacha/marketplace
Buy and sell graded, tokenized cards with other collectors on the Jupiter Gacha marketplace: Buy now, listings, filters, and the 2% sell fee.
The marketplace is where Jupiter Gacha users buy and sell graded, tokenized cards with each other. Every listing is a vaulted physical card represented by its Solana token, with its grading and vault details visible on the card page. The marketplace is operated by Collector Crypt and carries Collector Crypt cards: cards pulled from Phygitals packs (Sport and Pokemon Trainer) cannot be listed on it. See [Providers](/user-docs/trade/gacha/providers#what-differs).
## Browsing and filtering
Listings show the card image, name, asking price, and grade. You can search by name or address, and filter by:
* Pokemon name and set
* Status
* Insured value range
* Listed price range
* Grading company (for example PSA or CGC)
* Generic grade
* Language
* Year
Sorting options include list date, list price, insured value, name, and year.
## Buying a card
You buy a card with **Buy now**, which purchases it immediately at the seller's asking price, paid in USDC. Making an offer at a different price is planned but not yet available.
The asking price is set freely by the seller. It is independent from the card's insured value, which is a buyback reference, not a market price. Compare both figures on the card page before buying.
After a purchase, the card appears in your Collection. If the page still shows a stale state right after buying, refresh: display can lag a few moments behind the on-chain state.
## Selling a card
Go to your Collection and open the card you want to sell.
Choose the sell action and set your asking price in USDC.
If your asking price is more than 30% below the card's fair market value, the app warns you before the listing is confirmed.
While listed, the card shows a Manage listing state where you can change the price or delist. The card remains yours until it sells.
When a buyer purchases the card, you receive the sale price minus the 2% sell fee.
## The sell fee
Selling on the marketplace carries a fee of 2% of the sale price, charged by Collector Crypt. Jupiter charges no additional marketplace fee.
**Worked example.** You list a card at 100 USDC and a buyer purchases it with Buy now. You receive 98 USDC: the 100 USDC sale price minus the 2 USDC fee.
Buying carries no marketplace fee: the buyer pays the asking price plus Solana network fees.
## Marketplace, buyback, or shipping?
The marketplace is one of three ways to realize the value of a card, each with different trade-offs:
| Option | Price | Availability |
| - | - | - |
| [Instant buyback](/user-docs/trade/gacha/instant-buyback) | 85% to 93% of insured value, guaranteed | 3 days after the pull |
| Marketplace | Any price a buyer will pay, minus 2% | Anytime |
| [Ship home](/user-docs/trade/gacha/shipping) | Not a sale: you receive the physical card | Anytime |
# Opening Packs
Source: https://docs.jup.ag/user-docs/trade/gacha/opening-packs
How to open Jupiter Gacha packs: pack tiers and prices by provider, drop odds, expected value, Turbo mode, the rip reveal, and how the card pool inside each machine works.
Packs are the entry point of Jupiter Gacha. Each pack tier draws from its own pool of collectibles, called the machine pool, with fixed odds per rarity tier. Most pools contain graded trading cards; watch pack pools mix luxury watches with graded cards, and the Sport Practice and Pokemon Trainer packs mix graded slabs with ungraded cards. Packs come from one of two [providers](/user-docs/trade/gacha/providers), Collector Crypt or Phygitals, and a few rules differ between them, called out below.
## Prerequisites
To open a pack you need:
* A connected Solana wallet
* Enough USDC to cover the pack price
* A small amount of SOL for Solana network fees
There is no platform fee on pack openings. You pay the pack price plus network fees. Phygitals packs are also subject to Phygitals' [geographic restrictions](/user-docs/trade/gacha/providers#geographic-restrictions).
If your wallet does not hold enough USDC for the selected quantity of packs, the app offers to swap the missing amount from the token with the highest balance in your wallet, provided that balance is worth slightly more than the shortfall (about a 5% buffer). Without any balance to cover it, the Open pack button shows "Insufficient USDC". Opening also fails without SOL for network fees. See the [FAQ](/user-docs/trade/gacha/faq) for troubleshooting.
## Pack tiers
Pack prices are displayed live in the app, and the lineup evolves over time: packs can be added or retired. Current tiers:
| Pack | Price (USDC) | Provider | Notes |
| - | - | - | - |
| Trainer | 10 | Phygitals | Contains ungraded cards alongside graded slabs |
| Silver | 25 | Collector Crypt | |
| Gold | 50 | Collector Crypt | |
| Degen | 100 | Collector Crypt | Jupiter exclusive, labelled "High Voltage" in the app. High volatility: the pool carries chase cards valued around \$10,000, with a correspondingly higher risk of low-value pulls |
| Diamond | 250 | Collector Crypt | |
| Blaze | 420 | Collector Crypt | Jupiter exclusive. Fire-type Pokemon only |
| Grail | 1,000 | Collector Crypt | |
| God | 2,500 | Collector Crypt | |
| Immortal | 5,000 | Collector Crypt | Highest tier |
| Pack | Price (USDC) | Provider | Notes |
| - | - | - | - |
| Straw Hat | 50 | Collector Crypt | |
| Emperor | 250 | Collector Crypt | |
| Gorosei | 1,000 | Collector Crypt | |
| Throne | 2,500 | Phygitals | Highest One Piece tier. Supplied by Phygitals, so it follows the Phygitals rules below rather than the Collector Crypt ones |
| Pack | Price (USDC) | Provider | Notes |
| - | - | - | - |
| Chrono | 250 | Collector Crypt | |
| Master | 500 | Collector Crypt | |
| Timepiece | 500 | Collector Crypt | Watches only, no cards in the pool |
The Chrono and Master pools mix luxury watches (Rolex models among the chase pulls) with graded Pokemon cards; the Timepiece pool holds watches only. Watches are authenticated by WristCheck; the odds, Turbo mode, and instant buyback work exactly as on card packs.
| Pack | Price (USDC) | Provider | Notes |
| - | - | - | - |
| Practice | 5 | Phygitals | Basketball, baseball, football, and soccer cards. Contains ungraded cards alongside graded slabs |
| All-Star | 100 | Phygitals | Basketball, baseball, football, and soccer cards |
| Hall of Fame | 1,000 | Phygitals | Basketball, baseball, football, and soccer cards. Graded slabs |
Sport packs are supplied by Phygitals: no Turbo mode, a 7-day buyback window, and no shipping or marketplace listing from Jupiter Gacha (both go through Phygitals or external marketplaces). See [Providers](/user-docs/trade/gacha/providers#what-differs).
| Pack | Price (USDC) | Provider | Notes |
| - | - | - | - |
| Calm | 25 | Phygitals | Riftbound trading cards |
| Chaos | 100 | Phygitals | Riftbound trading cards |
Riftbound is the newest category on Jupiter Gacha. Both packs are supplied by Phygitals, so they follow the Phygitals rules: no Turbo mode, a 7-day buyback window, and no shipping or marketplace listing from Jupiter Gacha. See [Providers](/user-docs/trade/gacha/providers#what-differs).
When a pack is retired, as the Pokemon Water pack has been, it disappears from the packs page but stays visible and openable for users who still hold free copies of it.
Each pack page shows two views:
* **What's Inside?** lists the actual items currently in that pack's machine pool, with their grading and value. A "Guaranteed Authenticity" badge confirms every item in the pool is authenticated: graded cards as slabs (PSA, CGC, Beckett, BGS), watches by WristCheck, ungraded cards by the provider's vault partners. If a provider publishes only its highlight cards rather than the whole pool, the view says so below the list.
* **Latest Pulls** is a feed of recent pulls from that pack across the platform, with the value of each pull and its gain percentage relative to the pack price.
## How to open a pack
Go to the Packs page. Packs are organised by theme tabs (Spotlight, All packs, Pokémon, Watches, One Piece, Sport, Riftbound) with curated highlights, and each theme presents its packs as a carousel: drag to spin and tap a pack to select it. Review the Statistics & odds panel and the What's Inside view before buying.
Choose how many packs to open in one session. If you own free or gifted packs for this tier, they are consumed first, before any USDC is spent.
Click Open pack and approve the transaction in your wallet. The total is the pack price multiplied by the quantity, plus network fees. If a USDC top-up swap is needed, the swap and the pack spend are disclosed together before you approve. Opening several packs at once is also a single approval, even when the purchase is split into several transactions. Sell & rip again is the exception: it asks for two approvals, the sale first, then the next pack once the proceeds have landed in your wallet.
The pack rips open and your pull is revealed with effects matching its rarity. The sequence plays inside the pack box by default, with a toggle to send it full screen; on phones it plays full screen by default. Tap the revealed card to turn it over and see its back. When you open several packs at once, they rip one after the other, or all at once.
On a Collector Crypt pack, the draw runs through Collector Crypt's on-chain [verifiable randomness](/user-docs/trade/gacha/verifiable-randomness) program and the card is yours as soon as the transaction confirms. On a Phygitals pack, Phygitals settles the opening on its side after you approve, so the reveal can take a few seconds.
The card is added to your Collection and its instant buyback window starts: 3 days on a Collector Crypt pack, 7 days on a Phygitals pack. From the reveal you can sell the pull back at the buyback rate, use **Sell & rip again** to sell it and open another pack of the same tier (two wallet approvals: the sale, then the purchase), or keep it and rip another.
If a card you just pulled does not appear in your Collection immediately, refresh the page. Display can lag a few moments behind the on-chain state.
## Odds and rarity tiers
Every pack displays its own drop odds by rarity tier in the Statistics & odds panel, together with indicative value ranges per tier. Odds differ from pack to pack. Value ranges depend on the current machine pool and change over time.
Collector Crypt packs use five tiers: Common, Uncommon, Rare, Epic, and Legendary. Phygitals packs use tiers set per pack by Phygitals, which add a Mythic tier above Legendary and can use as few as two tiers on a given pack. The panel always shows the tiers that apply to the pack you are looking at.
Two properties of the odds are guaranteed:
* **Odds are fixed.** The displayed percentages never change, regardless of how many cards remain in the machine pool.
* **Odds are per rarity tier, not per card.** Which specific card you receive within a tier depends on the current pool contents.
Read the odds panel before opening. On most packs, the majority of pulls fall in the lowest rarity tier, with values below the pack price. The instant buyback guarantees a floor on every pull, not a profit.
## Expected value
Each pack displays an expected value: the average pull value calculated from the current contents of the machine pool. The expected value is dynamic. It is recalculated as cards leave the pool (pulled by users) and re-enter it (sold back through the buyback). Do not treat the expected value as a prediction of any single pull.
## The machine pool
Each pack tier draws from a dedicated pool of physical cards. The pool evolves over time:
* Cards leave the pool when they are pulled.
* Cards return to the pool when users sell them back through the instant buyback.
* The provider restocks and curates the pool.
When a pool runs low, the two providers react differently:
* **Collector Crypt packs.** If a machine runs too low on common cards, **Turbo mode becomes mandatory** on that machine until it is restocked. If it runs too low on higher rarity cards, **the machine is disabled** until it is restocked.
* **Phygitals packs.** A pack out of stock shows as **Sold out** until Phygitals restocks it. Pick another pack in the meantime.
The displayed odds remain unchanged in every case.
## Turbo mode
Turbo is available on Collector Crypt packs only. Phygitals packs have no Turbo toggle.
Turbo is a toggle on each Collector Crypt pack that automatically sells any Common pull back for USDC at the machine's buyback rate, immediately at reveal. You keep only Uncommon or better pulls, and receive USDC for the rest. Turbo is useful for opening many packs in a row when you only want to keep higher rarity cards.
Check the Turbo toggle before every opening. While it is on, every Common pull is sold back automatically at the machine's buyback rate the moment it is revealed, and sold cards cannot be recovered.
When you enable Turbo yourself, the app shows a confirmation notice once, explaining that common pulls will be sold automatically. When Turbo is mandatory because the machine is low on commons, the notice is shown on every opening, so you are always aware that a Common pull will be auto-sold.
## Free packs and gifted packs
Free packs earned through [rewards](/user-docs/trade/gacha/rewards) and [packs received as gifts](/user-docs/trade/gacha/gifting#gifting-packs) appear directly on the corresponding pack page. A gifted pack shows an "Open gifted" action in place of the purchase button. Free and gifted packs are always consumed before USDC when you open multiple packs. Gifting is available on Collector Crypt packs only.
# Providers
Source: https://docs.jup.ag/user-docs/trade/gacha/providers
Jupiter Gacha packs come from two collectibles providers, Collector Crypt and Phygitals. Which packs belong to which provider, and how buyback windows, Turbo mode, gifting, shipping, and randomness differ between them.
Jupiter Gacha is a single interface built on two collectibles providers: **Collector Crypt** and **Phygitals**. Each provider supplies its own packs, holds the physical cards in its own vaults, and pays its own instant buyback. The app does not display the provider's name on a pack or a card, so this page is the reference for telling them apart and for the rules that differ between the two.
## Which packs come from which provider
| Provider | Packs |
| - | - |
| Collector Crypt | Every Pokemon pack from Silver to Immortal, the Watch packs, and the One Piece Straw Hat, Emperor, and Gorosei packs |
| Phygitals | Every Sport pack, Pokemon Trainer (\$10), both Riftbound packs (Calm \$25, Chaos \$100), and One Piece Throne (\$2,500) |
Provider does not follow the category: the One Piece tab holds three Collector Crypt packs and one Phygitals pack. Two quick tells in the app: the Instant buyback panel on a pack page reads "within 3 days" on a Collector Crypt pack and "within 7 days" on a Phygitals pack, and Phygitals packs have no Turbo toggle.
## What differs
| | Collector Crypt | Phygitals |
| - | - | - |
| Cards in the packs | Graded slabs only (PSA, CGC, Beckett), plus luxury watches in the Watch packs | Graded slabs (PSA, BGS, CGC). The Sport Practice and Pokemon Trainer packs also contain ungraded cards |
| Rarity tiers | Common, Uncommon, Rare, Epic, Legendary | Set per pack by Phygitals, with a Mythic tier above Legendary |
| Instant buyback window | 3 days from the pull | 7 days from the pull |
| Instant buyback rate | 85% to 93% of the insured value, set per pack | Set per pack. 100% of the card's value on the three launch packs |
| Turbo mode | Available, and mandatory when a machine runs low on commons | Not available |
| Gifting packs | Yes | Yes |
| Selling to other collectors | On the Jupiter Gacha marketplace | Not on Jupiter Gacha. The card is a Solana NFT and can be listed on the Phygitals marketplace, or on a Solana NFT marketplace such as Tensor or Magic Eden. See [Selling a Phygitals card elsewhere](#selling-a-phygitals-card-elsewhere) |
| Shipping | From Jupiter Gacha (Ship home in your Collection), operated by Collector Crypt from its vaulting partners (PSA Vault, OmniVault, and others) | Not from Jupiter Gacha. Redeemed through Phygitals directly, which ships from its US vault partners (PSA Vault, Fanatics Vault, Alt Vault) |
| Randomness | On-chain verifiable randomness (VRF), checkable from your Activity tab | Commit-reveal scheme documented by Phygitals; not checkable from Jupiter Gacha |
| Reveal | As soon as the transaction confirms | Phygitals settles the opening on its side. The reveal can take a few seconds |
| When a pool runs low | Turbo becomes mandatory, or the machine is disabled until restocked | The pack shows as sold out until restocked |
| Rewards | Pack spend counts on the leaderboard; battlepass eligibility is set per campaign | Same: the leaderboard counts spend on every pack, and a campaign can include Phygitals packs |
| Support | Chat widget at [collectorcrypt.com](https://collectorcrypt.com/) | [phygitals.com/contact](https://www.phygitals.com/contact) |
Everything else works the same way on both: you pay the pack price in USDC plus Solana network fees, the odds per rarity tier are displayed on the pack and fixed, your pulls land in your [Collection](/user-docs/trade/gacha/collection), and each card is a token on Solana that you can [send to another wallet](/user-docs/trade/gacha/gifting#sending-a-card-to-another-wallet).
## Collector Crypt
Collector Crypt is the original Jupiter Gacha partner. It supplies the Pokemon packs from Silver to Immortal, the Watch packs, and the One Piece Straw Hat, Emperor, and Gorosei packs, runs the pack draws through its on-chain [verifiable randomness](/user-docs/trade/gacha/verifiable-randomness) program, operates the [marketplace](/user-docs/trade/gacha/marketplace) where Jupiter Gacha cards are bought and sold, and handles [shipping](/user-docs/trade/gacha/shipping) from its vaulting partners. Every card it supplies is a professionally graded slab, and every card page lists the grading company, grading ID, and the vault holding the slab.
For the Collector Crypt infrastructure itself, see the [Collector Crypt documentation](https://docs.collectorcrypt.com/).
## Phygitals
Phygitals is a Solana-based platform that tokenises physical trading cards. It supplies the Sport packs, the Pokemon Trainer pack, the Riftbound packs, and the One Piece Throne pack. Its physical cards are stored in the United States with three vault partners, PSA Vault, Fanatics Vault, and Alt Vault, and Phygitals states that cards in vault custody are insured through those partners against loss, theft, and damage. Holding the token makes you the recognised owner of the physical card.
### Graded and ungraded cards
The Sport Hall of Fame pack contains graded slabs. The Sport Practice and Pokemon Trainer packs mix graded slabs with ungraded cards. Phygitals states that its ungraded cards are in Near Mint or Lightly Played condition. On the card page, an ungraded card shows no grading company and no grade.
### Phygitals cards in your Collection
Cards pulled from Phygitals packs appear in your Collection alongside Collector Crypt cards, and their detail page shows the Grading section when the card is graded, the Metadata section, and the Contract info. There is no Vault details section for these cards. The value displayed as Est. value is Phygitals' fair market value estimate for the card; when Phygitals publishes no estimate, the card shows its current buyback offer instead.
What you can do with a Phygitals card:
* **Sell it back** within 7 days of the pull, at the offer quoted on the card. See [Instant Buyback](/user-docs/trade/gacha/instant-buyback).
* **Keep it.** The card stays vaulted with Phygitals at no cost.
* **Ship it home through Phygitals.** Jupiter Gacha has no shipping flow for Phygitals cards; you redeem the card on phygitals.com. See [Shipping](/user-docs/trade/gacha/shipping#shipping-a-phygitals-card).
* **Sell it elsewhere.** The card is a Solana NFT, so it can be listed outside Jupiter Gacha. See [Selling a Phygitals card elsewhere](#selling-a-phygitals-card-elsewhere).
* **Send it to another wallet**, like any card. See [Gifting](/user-docs/trade/gacha/gifting#sending-a-card-to-another-wallet).
Phygitals cards cannot be listed on the Jupiter Gacha marketplace, which is operated by Collector Crypt, and cannot be shipped from Jupiter Gacha.
### Selling a Phygitals card elsewhere
A Phygitals card is a Solana NFT, so any marketplace that lists Solana NFTs can carry it:
* [Phygitals marketplace](https://www.phygitals.com/marketplace) — the provider's own marketplace, which routes its listings through Solana NFT marketplaces as well.
* [Tensor](https://www.tensor.trade/) — a Solana NFT marketplace.
* [Magic Eden](https://magiceden.io/) — a Solana NFT marketplace.
These are third-party platforms: they set their own fees, and the sale happens entirely outside Jupiter. Jupiter does not endorse any of them, and a card listed there leaves the instant buyback behind once its window has closed.
Open a marketplace from the links above or from your own bookmark, never from a search result or a link sent to you. Lookalike NFT marketplaces are a common scam: they reproduce the real interface and ask you to connect your wallet and sign, which drains it.
### Geographic restrictions
Purchases and buybacks on Phygitals packs follow Phygitals' [restricted jurisdictions policy](https://docs.phygitals.com/user-agreements/restricted-jurisdictions). In a restricted region, the pack page shows "Pack purchases are not available in your region" and the sell action shows "Buyback is not available in your region".
### Support
For anything specific to a Phygitals card or shipment, contact Phygitals through [phygitals.com/contact](https://www.phygitals.com/contact). For anything else related to Jupiter Gacha, contact [Jupiter support](https://support.jup.ag/). For the Phygitals platform itself, see the [Phygitals documentation](https://docs.phygitals.com/).
## Fees
Opening a pack carries no Jupiter fee on either provider: you pay the pack price in USDC plus Solana network fees. Selling a Collector Crypt card on the marketplace carries Collector Crypt's 2% fee. Shipping fees are set by the provider shipping the card and displayed before you confirm a shipment. There are no other user-facing fees.
# Rewards
Source: https://docs.jup.ag/user-docs/trade/gacha/rewards
Free packs in Jupiter Gacha: battlepass progress rewards, weekly leaderboard prizes, and how to use free packs.
Jupiter Gacha distributes free packs through two reward programs: battlepass progress and leaderboard prizes.
The pack lineup and the rewards pool are refreshed over time. The Watches category joined the lineup with the Chrono and Master packs, followed by the all-watch Timepiece pack in September 2026; earlier reloads added Pokemon Blaze, Pokemon Degen, and One Piece Gorosei, along with new grail cards in the machine pools.
## Ways to earn free packs
### Battlepass progress
USDC spent on eligible packs fills a progress bar shown in the Next free pack widget, visible on the pages of eligible packs and in your Collection. Reaching a tier grants a free pack, no purchase of that pack needed. Eligibility is set per campaign and can include packs from either [provider](/user-docs/trade/gacha/providers).
The battlepass runs in campaigns: which packs are eligible and what the reward is change when a new campaign replaces the previous one. Near the end of a campaign the free pack card shows an **Ending soon** badge, and when no campaign is live the Next free pack widget is hidden entirely. The most recent campaign (every **\$10,000** of volume on the watch packs earned a free Chrono pack, from a **\$50,000** pool) has ended, as had the earlier campaign on packs priced \$100 and above.
### Leaderboard prizes
The leaderboard runs in **seasons**, each split into weekly periods. It ranks users by total pack spend, on every pack whichever provider it comes from; standings update as packs are opened, and your own rank shows under **Your standing**. At the end of each weekly period, prizes are awarded by final rank for that week.
**Season 1 has ended.** It ran for four weekly periods with a \$100,000 prize pool in free packs, and awarded per-week prizes by final rank (from a God Tier pack for rank 1 down to Silver packs for ranks 51 to 90).
With Season 1 over, the leaderboard is no longer shown in the Gacha navigation. This section will be updated when a new season is announced.
## Using free packs
Free packs appear directly on the corresponding pack page, in the pack machine. When you open packs, free packs are consumed first, before any USDC is spent. Free packs behave exactly like purchased packs: same odds, same buyback, same everything.
# Shipping
Source: https://docs.jup.ag/user-docs/trade/gacha/shipping
Receive a Jupiter Gacha card at home: Collector Crypt cards ship from Jupiter Gacha with tracking, fees and customs rules, Phygitals cards through Phygitals.
Any card in your Collection can be redeemed to have the physical card shipped to your address. Shipping is operated end to end by the [provider](/user-docs/trade/gacha/providers) the card came from, and that provider also handles shipping support. Where you start the shipment depends on the provider:
* **Collector Crypt cards** (the Pokemon packs from Silver to Immortal, the Watch packs, and the One Piece Straw Hat, Emperor, and Gorosei packs) are shipped from Jupiter Gacha, with the Ship home action in your Collection. Collector Crypt ships them from its vaulting partners such as PSA Vault or OmniVault.
* **Phygitals cards** (the Sport packs, Pokemon Trainer, the Riftbound packs, and One Piece Throne) cannot be shipped from Jupiter Gacha. You redeem them through Phygitals directly, which ships them from its US vault partners PSA Vault, Fanatics Vault, and Alt Vault.
Jupiter is not involved in the physical logistics of either provider.
## How to ship a Collector Crypt card home
Open Collection, then the Shipping tab. The first time, you verify your wallet by signing a message with Collector Crypt so your outbound shipments can load. This is a message signature only: no transaction is sent and no fee is charged for the verification itself.
A Ledger connected to jup.ag cannot sign this verification message: the Solana app on the device only signs transactions, and the request fails with *The app's signature request cannot be shown due to invalid formatting*. This also applies when the Ledger is used through another wallet app, since the device does the signing. The Jupiter team is working on it. In the meantime, open a ticket at [support.jup.ag](https://support.jup.ag/) with your wallet address, your wallet app, and your Ledger model.
Use the Ship home action and select the card or cards to redeem. Shipping multiple cards in one shipment costs less than shipping them separately, because the per-shipment base fee is paid once.
Provide the delivery address. No KYC is required, only a shipping address. Collector Crypt ships worldwide, with fees set by zone: United States, Canada, Europe, Australia and New Zealand, and the rest of the world. A few destinations are restricted: an address in one of them is refused at this step with the message "Sorry, we do not ship to \[country] at this time", before any fee is paid or card burned. The address goes directly to Collector Crypt: see [Your shipping data](#your-shipping-data).
Shipping fees depend on your zone, plus a fee for each additional card in the same shipment. The exact amount is displayed in the Ship home flow before you confirm the shipment.
International deliveries can incur customs or import duties charged by the destination country. These are set by local authorities, are not included in the shipping fee, and are payable by the recipient on delivery. See [Customs and declared value](#customs-and-declared-value).
The shipment appears in the Shipping tab with its status, estimated delivery, and a tracking link, typically UPS. The tracking number appears once the vault holding the card has handed the package to the carrier.
## Shipping a Phygitals card
Jupiter Gacha has no shipping flow for cards pulled from a [Phygitals pack](/user-docs/trade/gacha/providers#which-packs-come-from-which-provider): the Ship home action in your Collection only lists Collector Crypt cards. To receive a Phygitals card at home, redeem it through Phygitals' own claim process at [phygitals.com](https://www.phygitals.com/), documented on its [Shipping & Redemption](https://docs.phygitals.com/physical-assets/shipping-and-redemption) page. In summary:
* You provide a shipping address, an email address, and a phone number. Every address field must be written in Latin characters, and PO boxes may not be supported.
* Shipping fees, where they apply, are displayed before you confirm. Phygitals adjusts them to carrier rates and destination.
* Each vault ships its own package, so a claim covering cards held in different vaults can arrive as several parcels. Redeeming several cards at once avoids paying several shipping fees.
* A tracking number is emailed to you when the shipment is dispatched.
* Shipments are insured in transit for the declared value of the cards, which is Phygitals' fair market value at the time of shipment.
* Once the claim is processed, the card's token is permanently retired.
Ungraded cards can be redeemed like graded ones. For help with a Phygitals claim, contact Phygitals through [phygitals.com/contact](https://www.phygitals.com/contact).
## Delivery times
**Collector Crypt** estimates around 2–3 weeks for a delivery within the United States and around 5 weeks for an international delivery. A large part of the time is vault processing, which happens before the package is handed to a carrier: the vault has to pull the slab, pack it, and release it. Collector Crypt does not control how fast each vault works, which is also why a shipment cannot be expedited.
**Phygitals** estimates, for deliveries within the United States, around 2–3 weeks from PSA Vault and around 1–2 weeks from Fanatics Vault or Alt Vault, processing included. International shipments take an additional 1–4 weeks depending on the country, and tracking visibility can be limited once a package crosses borders.
These are estimates, not guarantees.
### Cards from different vaults ship separately
Cards are held by different vaulting partners. For a Collector Crypt card, the vault is listed in the Vault details section of the card's page; Phygitals cards are held with PSA Vault, Fanatics Vault, or Alt Vault. When you redeem several cards at once, each vault ships its own package. One shipment can therefore arrive as several packages, with separate tracking numbers and different delivery dates. Receiving part of your cards first is expected: check the remaining tracking numbers before contacting the provider's support.
## Shipment statuses
Each Collector Crypt shipment is a card in the Shipping tab, listed under Active until it is delivered or cancelled, then under Completed. The card shows the status, the cards included, the amount paid, a progress line (Payment Received, Processing, Pending Shipment, Shipped, Delivered) and the tracking link once the carrier has the package. Expand the card for the order ID, the delivery address, the carrier and the tracking number.
| Status | Meaning |
| - | - |
| Pending Payment | The request exists but the shipping fee payment has not been confirmed yet. |
| Payment Received | The fee is paid and the card burned. The vault has been asked to pull the card. |
| Processing, Pending Shipment | The vault is pulling, packing and releasing the card. The package has not been handed to the carrier yet. |
| In Transit | The carrier has the package. The tracking number and link are shown. |
| Delivered | The carrier reported the delivery. |
| Action Required | Collector Crypt needs something from you before the shipment can continue. Contact its support with the order ID. |
| Cancelled | Collector Crypt cancelled the request. |
## Cancelling or changing a shipment
Jupiter Gacha has no control to cancel a shipment or change its address once it is submitted. The Ship home flow signs the card burn and the shipping fee payment in a single wallet prompt, so by the time the shipment appears in the Shipping tab the card has already left your wallet and the request is with Collector Crypt, which handles it from that point.
To ask for a cancellation or an address change, contact Collector Crypt support as early as possible, through the chat widget at the bottom right of [collectorcrypt.com](https://collectorcrypt.com/) or at [support@collectorcrypt.com](mailto:support@collectorcrypt.com), with the order ID from the shipment card. Collector Crypt decides whether the request can still be stopped, which depends on how far the vault has got: a shipment in Processing or Pending Shipment is still being prepared, while a shipment In Transit is already with the carrier. If Collector Crypt cancels a request, its status changes to Cancelled in the Shipping tab. What happens to the card and to the fee in that case is decided by Collector Crypt, not by Jupiter.
## Customs and declared value
Every package is declared at the value of the cards it contains: the [insured value](/user-docs/trade/gacha/collection#insured-value) recorded by Collector Crypt at the time of redemption for a Collector Crypt card, Phygitals' fair market value at the time of shipment for a Phygitals card. Neither provider declares a shipment as a gift or at a lower value, because the shipment is insured in transit for the declared amount. Any customs or import duties charged by the destination country are calculated on that value and are payable by the recipient; the providers do not collect or remit import taxes.
If you ship to a package forwarding service rather than your own address, Collector Crypt's insurance covers the package only up to the forwarder. Anything that happens to the card after that point, including damage in the forwarder's own onward shipment, is not covered.
## What redeeming means
Redeeming a card converts your on-chain ownership into physical possession. Once the physical card is shipped to you, the card leaves the Jupiter Gacha system: it can no longer be sold back through the buyback or, for a Collector Crypt card, sold on the marketplace, since the card is no longer vaulted. Phygitals permanently retires the token of a claimed card.
There is no deadline to redeem. A card can stay vaulted in your Collection indefinitely at no storage cost, and you can ship it whenever you choose.
## Your shipping data
The personal details you enter to ship a card home (name, delivery address, contact information) are collected and processed by the provider operating the shipment: **Collector Crypt** for its cards, **Phygitals** for its cards. Jupiter never receives or stores this data: nothing is kept in Jupiter's databases or logs.
To ask what shipping data a provider holds about you, or to request its deletion, contact that provider: Collector Crypt through the chat widget at the bottom right of [collectorcrypt.com](https://collectorcrypt.com/), Phygitals through [phygitals.com/contact](https://www.phygitals.com/contact).
## Shipping support
The provider that ships a card is responsible for its shipping logistics and shipping support, including questions about delays, customs, and delivery issues.
* **Collector Crypt cards**: use the chat widget at the bottom right of the Collector Crypt app at [collectorcrypt.com](https://collectorcrypt.com/).
* **Phygitals cards**: use [phygitals.com/contact](https://www.phygitals.com/contact).
For anything else related to Jupiter Gacha, Jupiter support remains your contact point.
# Verifiable Randomness
Source: https://docs.jup.ag/user-docs/trade/gacha/verifiable-randomness
How Jupiter Gacha pack draws are made provably fair: Collector Crypt's on-chain verifiable randomness (VRF) on Solana, and Phygitals' commit-reveal scheme.
Every pack draw in Jupiter Gacha is made by a procedure that neither Jupiter nor the provider can steer after the fact, and that you can check yourself. The procedure depends on the pack's [provider](/user-docs/trade/gacha/providers): Collector Crypt packs run through an on-chain verifiable randomness function (VRF) on Solana, and Phygitals packs run through a cryptographic commit-reveal scheme.
## Why verifiable randomness matters
In a pack opening product, the operator could in principle manipulate which card a draw produces. A verifiable procedure removes that possibility:
* The random value that decides your pull is fixed by a commitment made before the draw, not chosen by a private server at draw time.
* The result comes with a cryptographic proof that the value was generated correctly and was not chosen or altered after the fact.
* Anyone with the proof can check it, without trusting Jupiter or the provider.
Combined with the fixed, displayed odds per rarity tier, this means both the probabilities and the individual draws are auditable.
## Collector Crypt packs: on-chain VRF
Draws on [Collector Crypt packs](/user-docs/trade/gacha/providers#which-packs-come-from-which-provider) run through Collector Crypt's verifiable randomness function, implemented as an on-chain program on Solana. The random value is generated by the program, the proof is recorded on Solana, and anyone can check it on-chain.
Each of these openings has an associated on-chain transaction and randomness proof. To verify a draw, open [Collection](/user-docs/trade/gacha/collection), go to the Activity tab, select one of your openings, and click Verify to see the randomness proof and the related on-chain details for that draw.
For technical details on the VRF implementation, refer to [cc-vrf](https://vrf.collectorcrypt.com/), Collector Crypt's permissionless on-chain VRF for Solana implementing RFC 9381 ECVRF.
## Phygitals packs: commit-reveal
Draws on [Phygitals packs](/user-docs/trade/gacha/providers#which-packs-come-from-which-provider) run through Phygitals' commit-reveal scheme, documented on its [provable fairness page](https://docs.phygitals.com/platform-features/provable-fairness):
1. **Commit.** Before the pack is opened, Phygitals' server generates a secret seed and publishes its SHA-256 hash.
2. **Reveal.** When you open the pack, a client seed unique to you and the transaction is combined with the server seed by a publicly disclosed algorithm to determine which card you receive.
3. **Verify.** Phygitals then discloses the server seed, so that anyone can hash it, compare the hash with the published commitment, and replay the algorithm to confirm the outcome.
Because the commitment is made before the client seed exists, neither side can steer the result. This procedure is cryptographic rather than on-chain: the proof is a hash and an algorithm, not a Solana transaction.
Jupiter Gacha does not display the seeds or the hash of a Phygitals draw, and there is no Verify action for these pulls in your Activity tab. Phygitals publishes the proofs of pack openings to the Phygitals account that made them. For a Phygitals pack opened on Jupiter Gacha, the fairness guarantee therefore rests on Phygitals' published procedure rather than on a proof you can check yourself.
## What the guarantees do not cover
Both procedures guarantee that each draw is random and tamper-proof within the displayed odds. They do not change the odds themselves: on most packs, the majority of pulls fall in the lowest rarity tier, as shown in each pack's odds table. Provable fairness means the game is fair, not that it is profitable.
# Beta Markets
Source: https://docs.jup.ag/user-docs/trade/perps/beta-markets
Jupiter Perps Beta markets, powered by GUM: JUP, HYPE, ZEC and stock perps on USDC collateral, with hourly funding, taker and maker fees, one net position.
Beta markets are the perpetual markets Jupiter Perps offers beyond SOL, ETH, and wBTC. They are powered by GUM, an orderbook trading engine, rather than by the JLP pool, and they follow different rules: USDC collateral, a funding rate instead of a borrow fee, taker and maker fees, and one net position per market. On jup.ag they carry a **Beta** badge in the market selector, whose details read *Orderbook perpetuals powered by GUM* and link to this page; the SOL, ETH, and wBTC markets carry a **JLP** badge described as *Perpetuals priced by oracles, with liquidity from the JLP pool*. Beta markets are not available in the Jupiter Mobile app, whose Perps tab offers SOL, ETH, and wBTC only. This page covers those differences. Everything not mentioned here works as described on the other Perps pages.
Beta markets are in early release with limited features: take profit and stop loss orders are not available, position and order sizes are capped, and leverage limits vary by market. The Beta badge next to a market opens this list on jup.ag. In the trade form, the **Take Profit / Stop Loss** box stays disabled and its info icon reads *"Take Profit / Stop Loss is not available for \[market]."*
## Who can trade Beta markets
Beta markets are in early access for JUP stakers. Eligibility is measured on the JUP actively staked by your connected wallet on [vote.jup.ag](https://vote.jup.ag/).
Until that stake reaches the required amount, the trade button on every Beta market is replaced by a link reading **Stake 69 JUP for early access**, which opens vote.jup.ag so you can stake first. The amount, 69 JUP, is the same on all six markets and is shown on the button itself; it can change, and the button prevails. The check runs again when you submit an order, so unstaking below the threshold blocks new trades.
Staking is not needed for the SOL, ETH, and wBTC markets.
## Available markets
| Market | Category | Maximum leverage |
| - | - | - |
| JUP | Crypto | 10x |
| HYPE | Crypto | 20x |
| ZEC | Crypto | 20x |
| SPCX (SpaceX) | Stock | 20x |
| SNDK (SanDisk) | Stock | 20x |
| SKHYNIX (SK hynix) | Stock | 20x |
Collateral is USDC on every Beta market, for longs and shorts alike. The market selector groups markets under the tabs All, Favourite, Crypto, and Stock, and the star next to a market adds it to your favourites. Each Beta market shows its maximum leverage as a badge. The values above are the launch settings and can be adjusted by the trading engine, so the badge in the app prevails.
The market header shows the **Mark Price**, the fair value the engine calculates for the contract and uses for liquidations. The chart follows the last traded price, so the two can differ briefly, especially on thin markets or, for stock markets, while the underlying exchange is closed. **Open Interest** counts the long and short sides together.
### Stock markets
SPCX, SNDK, and SKHYNIX are perpetual markets on the price of a stock: SpaceX, SanDisk, and SK hynix. Their price comes from a Chainlink oracle. They trade around the clock, seven days a week, including while the underlying stock exchange is closed, and there are no trading halts. A position gives you exposure to the reference price only: it carries no shares, dividends, or voting rights.
## How Beta markets differ from JLP markets
| | SOL, ETH, wBTC (JLP markets) | Beta markets |
| - | - | - |
| Counterparty | The JLP pool | GUM's orderbook trading engine |
| Collateral | The traded asset (long) or USDC (short) | USDC, for longs and shorts |
| Cost of holding | Hourly borrow fee, deducted from collateral | Funding between longs and shorts, applied hourly |
| Trading fees | Base fee and price impact fee | Taker fee (market orders) or maker fee (limit orders) |
| Positions | Up to one long and one short per asset, same-side trades merge | One net position per market |
| Take profit / stop loss | Available | Not available |
| Leverage | 1.1x to 250x | 1.1x to the market's own maximum |
| Liquidation trigger | Oracle price reaches the liquidation price | Mark price reaches the liquidation price |
| After a liquidation | All remaining collateral goes to the JLP pool | Remaining collateral, minus the liquidation fee, is returned to you |
| Header statistics | Available liquidity and borrow rate | Open interest, funding rate and countdown, and the **Position Cap** your account has left |
## Funding rate and countdown
Beta markets charge a funding rate instead of a borrow fee. Funding accrues while your position is open and is applied to it every hour, on the hour (UTC). The rate displayed is the one-hour rate, and each payment is calculated on your position value at the time it is applied. Funding keeps the perpetual price aligned with the underlying market.
* A positive rate means longs pay shorts.
* A negative rate means shorts pay longs.
The market header and the trade form show the current one-hour rate under **Funding (1H)**, and the **Countdown** next to it is the time until the next hourly payment, in minutes and seconds. Hover the rate to see the eight-hour and annualised equivalents: both are simple multiples of the current one-hour rate, not forecasts. Funding accrued on an open position appears as **Funding Accrued** when you edit its collateral, and past payments are listed under **Funding History**.
## Fees
Beta markets charge a fee on every order, shown in the trade form and in the close form as an approximate USD amount before you confirm.
| Fee | Rate |
| - | - |
| Maker fee | 0.005% of the order value (0.5 bps), on limit orders that rest on the book |
| Taker fee | 0.035% of the order value (3.5 bps), on market orders and on limit orders that execute immediately |
| Liquidation fee | 0.75% of the position value on the crypto markets (JUP, HYPE, ZEC); 1% on the stock markets (SPCX, SNDK, SKHYNIX) |
The form labels the fee **Taker Fee** on market orders and **Maker Fee** on limit orders. That label is a prediction: a limit order whose price already crosses the market executes immediately and pays the taker fee. The fee actually charged follows how the order filled.
There is no base fee, no price impact fee, and no borrow fee on Beta markets. Solana network fees apply to the transactions you sign. The rates above are set by the trading engine and can be adjusted; the form always shows the current order fee.
## Opening a position
Pick the market in the selector. The badge shows its maximum leverage.
Collateral is USDC only, at least \$10; the token selector is locked. Leverage runs from 1.1x to the market's maximum.
The form shows the entry price, the estimated liquidation price, the estimated order leverage, your slippage setting, and the taker or maker fee. The estimated order leverage can come out below the preset you picked, because the order is sized against the liquidity available within your slippage: at 20x on a thin market, the executed leverage may land nearer 19x. If the order is outside the market's limits, the form says so: minimum order size, minimum order value, maximum order size, or a limit price outside the allowed range.
Approve the transaction in your wallet. The order goes to the trading engine, and the app confirms once it has been processed.
If the confirmation does not come back within a few seconds, the app checks your open orders, order history, and positions for up to two minutes. If the outcome is still unknown, it shows **Transaction Timed Out** with a **Refresh page** action. Orders are never resubmitted automatically: check your positions and open orders before placing the order again.
### How orders execute
| Order | What happens |
| - | - |
| Market order to open | Executes immediately against the orderbook, within your slippage setting. The part the book cannot fill at that price is cancelled rather than left waiting. |
| Limit order to open | Rests on the book until it fills or you cancel it. It has no expiry. |
| Market order closing the whole position | All or nothing: if the entire position cannot be closed within your slippage, nothing is closed and the position stays open. |
| Market order closing part of a position | Can fill partially. Check the remaining size afterwards. |
| Limit order to close | Only ever reduces the position, and waits for its price. It is not a stop loss. |
Submitting an order is not the same as filling it. A partial fill leaves you with a smaller position than requested, and a failed full close leaves the position open. Read the position size and the open orders after every market order.
### One net position per market
A Beta market holds a single net position. Opening a trade in the opposite direction to your existing position does not create a second position: it reduces the position, closes it if the sizes match, or reverses it if the new trade is larger. Trades in the same direction increase the position. Positions on Beta markets are isolated: each has its own collateral, and the leverage shown on the position is its value divided by that collateral.
### When only limit orders are available
If the trading engine flags a market as unhealthy, the app switches that market to limit orders only. The trade form disables Market, moves you to Limit, pre-fills the current mark price, and shows *"Market orders are temporarily unavailable for \[market]. Only limit orders are available."* On an open position, the Close form does the same, Quick Close is disabled with *"Quick close is unavailable for \[market]. Use Close and select Limit."*, and Close All is disabled for your whole account while any of your positions sits on such a market. A limit close waits for its price to be reached: it is not a stop loss and does not protect the position from liquidation.
## Closing a position
Open the position and choose **Close**. You can close at market or with a limit order, pick the **Close Size** with percentage shortcuts, and the form shows the estimated PnL, the fee, and the USDC you receive. A limit close appears under Open Orders until its price is reached. Quick Close, the lightning icon next to Close, closes the whole position at market with a built-in price protection.
The History tab lists individual orders and fills, and Funding History lists funding payments; there is no per-position profit summary, since a position can be reduced, reversed, or rebuilt over time. If the USDC from a close does not show in your wallet right away, allow a few minutes and check History before acting again.
## Adding or withdrawing collateral
Open the position and choose **Collateral** to deposit or withdraw USDC. Each deposit is at least 5 USDC. The editor shows the resulting leverage and liquidation price, the collateral after the change, and the funding accrued so far. Withdrawals are capped slightly below your free collateral so the position keeps a safety margin.
## Liquidation
A Beta market position is liquidated when the mark price reaches its liquidation price, that is when its collateral no longer covers the maintenance margin: 2.5% of the position value on most markets, 5% on JUP. A liquidation fee applies: 0.75% of the position value on JUP, HYPE, and ZEC, and 1% on SPCX, SNDK, and SKHYNIX. Whatever collateral remains after the loss and the fee is returned to you.
This differs from the JLP markets, where all remaining collateral goes to the pool. The liquidation price shown in the trade form and on the position is an estimate. In your History, a position closed by the engine rather than by you is labelled Liquidation. There is no auto-deleveraging on Beta markets at launch.
## Beta market limits
| Limit | Value at launch |
| - | - |
| Take profit and stop loss | Not available on Beta markets |
| Position value per account and market | \$50,000; \$10,000 on JUP. Shown in the market header and above the trade form as **Position Cap**: the room your account has left, not the depth of the orderbook (the JLP markets keep their **Available Liq.** label) |
| Open interest per market | \$5,000,000; \$1,000,000 on JUP |
| Minimum order value | \$5 on every market |
| Maximum order value | Set per market, lower for market orders than for limit orders. On SPCX, a single market order can be worth up to \$5,000 and a limit order up to \$25,000 |
| Leverage | Maximum set per market and shown as a badge in the selector |
The form tells you which limit an order exceeds. All caps above are launch values that the trading engine can adjust.
Before you sign, the form re-checks the order against your account's remaining capacity, its margin needs and the live orderbook. If the quote has gone stale or the book no longer holds enough liquidity to fill the whole order, it asks you to refresh instead of resizing the order silently. When an increase must also cover a margin shortfall on the existing position, the market order is sent fill-or-kill (it fills entirely or is cancelled), and the same increase as a limit order requires adding collateral first.
# Jupiter Perps FAQ
Source: https://docs.jup.ag/user-docs/trade/perps/faq
Frequently asked questions about Jupiter Perps: positions, collateral, fees, liquidation, order behavior, and chart tools and settings.
For JLP-related questions (yield, loans, delta-neutral vault), see the [JLP FAQ](/user-docs/earn/jlp/faq).
***
## Positions & Collateral
Beta markets are in early access for JUP stakers, measured on the JUP actively staked by your connected wallet on vote.jup.ag. Until that stake reaches the required amount, the trade button reads **Stake 69 JUP for early access** and opens [vote.jup.ag](https://vote.jup.ag/). The amount, 69 JUP, is the same on every Beta market and shown on the button, which prevails if it changes. SOL, ETH, and wBTC do not require staking. See [Beta Markets](/user-docs/trade/perps/beta-markets#who-can-trade-beta-markets).
No. Beta markets are only available on jup.ag. The Perps tab of the Jupiter Mobile app offers the JLP markets (SOL, ETH, wBTC) only. See [Perps on Mobile](/user-docs/global/mobile/swaps-and-orders#perps-on-mobile).
On Beta markets a market order executes against the orderbook within your slippage setting. If the book cannot fill all of it at that price, the unfilled part is cancelled rather than left waiting, so your position ends up smaller than requested. Check the position size after execution. Closing a whole position at market works the other way: it is all or nothing. See [How orders execute](/user-docs/trade/perps/beta-markets#how-orders-execute).
The trading engine has flagged that market as unhealthy, so the app accepts limit orders only. Market, Quick Close, and Close All are disabled until the market recovers; the form switches to Limit and pre-fills the mark price. A limit close waits for its price and does not protect you from liquidation. See [When only limit orders are available](/user-docs/trade/perps/beta-markets#when-only-limit-orders-are-available).
Settlement is usually quick, but testers have seen it take several minutes. Check the **History** tab to confirm the close filled, then allow a few minutes before acting again. If the funds still have not arrived, contact support with the close time and the market.
**Beta** marks the [Beta markets](/user-docs/trade/perps/beta-markets): JUP, HYPE, ZEC, and the tokenised stocks. They are powered by GUM, an orderbook trading engine, with USDC collateral, an hourly funding rate, taker and maker fees, and one net position per market, and they are in early release: no take profit or stop loss, capped position and order sizes, and leverage limits that vary by market. **JLP** marks SOL, ETH, and wBTC, the markets priced by oracles and backed by the JLP pool, which the rest of the Perps pages describe.
On Beta markets, funding is applied every hour, on the hour (UTC), between longs and shorts. **Funding (1H)** is the current hourly rate, and **Countdown** is the time left until the next payment, in minutes and seconds. A positive rate means longs pay shorts, a negative rate means shorts pay longs. See [Funding rate and countdown](/user-docs/trade/perps/beta-markets#funding-rate-and-countdown).
Take profit and stop loss orders are not available on Beta markets yet. They remain available on SOL, ETH, and wBTC.
Beta markets hold one net position per market. A trade in the opposite direction reduces your existing position, closes it if the sizes match, or reverses it if the new trade is larger. To hold a long and a short on the same asset at once, use the JLP markets (SOL, ETH, wBTC), where each side is a separate position. See [One net position per market](/user-docs/trade/perps/beta-markets#one-net-position-per-market).
Jupiter Perps offers leveraged long and short positions on nine markets. SOL, ETH, and wBTC trade against the JLP pool, with up to 6 simultaneous positions, one per asset per direction. The six [Beta markets](/user-docs/trade/perps/beta-markets), JUP, HYPE, ZEC, SPCX, SNDK, and SKHYNIX, are powered by GUM with USDC collateral and hold one net position per market.
You can use any SPL token supported by Jupiter Swap as your input when opening a position or depositing collateral. The exchange automatically swaps it to the correct underlying collateral token before the position is opened. You do not need to swap manually beforehand.
Long positions use the underlying asset as collateral (SOL for SOL longs, wETH for ETH longs, wBTC for wBTC longs). Short positions use USDC as collateral regardless of the shorted asset.
This design protects the pool from scenarios where a series of profitable trades could deplete its reserves.
When you deposit collateral, the exchange records its value in USD at the time of deposit. That USD value remains fixed for the lifetime of the position, regardless of subsequent price movements in the collateral token.
**Example:** Depositing \$100 worth of SOL records your collateral as \$100 USD. If SOL price later moves 50% in either direction, your recorded collateral size for this position remains \$100.
Jupiter Perps allows only one position per asset per side. If you open a new position on the same asset and direction as an existing one, both are automatically merged into a single position.
After the merge:
* The combined leverage is the average of both positions' leverage
* The combined size equals the total collateral multiplied by the combined leverage
* Any existing TP/SL orders are preserved
For long positions, profits are paid in the underlying token (e.g. SOL for a SOL long). The USD profit is converted to tokens at the price at the time of closing, not at your entry price.
**Example:** A SOL long closed with a total value of \$150 when SOL = \$110 returns `\$150 / \$110 = 1.3636 SOL`.
The PnL shown on the interface is before fees. The exact net amount is shown under the Deposit/Withdraw tab.
When you increase an existing position, the new average entry price reflects the unrealized PnL of the original position — not a simple average of the two entry prices.
**Adding to a profitable long:** Your effective cost basis improves (average entry is lower than the simple average) because the existing profits reduce the effective cost of the combined position.
**Adding to a losing long:** Your effective cost basis worsens (average entry is higher than the simple average) because the existing losses increase the effective cost of the combined position.
The same logic applies in reverse for short positions.
Yes. From the Positions tab, you can choose to close a position partially or fully. When reducing position size partially, the collateral is adjusted proportionally to maintain the same leverage ratio.
It is **Quick Close**: one click sends an order to close the whole position at the current price, with USDC as the output token. A confirmation dialog appears the first time, with a **Don't show again** option; after that, the position closes immediately on click. For a partial close or a different output token, use **Close**. See [Quick Close](/user-docs/trade/perps/positions-and-collateral#quick-close).
On the JLP markets (SOL, ETH, wBTC), Jupiter Perps uses a request fulfillment model. The first transaction submits your trade request to the Solana blockchain. A second transaction is then executed by a keeper — an automated offchain service run by Jupiter — that validates and fulfills the request. The trade is only live once the keeper's transaction is confirmed. On [Beta markets](/user-docs/trade/perps/beta-markets#opening-a-position), you sign a single transaction and the GUM engine confirms the order.
There is no minimum position size, but a position needs at least **10 USD of collateral** and a leverage of at least **1.1x**. Below either threshold the trade button shows the blocking reason, for example "Minimum 10 USD collateral", instead of submitting. Keep a little SOL in the wallet as well: the interface recommends 0.03 SOL to cover the transaction fees of the request and its fulfilment.
Closed position details, including realised PnL and fees paid, can be viewed in the **History** tab of the Jupiter Perps interface, next to **Positions** and **Open Orders** below the chart. For a complete onchain record of all transactions, you can also look up your wallet address on a Solana block explorer such as [Solscan](https://solscan.io).
Yes. Open the **History** tab below the chart and click **Export Trades**, at the right of the tab bar. The button needs a connected wallet and builds a CSV of every trade made by that wallet on Perps, JLP and Beta markets together, not only the rows currently displayed, then saves it to your Downloads folder. The export is available on the desktop layout only; on a phone, use the desktop site or look up your wallet on a Solana explorer such as [Solscan](https://solscan.io).
The first time you open a position on Jupiter Perps, an "Acknowledge Terms and Conditions" prompt confirms that you understand how Perps works and accept its risks (including liquidation, network congestion, and limit order behaviour). This prompt appears once and can be skipped on future trades via the "Do not show again" checkbox.
The Leaderboard displays the top traders on Jupiter Perps by trading volume, broken down by asset (WBTC, ETH, SOL) and time period. You can find it from the trade page using the **Leaderboard** button at the top.
The Leaderboard is informational only. It does not award rewards or imply endorsement of any trading strategy. Ranking reflects trading volume, not profitability.
***
## Chart
On Beta markets the header shows the **Mark Price**, the fair value the trading engine calculates for the contract and uses for liquidations, while the chart follows the last traded price. On a thin market, or on a stock market while the underlying exchange is closed, the two can drift apart for a moment. Liquidation always follows the mark price. See [Beta Markets](/user-docs/trade/perps/beta-markets#available-markets).
The Perps chart has no **Display Options** menu (that is a Spot token-page feature). It has two kinds of overlays, each with its own switch:
* **Lines** for your open positions: entry (`SOL-long`, `SOL-short`), liquidation, take profit, and stop loss. Untick **Positions on chart** in the bar under the chart, next to **Close All**, to hide them without cancelling anything. The × on a TP or SL line does something different: it cancels that order.
* **Green and red circles** under the candles (B, S, L) marking your past buys, sells, and liquidations on that market. Right-click the chart and choose **Hide marks on bars**; the same item shows them again.
Both choices are saved in your browser. See [Positions on the Chart](/user-docs/trade/perps/positions-and-collateral#positions-on-the-chart).
They are your own past trades on that market: green **B** circles for buys, red **S** for sells and **L** for liquidations, grouped per candle (hover one for size and average price). To hide them, right-click the chart and choose **Hide marks on bars**; the setting is saved in your browser and the same item brings them back. See [Past trades on the chart](/user-docs/trade/perps/positions-and-collateral#past-trades-on-the-chart).
On a phone, it depends on where you trade. On jup.ag in a phone browser, the chart is the same but the menu needs a right-click: a long press on the chart opens the crosshair instead, so the marks stay. The Jupiter Mobile app does not draw past trades on its Perps chart, so there is nothing to hide; the **\$** icon that shows or hides your trades on the app's token chart exists for Spot only.
In a toolbar on the left edge of the chart, collapsed by default. Click the small handle halfway down the left edge of the chart to open it. The second button from the top, Trend line tools, holds Trend Line, Ray, Info Line, Extended Line, Trend Angle, Horizontal Line, Horizontal Ray, Vertical Line and Cross Line, plus Parallel Channel and Regression Trend; the other buttons cover Fibonacci tools, patterns, brushes, text, shapes, the measure tool, zoom and the magnet. Pick a tool, then click on the chart to place its points. The toolbar also has buttons to hide, lock or remove all drawings, and the arrow at its right edge collapses it again. The magnifier at the right of the chart header, **Search tool or function**, finds any drawing tool, indicator or setting by name. Drawings are saved in your browser with the rest of the chart state.
It depends on what you want back:
* Zoom and scroll: right-click an empty area of the chart and choose **Reset chart view** (⌥R on Mac, Alt+R on Windows). The entry appears once the view has been moved.
* Indicators and drawings: the same right-click menu has **Remove indicators** and **Remove drawings**.
* Colours, scales and other settings: open **Chart settings** with the gear in the chart header, then choose **Apply defaults** from the menu at the bottom left of the dialog (**•••**, or **Template** on a wide window).
* Price scale on the left instead of the right: right-click the price scale and choose **Move scale to right**. **Apply defaults** does not move it back.
The chart state is saved in your browser, so a reset only changes the chart there. Your positions, orders and the **Positions on chart** toggle are not affected.
The chart cannot be dragged vertically while its price scale is in Auto mode, which fits the visible candles to the screen. Turn Auto off by dragging the price scale on the right of the chart, by clicking the **A** button at the bottom of that scale, or by unticking **Auto (fits data to screen)** in the scale's menu (the icon at the bottom of the price scale). You can then drag the chart up and down; **Reset price scale** (⌥R on Mac, Alt+R on Windows) or **Auto** brings the automatic framing back. There is no previous chart version to switch to: Jupiter Perps uses one TradingView chart, updated with the app.
It depends on where you trade:
* **jup.ag on a computer**: yes. Right-click the candles and choose **Hide**. To show them again, switch to another market and come back: see the next question.
* **jup.ag in a phone browser** (or a browser window narrower than a tablet): yes. Tap **Trade** at the bottom of the screen to replace the chart with the order form; the Positions, Open Orders and History tabs stay below it. Tap **Chart** to bring the chart back. The choice is saved in your browser.
* **Jupiter Mobile app**: no, the Perps tab always shows the chart above your positions.
They were hidden with **Hide**, in the menu that opens when you right-click the candles. The Perps chart has no menu to show them again: switch to another market, then return to the first one, and the candles are back. Reloading the page does not bring them back, because the chart state is saved in your browser.
***
## Fees & Costs
SOL, ETH, and wBTC trade against the JLP pool and charge an hourly borrow fee. Beta markets trade on an orderbook engine and charge an hourly funding rate paid between longs and shorts instead, plus a taker fee on market orders or a maker fee on limit orders. There is no base fee or price impact fee on Beta markets. See [Beta Markets](/user-docs/trade/perps/beta-markets#fees).
On the JLP markets (SOL, ETH, wBTC), the main fees to account for are:
* **Base fee:** 0.06% of trade size, charged on open and close
* **Price impact fee:** Scales with trade size and open interest imbalance
* **Borrow fee:** Charged hourly on the borrowed portion of the position, for as long as the position is open
* **Transaction fee:** SOL network fee per transaction, plus optional priority fees
* **Swap fee:** Applies if your input token needs to be swapped to the correct collateral token
A small SOL rent amount is also charged for the request accounts created by each action, and refunded once the request is executed or rejected. See the [Fees](/user-docs/trade/perps/fees) page for full details and formulas.
They are rent refunds. Every action sent to Jupiter Perps (opening, closing, adding or removing collateral) creates a request account and its token account, each holding a little SOL as rent. When the keeper executes or rejects the request, both accounts are closed and their rent returns to your wallet as small transfers, about 0.002 SOL each. Closing several positions produces several of them. A refund means the request has been processed, not that it was delayed: check the **History** tab to confirm the close filled, since a rejected request also refunds its rent while the position stays open. See [Fees](/user-docs/trade/perps/fees#transaction-and-priority-fees).
Jupiter Perps executes trades at oracle prices, meaning you get the displayed price regardless of trade size. This eliminates orderbook slippage but creates a risk for JLP holders: large trades could be exploited by moving prices on external exchanges and opening positions on Jupiter to profit from the difference.
The price impact fee simulates the slippage that would occur on a traditional orderbook exchange. It scales with trade size (linear component) and increases further when the open interest imbalance between longs and shorts exceeds a threshold (additive component). See the [Fees](/user-docs/trade/perps/fees#price-impact-fee) page for full details.
Borrow fees accrue hourly and are deducted directly from your collateral for as long as the position is open. The rate depends on the asset's current utilization — the higher the proportion of pool tokens locked in open positions, the higher the borrow rate.
You can find the current hourly borrow rate for each asset in the Borrow Rate section of the trade form. See the [Fees](/user-docs/trade/perps/fees#borrow-fee) page for the full formula.
Token prices are sourced from onchain price oracles (Edge by Chaos Labs as primary, Chainlink and Pyth as verification and fallback). These oracle prices are used as the mark price for all operations: opening and closing positions, adjusting size, depositing or withdrawing collateral, calculating PnL, calculating liquidation prices, and triggering TP/SL orders.
Price data used in Jupiter Perps may differ from prices shown on other onchain or offchain aggregators. The Jupiter Perps price chart is the reference to use when making trade decisions.
***
## Liquidation & Risk
On the JLP markets (SOL, ETH, wBTC), a PnL call occurs when your unrealized losses reduce your effective margin below the maintenance margin threshold. When this happens, you are prompted to deposit additional collateral to bring the position back above the minimum margin requirement. If no collateral is added and losses continue, the position will be liquidated. Beta markets have no PnL call: a position is liquidated once the mark price reaches its liquidation price, see [Liquidation on Beta markets](/user-docs/trade/perps/beta-markets#liquidation).
On the JLP markets (SOL, ETH, wBTC), liquidation is triggered when the oracle price reaches the position's liquidation price. The position is automatically closed by the protocol and **all remaining collateral is transferred to the JLP** as a liquidation fee. You will not receive any portion of your collateral back.
On [Beta markets](/user-docs/trade/perps/beta-markets#liquidation), the trigger is the mark price, a liquidation fee of 0.75% to 1% of the position value applies depending on the market, and whatever collateral remains is returned to you.
To reduce liquidation risk: deposit additional collateral, reduce leverage, or set a stop loss order to close the position before the liquidation price is reached.
Borrow fees are deducted from your collateral on an hourly basis. As your effective collateral decreases, the liquidation price moves closer to the current market price — even without any price movement or manual position changes.
This effect is most significant at leverage above 10x and for positions held over extended periods. Regularly monitoring your liquidation price is essential.
The maximum leverage available when opening a position is **250x** for SOL, ETH, and wBTC. The leverage slider ranges from 1.1x to 250x. On [Beta markets](/user-docs/trade/perps/beta-markets#available-markets) the cap is set per market and shown as a badge in the selector: 20x at launch, 10x on JUP.
Note: The liquidation price formula uses an internal protocol limit of 500x to define the minimum maintenance margin threshold. This is a separate parameter and does not affect the leverage available to traders.
Limit orders are independent from open positions. They remain active after a liquidation event and will continue to monitor the oracle price. If the target price is reached after the liquidation, the limit order will open a new position.
Not reliably. Jupiter Perps does not enforce FIFO (First-in, First-out) execution ordering. If a limit order and a liquidation transaction are submitted to the network at the same time, whichever is processed first by Solana will execute. The outcome cannot be guaranteed. Do not rely on a limit order as a liquidation prevention mechanism.
On the JLP markets (SOL, ETH, wBTC), limit orders cannot be created when the selected market's utilization exceeds 80%. This is a protocol-level restriction to protect pool liquidity under high demand. Wait for utilization to decrease or use a market order instead. Beta markets work the other way round: when the engine flags a market as unhealthy, only limit orders are accepted, see [When only limit orders are available](/user-docs/trade/perps/beta-markets#when-only-limit-orders-are-available).
# Jupiter Perps Fees
Source: https://docs.jup.ag/user-docs/trade/perps/fees
All fees charged on Jupiter Perps: base fee, price impact fee (linear and additive), borrow fee, swap fee, JLP mint/burn fee, and transaction fees.
This page covers every fee type charged on the JLP markets of Jupiter Perps (SOL, ETH, wBTC), including when each fee applies, how it is calculated, and worked examples. [Beta markets](/user-docs/trade/perps/beta-markets#fees) charge a taker or maker fee per order and an hourly funding rate instead of the base, price impact, and borrow fees below.
## Fee Summary
| Fee Type | When Charged | Rate |
| - | - | - |
| Base fee | Open and close | 0.06% of trade size |
| Price impact fee (linear) | Open and close | Scales with trade size |
| Price impact fee (additive) | Open and close | Applies when OI imbalance exceeds threshold |
| Borrow fee | Continuously while position is open | Hourly, based on utilization and position size |
| Swap fee | When a token swap is needed | 10 BPS (non-stables), 2 BPS (stables), adjusted by weightage |
| JLP mint/burn fee | When minting or redeeming JLP | Same weightage-based calculation as swap fee |
| Transaction fee | On every transaction | SOL network fee + optional priority fee / Jito tip |
| Liquidation penalty | On liquidation | All remaining collateral |
The JLP mint/burn fee applies when interacting with the JLP pool directly (minting or redeeming JLP). It is included here because it shares the same weightage-based mechanism as the Perps swap fee. Full JLP details: [JLP Earn](/user-docs/earn/jlp/earn).
***
## When Do You Pay Fees?
Fees are charged at three different moments in the life of a position. This summary covers what you can expect at each stage. Each fee is documented in detail in its own section below.
**Opening a position:**
* Base fee (0.06% of trade size)
* Price impact fee (scales with trade size and open interest imbalance)
* Swap fee (only if your input token differs from the position's underlying collateral token)
* SOL transaction fee (network fee + optional priority fee or Jito tip)
* SOL rent for the position's escrow account (returned when the position is closed)
**While the position is open:**
* Borrow fee, charged hourly and deducted from your collateral, for as long as the position is open
**Closing a position:**
* Base fee (0.06% of trade size)
* Price impact fee
* Swap fee (only if you choose to receive profits in a token different from the underlying collateral token)
* SOL transaction fee
If a position is liquidated instead of closed manually, all remaining collateral is forfeited to the JLP. See the [Liquidation Penalty](#liquidation-penalty) section.
***
## Fees in the Trade Interface
The trade form on Jupiter Perps shows a live breakdown of all fees before you confirm a position. The values are calculated in real time based on the current market conditions and your selected size, leverage, and collateral.
| Field | What it represents |
| - | - |
| **Entry Price** | The oracle price at which the position would open |
| **Liquidation Price** | The price at which the position would be liquidated (estimate) |
| **Slippage** | Your configured slippage tolerance (default 1%, adjustable in Settings) |
| **Open Fee (0.06%)** | The base fee charged to open the position |
| **Price Impact** | The price impact fee for the trade size and current OI imbalance |
| **Borrow Fees Due** | Borrow fees already accumulated (0 at opening, increases hourly while the position is open) |
| **Transaction Fee** | SOL network fee + any optional priority fee or Jito tip |
| **Account Rent** | SOL rent required to create the position's escrow account (returned when the position is closed) |
Use the breakdown to verify the total cost before submitting a trade. The Borrow Fees Due field updates continuously once the position is open, accessible from the Positions tab.
***
## Base Fee
A flat fee of **0.06%** is charged on the trade size when opening or closing a position.
The base fee applies to:
* Opening a position (market or limit order)
* Closing a position (manual, TP/SL, or liquidation)
**Example:**
* Trade size: \$10,000
* Base fee: \$10,000 x 0.06% = **\$6**
```typescript theme={null}
const BPS_POWER = 10 ** 4; // 10_000
// Use 'increasePositionBps' for opening, 'decreasePositionBps' for closing
const baseFeeBps = custody.increasePositionBps;
const baseFeeBpsDecimals = baseFeeBps / BPS_POWER;
const openCloseFeeUsd = tradeSizeUsd * baseFeeBpsDecimals;
```
***
## Price Impact Fee
Jupiter Perps executes trades at oracle prices, which means traders receive the displayed price regardless of trade size (no orderbook slippage). To compensate for the risk this creates for JLP holders, a **price impact fee** is charged to simulate the price impact that would occur on a traditional orderbook exchange.
The price impact fee has two components that are summed and capped at a per-asset maximum.
***
### Linear Price Impact Fee
The linear component scales proportionally with trade size. Each asset has a fixed scalar constant (`pricing.tradeImpactFeeScalar`) stored in its custody account.
**Formula:**
```
Linear Fee Coefficient = Trade Size / Price Impact Fee Scalar Constant
Final Linear Fee = Trade Size × Linear Fee Coefficient
```
The `tradeImpactFeeScalar` value in the custody account is stored in BPS format. Divide by 10,000 to use against USD trade sizes.
**Custody accounts (for scalar values):**
* SOL: [7xS2gz2bTp3fwCC7knJvUWTEU9Tycczu6VhJYKgi1wdz](https://solscan.io/account/7xS2gz2bTp3fwCC7knJvUWTEU9Tycczu6VhJYKgi1wdz#accountData)
* BTC: [5Pv3gM9JrFFH883SWAhvJC9RPYmo8UNxuFtv5bMMALkm](https://solscan.io/account/5Pv3gM9JrFFH883SWAhvJC9RPYmo8UNxuFtv5bMMALkm#accountData)
* ETH: [AQCGyheWPLeo6Qp9WpYS9m3Qj479t7R636N9ey1rEjEn](https://solscan.io/account/AQCGyheWPLeo6Qp9WpYS9m3Qj479t7R636N9ey1rEjEn#accountData)
**Example (SOL, at time of writing):**
| Step | Value |
| - | - |
| Trade size | \$10,000 |
| Scalar constant (raw) | 1,250,000,000,000,000 |
| Scalar (÷ 10,000) | 125,000,000,000 |
| Linear fee coefficient | 10,000 / 125,000,000,000 = 0.00000008 |
| **Linear fee** | 10,000 × 0.00000008 = **\$0.0008** |
```typescript theme={null}
const USDC_DECIMALS = 10 ** 6;
const BPS_POWER = 10 ** 4;
// 1. Get scalar from custody account
const scalar = custody.pricing.tradeImpactFeeScalar;
// 2. Convert trade size to base units
const sizeBase = tradeSizeUsd * USDC_DECIMALS;
// 3. Scale to BPS format
const sizeBps = sizeBase * BPS_POWER;
// 4. Fee rate in BPS
const feeBps = sizeBps / scalar;
// 5. Final fee in USD
const feeUsd = (sizeBase * feeBps / BPS_POWER) / USDC_DECIMALS;
```
Reference: [Chaos Labs initial proposal](https://discuss.jup.ag/t/jupiter-perpetuals-price-impact-fee-mechanism/17140)
***
### Additive Price Impact Fee
The additive component applies on top of the linear fee when the **open interest (OI) imbalance** — the difference between total long OI and total short OI for an asset — exceeds a predefined threshold.
Each asset has its own threshold (`priceImpactBuffer.deltaImbalanceThresholdDecimal`), `factor`, `exp`, and `maxPriceImpactFee` values stored in its custody account.
**Formula:**
```math theme={null}
Additive Penalty (BPS) = factor * (newImbalance / Threshold) ^ exp
Additive Penalty (USD) = Trade Size * (Additive Penalty (BPS) / 10000)
Final Price Impact Fee (USD) = min(Linear Fee (USD) + Additive Penalty (USD), Max Fee (USD))
```
If the imbalance is below the threshold, the additive penalty is zero.
**Example (SOL long, at time of writing):**
| Parameter | Value |
| - | - |
| Trade size | \$10,000 |
| New OI imbalance | \$2,000,000 |
| `tradeImpactFeeScalar` | 1,250,000,000 (USD terms) |
| `deltaImbalanceThreshold` | \$750,000 |
| `maxPriceImpactFee` | 50 BPS (0.50%) |
1. **Linear fee:** \$10,000 × 0.000000008 = \$0.00008
2. **Additive penalty:** The imbalance (\$2,000,000) exceeds the threshold (\$750,000), so the penalty formula applies using the SOL-specific `factor` and `exp` values.
3. **Final fee:** min(Linear Fee + Additive Penalty, \$10,000 × 0.50%) = min(..., **\$50**)
`factor` and `exp` are per-custody parameters defined onchain. The exact values can be read from the custody accounts linked above.
Reference implementation: [price-impact-fee.ts](https://github.com/julianfssen/jupiter-perps-anchor-idl-parsing/blob/main/src/examples/price-impact-fee.ts)
Additional references:
* [Price Impact Parameter Recommendations – June 2025](https://discuss.jup.ag/t/price-impact-parameter-recommendations-june-3rd-2025/38497)
* [Additive On-Imbalance Price Impact Model](https://discuss.jup.ag/t/additive-on-imbalance-price-impact-model/38562)
***
## Borrow Fee
Traders pay a **borrow fee** for the duration their leveraged position is open. This fee compensates liquidity providers for the capital locked in the position.
Borrow fees compound **hourly** and are deducted from the position's collateral.
### Formula
```math theme={null}
Hourly Borrow Fee = (Total Tokens Locked / Total Tokens in Pool) * Hourly Borrow Rate * Position Size (USD)
```
| Variable | Definition |
| - | - |
| Total Tokens Locked | All tokens locked across all open positions for this asset |
| Total Tokens in Pool | Total tokens deposited for this asset in the JLP |
| Hourly Borrow Rate | Per-asset rate, found in the trade form or via `fundingRateState.hourlyFundingBps` in the custody account |
| Position Size | USD value of the leveraged position |
```
// Utilization
IF custody.assets.owned > 0 AND custody.assets.locked > 0:
utilizationPct = custody.assets.locked / custody.assets.owned
ELSE:
utilizationPct = 0
// Hourly borrow rate
hourlyFundingDbps = custody.fundingRateState.hourlyFundingDbps
hourlyBorrowRate = (hourlyFundingDbps / 1000) * utilizationPct
```
### Worked Example
| Parameter | Value |
| - | - |
| SOL price | \$100 |
| Position size | 100 SOL (\$10,000) |
| Total tokens locked | 200 SOL |
| Total tokens in pool | 1,010 SOL |
| Utilization | 200 / 1,010 = 19.8% |
| Hourly borrow rate | 0.012% (0.00012) |
| **Hourly borrow fee** | (200 / 1,010) × 0.00012 × 10,000 = **\$0.238 / hour** |
Borrow fees are continuously deducted from your collateral. Over time, this reduces your effective margin and increases your liquidation price. Positions held for extended periods — especially at high leverage — require regular monitoring.
***
## Swap Fee
When a trade involves swapping between JLP-held assets (e.g. depositing SOL collateral to open a USDC-collateral short), a swap fee is charged.
**Base rates:**
* Non-stablecoin assets (SOL, ETH, wBTC): **10 BPS (0.10%)**
* Stablecoin assets (USDC, USDT): **2 BPS (0.02%)**
The final fee is adjusted based on how the swap affects each asset's **current weightage** relative to its **target weightage** in the JLP:
* Swaps that move an asset's current weightage **closer** to its target → fee decreases
* Swaps that move an asset's current weightage **further** from its target → fee increases
The pool uses the **maximum** of the input and output asset's fee when calculating the final swap fee.
**Example:** Swapping SOL → USDC: the SOL base fee (10 BPS) is used, as it is higher than the USDC base fee (2 BPS).
Reference implementation: [calculate-swap-amount-and-fee.ts](https://github.com/julianfssen/jupiter-perps-anchor-idl-parsing/blob/main/src/examples/calculate-swap-amount-and-fee.ts)
***
## JLP Mint & Burn Fee
Minting (depositing assets into the JLP) and burning (redeeming JLP for assets) use the same weightage-based fee calculation as swaps, since both actions change the pool composition.
For more on the JLP pool, mint and burn flows, and yield mechanics: [JLP Earn](/user-docs/earn/jlp/earn).
Reference implementation: [calculate-mint-burn-jlp.ts](https://github.com/julianfssen/jupiter-perps-anchor-idl-parsing/blob/main/src/examples/calculate-mint-burn-jlp.ts)
***
## Transaction and Priority Fees
* Traders pay a SOL network fee for each transaction submitted to Solana.
* Optional **priority fees** or **Jito bundle tips** can be set in the interface to improve transaction processing speed.
* A small SOL amount is used as **rent** for the request accounts created by every action sent to the program: opening, closing, adding or removing collateral. Each request creates a request account and its token account (about 0.002 SOL of rent for the latter). Both are closed as soon as the keeper executes or rejects the request, and their rent comes back to your wallet as separate small SOL transfers. Several actions therefore produce several refunds. The position account itself is reused and never closed, so it returns nothing.
The estimated transaction fee and rent amount (in SOL) are shown in the trade form before confirming.
***
## Liquidation Penalty
When a position is liquidated, **all remaining collateral** is collected by the protocol and distributed to the JLP.
You will lose your entire remaining collateral upon liquidation, not just the amount required to cover the loss. See the [Liquidation](/user-docs/trade/perps/liquidation) page for how to monitor and avoid liquidation.
# Jupiter Perps: Perpetual Futures on Solana
Source: https://docs.jup.ag/user-docs/trade/perps/index
How Jupiter Perps works: leveraged longs and shorts on SOL, ETH, and wBTC against the JLP pool, plus GUM-powered Beta markets with USDC collateral.
## What is Jupiter Perps?
Jupiter Perps is a perpetual futures exchange built on Solana. It operates as a **trader-to-LP model**: traders borrow assets from the Jupiter Liquidity Pool (JLP) to open leveraged positions, while liquidity providers earn a share of the fees generated by trading activity.
Positions are priced using onchain oracles, which means trades execute at the displayed price without orderbook slippage. A [price impact fee](/user-docs/trade/perps/fees#price-impact-fee) is applied instead to protect liquidity providers from large or imbalanced trades.
***
## Supported Markets
| Asset | Long Collateral | Short Collateral |
| - | - | - |
| SOL | SOL | USDC |
| ETH | wETH | USDC |
| wBTC | wBTC | USDC |
These three markets trade against the JLP pool and carry a **JLP** badge in the market selector on jup.ag. Traders can hold up to **6 simultaneous positions** on them: one per asset per side (long/short).
**Beta markets**, marked with a **Beta** badge in the selector, extend the lineup with USDC-collateralised markets powered by GUM, an orderbook trading engine:
| Market | Category |
| - | - |
| JUP, HYPE, ZEC | Crypto |
| SPCX, SNDK, SKHYNIX | Stock (tokenised stocks) |
Beta markets use an hourly funding rate instead of a borrow fee, taker and maker fees, one net position per market, and leverage limits set per market. See [Beta Markets](/user-docs/trade/perps/beta-markets).
***
## Key Parameters
For the JLP markets (SOL, ETH, wBTC). Beta markets set their own leverage limits and order caps: see [Beta Markets](/user-docs/trade/perps/beta-markets#beta-market-limits).
| Parameter | Value |
| - | - |
| Maximum leverage | 250x |
| Leverage range | 1.1x – 250x |
| Maximum positions | 6 (one per market/side) |
| Maximum limit orders | 20 per pair and side |
***
## How It Works
Deposits collateral and borrows the remainder of the position size from the JLP. Pays borrow fees, base fees, and price impact fees. Profits and losses are settled in the position's underlying collateral token.
Provides liquidity to the JLP. Earns 75% of all fees generated by trading, swaps, and JLP minting/burning. Exposed to trader PnL as the pool acts as counterparty.
### Execution Model
Every trade on a JLP market requires **two onchain transactions**:
1. The trader submits a trade request to the Solana blockchain.
2. A keeper (an automated offchain service run by Jupiter) detects the request, validates it, and executes the trade.
This request fulfillment model ensures all trades are processed automatically without manual intervention. See [Technical Reference](/user-docs/trade/perps/technical-reference#request-fulfillment-model) for details. Orders on Beta markets are signed in your wallet and processed by the market's trading engine instead; see [Beta Markets](/user-docs/trade/perps/beta-markets#opening-a-position).
### Price Oracles
Token prices are sourced from three independent oracles: **Edge by Chaos Labs** (primary), **Chainlink**, and **Pyth** (both used for verification and as fallback). Prices are updated during trade execution and by a dedicated keeper. See [Technical Reference](/user-docs/trade/perps/technical-reference#price-oracles) for the full oracle logic.
***
## Liquidity Comes from the JLP Pool
The liquidity for Jupiter Perps is provided by the **Jupiter Liquidity Provider (JLP) pool**. Traders borrow assets from this pool to open leveraged positions. In return, the pool earns 75% of all trading fees. JLP holders act as the counterparty to all trades, when traders profit, the pool pays out; when traders lose, those losses flow back into the pool.
This model means trading activity on Perps directly affects JLP holders, and JLP pool liquidity directly affects what traders can access.
JLP pool mechanics, yield, risks, and how to become a liquidity provider.
***
## Order Types
Opens a position immediately at the current oracle price. No price guarantee beyond the oracle price at the time of execution.
Opens a position when the oracle price reaches a specified target. Limit orders remain active until triggered or manually cancelled. They are independent from existing positions, if triggered, they will open a new position or increase an existing one on the same market and side.
Conditional close orders attached to an existing position. Automatically triggered when the oracle price reaches the specified level.
***
## Risks
**Trading perpetuals involves significant risk of loss.**
* Leveraged positions can be liquidated if collateral falls below the maintenance margin.
* Borrow fees accrue continuously and increase your liquidation price over time.
* Oracle prices may differ from prices on other venues.
* Smart contract risk: the protocol has been audited but no audit eliminates all risk.
Only trade with funds you can afford to lose.
***
## Related Pages
* [Beta Markets](/user-docs/trade/perps/beta-markets): JUP, HYPE, ZEC, and tokenised stocks with USDC collateral, hourly funding, and one net position per market
* [Positions & Collateral](/user-docs/trade/perps/positions-and-collateral) — How to open, manage, and close positions
* [Fees](/user-docs/trade/perps/fees) — All fee types explained
* [Liquidation](/user-docs/trade/perps/liquidation) — Liquidation mechanics and how to avoid it
* [Technical Reference](/user-docs/trade/perps/technical-reference) — Oracles, keeper model, onchain accounts
* [JLP Overview](/user-docs/earn/jlp) — The liquidity pool powering Jupiter Perps
# Liquidation
Source: https://docs.jup.ag/user-docs/trade/perps/liquidation
How liquidation works on Jupiter Perps: what triggers it, how the liquidation price is calculated, how it changes over time, and how to avoid it.
This page explains the liquidation mechanism on Jupiter Perps: what triggers it, how the liquidation price is calculated for long and short positions, how it drifts over time, and how to manage your risk.
## What Is Liquidation?
This page describes the JLP markets (SOL, ETH, wBTC). On [Beta markets](/user-docs/trade/perps/beta-markets#liquidation), a position is liquidated when the mark price reaches its liquidation price, a liquidation fee applies, and the remaining collateral is returned to you rather than kept by a pool.
Liquidation is the automatic closure of a position by the protocol when the trader's collateral is no longer sufficient to cover the outstanding losses and fees. It is triggered when the oracle price reaches the position's **liquidation price**.
When a position is liquidated, **all remaining collateral is forfeited** to the JLP as a liquidation fee. You will not receive any portion of your collateral back. Only deposit collateral that is within your risk tolerance.
***
## Liquidation Trigger
| Position | Liquidation occurs when |
| - | - |
| Long | Oracle price **falls below** the liquidation price |
| Short | Oracle price **rises above** the liquidation price |
***
## Liquidation Price Formula
The liquidation price is the oracle price at which the position's effective collateral (after fees) equals the minimum margin required by the protocol.
### Long Position
```math theme={null}
Liquidation Price (Long) = price - (|collateral_size - close_fee - borrow_fee - (size / max_lev)| * price) / size
```
### Short Position
```math theme={null}
Liquidation Price (Short) = price + (|collateral_size - close_fee - borrow_fee - (size / max_lev)| * price) / size
```
### Variable Definitions
| Variable | Definition |
| - | - |
| `price` | Average entry price (USD) of the position |
| `collateral_size` | Current collateral value (USD) |
| `close_fee` | Estimated close fee (USD) — base fee + price impact fee |
| `borrow_fee` | Accumulated borrow fees (USD) to date |
| `size` | Position size (USD) |
| `max_lev` | Protocol-level maximum leverage: **500** |
`max_lev` in the formula refers to the **protocol limit of 500x**, which is used to define the minimum maintenance margin. This is distinct from the **250x trading maximum** available when opening a position.
***
## How the Liquidation Price Changes Over Time
The liquidation price is **not static**. It moves as fees accumulate:
* **Borrow fees** are deducted from collateral hourly. As collateral decreases, the liquidation price drifts toward the current market price.
* The effect is most significant at **leverage above 10x** and for positions held over extended periods.
A position that appears safely distant from liquidation when opened can approach its liquidation price over time due to borrow fee accumulation — even without any price movement.
***
## Liquidation Example
**Setup:** \$10,000 collateral long position approaching liquidation
| Item | Value |
| - | - |
| Position collateral | \$10,000 |
| Remaining collateral after loss + fees | \$1,000 |
| Liquidation penalty | \$1,000 (entire remaining collateral goes to JLP) |
| Returned to trader | \$0 |
***
## How to Avoid Liquidation
Check the Positions tab regularly, especially during volatile market conditions or for long-duration positions.
Adding collateral reduces leverage and moves the liquidation price further from the current market price. Use the **Edit** button on any open position.
A stop loss closes the position before it reaches the liquidation price, preserving a portion of your collateral.
Lower leverage means a larger price movement is required before liquidation is triggered.
# Positions & Collateral
Source: https://docs.jup.ag/user-docs/trade/perps/positions-and-collateral
How to open, manage, and close leveraged positions on Jupiter Perps, including collateral rules, leverage, PnL, and order types.
## Opening a Position
Connect a Solana wallet (e.g. Phantom, Solflare) via the top-right button on the Jupiter Perps interface.
Choose the asset you want to trade: SOL, ETH, or wBTC on the JLP markets, or one of the [Beta markets](/user-docs/trade/perps/beta-markets) (JUP, HYPE, ZEC, and tokenised stocks). The steps below describe the JLP markets; Beta markets use USDC collateral and have their own limits.
Select **Long** if you expect the price to rise, or **Short** if you expect it to fall.
Enter the collateral amount and adjust the leverage slider (1.1x – 250x). Any SPL token (the standard token format on Solana) supported by Jupiter Swap can be used as input. It will be automatically swapped to the correct underlying collateral token.
**HALF / MAX shortcuts** next to the input field let you fill the collateral with half or all of your wallet balance for the selected token.
The **lock icon** next to the leverage slider lets you fix the leverage at the current value, so it does not move accidentally when adjusting other fields.
Review the order summary (position size, entry price, estimated liquidation price, fees) and confirm the transaction in your wallet.
The first time you open a position, you will be asked to acknowledge the Jupiter Perps terms and conditions. This appears once and can be skipped on future trades via the "Do not show again" checkbox.
On the JLP markets, two onchain transactions are required to open a position: one to submit the request, and one executed by a keeper to fulfill it. On Beta markets you sign a single transaction; see [Opening a position on Beta markets](/user-docs/trade/perps/beta-markets#opening-a-position).
Selecting leverage above **150x** triggers an in-app warning. At this level, positions can be liquidated almost instantly on small price movements, and limit orders may not execute as expected. Use very high leverage only if you fully understand the risk.
***
## Collateral Rules
On the JLP markets, the underlying collateral token depends on the position direction and cannot be changed after opening. On [Beta markets](/user-docs/trade/perps/beta-markets), collateral is always USDC.
| Position | Underlying Collateral | Profits Paid In |
| - | - | - |
| Long SOL | SOL | SOL (default) or USDC |
| Long ETH | wETH | wETH (default) or USDC |
| Long wBTC | wBTC | wBTC (default) or USDC |
Long positions use the traded asset itself as collateral. When closing a profitable long, profits are paid in the underlying token by default.
| Position | Underlying Collateral | Profits Paid In |
| - | - | - |
| Short SOL | USDC | USDC (default) or SOL |
| Short ETH | USDC | USDC (default) or wETH |
| Short wBTC | USDC | USDC (default) or wBTC |
Short positions always use USDC as collateral, regardless of the shorted asset. Profits are paid in USDC by default.
When you deposit any SPL token as initial margin, the exchange automatically swaps it to the correct collateral token before opening the position.
### Collateral Value Is Fixed in USD
The USD value of your collateral is recorded at the time of deposit and remains fixed regardless of subsequent price movements in the collateral token.
**Example:** If you deposit \$100 worth of SOL, your collateral is recorded as \$100 USD. If SOL price later increases or decreases, your recorded collateral size remains \$100.
### Depositing and Withdrawing Collateral
You can add or remove collateral from an open position at any time via the **Edit** button in the Positions tab.
| Action | Effect on Long | Effect on Short |
| - | - | - |
| Deposit collateral | Liquidation price decreases, leverage decreases | Liquidation price increases, leverage decreases |
| Withdraw collateral | Liquidation price increases, leverage increases | Liquidation price decreases, leverage increases |
Withdrawing collateral increases leverage and moves the liquidation price closer to the current market price. Monitor your liquidation price carefully after any withdrawal.
***
## Position Limits
* Maximum **6 open positions** simultaneously: one per asset (SOL, ETH, wBTC) per side (long/short).
* Opening a second position on the **same asset and side** as an existing open position will **merge** both positions into one:
* The combined leverage is the average of both positions' leverage.
* The combined size equals the sum of both collaterals multiplied by the combined leverage.
* Any existing TP/SL orders are preserved after the merge.
* On [Beta markets](/user-docs/trade/perps/beta-markets#one-net-position-per-market), each market holds one net position: a trade in the opposite direction reduces, closes, or reverses it rather than opening a second position.
***
## Leverage
Leverage determines how much of the position size is borrowed from the JLP relative to your collateral.
| Parameter | Value |
| - | - |
| Minimum leverage | 1.1x |
| Maximum leverage | 250x |
On [Beta markets](/user-docs/trade/perps/beta-markets), the maximum is set per market and shown as a badge in the market selector; the minimum stays 1.1x.
**Example:** With \$500 collateral at 2x leverage, your position size is \$1,000. You borrow \$500 from the JLP and pay borrow fees on that amount.
Higher leverage amplifies both potential gains and potential losses, and moves the liquidation price closer to the entry price.
At leverage above 10x, borrow fees have a meaningful effect on the liquidation price over time. Positions held for extended periods at high leverage are at elevated liquidation risk even without price movement.
***
## Slippage Tolerance
Although Jupiter Perps prices trades at the oracle price, a small delay exists between the moment you submit a trade request and the moment the keeper executes it (see [request fulfillment model](/user-docs/trade/perps/technical-reference#request-fulfillment-model)). During this delay, the oracle price can move.
The **slippage tolerance** is the maximum acceptable difference between the price at submission and the price at execution. If the price moves beyond this tolerance, the trade is cancelled to protect you from unfavourable execution.
Slippage can be configured in the **Settings** menu, accessible from the trade form:
| Option | Value |
| - | - |
| Preset values | 1%, 2%, 3% |
| Custom | Any value (set manually) |
| Default | 2% |
A lower slippage tolerance reduces your risk of unexpected execution prices but increases the chance of a trade being cancelled in volatile conditions. A higher tolerance does the opposite.
***
## Limit Orders
A limit order opens a position when the oracle price reaches a specified target, rather than at the current market price.
**Behavior:**
* Limit orders are independent from existing positions.
* They remain active until triggered or manually cancelled.
* When triggered, a limit order opens a new position if none exists, or merges with an existing position on the same asset and side.
* A limit order remains active even if an existing position on the same market is closed or liquidated.
* Maximum **20 active limit orders** per asset/side pair.
**Limit orders near the liquidation price**
Jupiter Perps does not enforce FIFO (First-in, First-out) execution ordering. If a limit order is placed near the liquidation price of an existing position, both the limit order transaction and the liquidation transaction may be submitted to the chain simultaneously. Whichever is processed first by the network will execute. The outcome cannot be guaranteed.
The liquidation price displayed on the limit order form is a simulation based on conditions at the time you fill in the form. It does not reflect the actual liquidation price at the time the order is triggered.
On the JLP markets, limit orders cannot be created when the selected market's utilization exceeds 80%. Beta markets have no utilization limit; they can instead switch to limit orders only when the engine flags them as unhealthy.
***
## PnL (Profit and Loss)
PnL reflects the gain or loss on an open position relative to the entry price. It updates in real time as the oracle price changes.
| Position | PnL increases when | PnL decreases when |
| - | - | - |
| Long | Price rises | Price falls |
| Short | Price falls | Price rises |
### Unrealized vs. Realized PnL
* **Unrealized PnL** is the current gain or loss if the position were closed at the current oracle price, before fees.
* **Realized PnL** is the actual amount received after deducting the close base fee, price impact fee, and accumulated borrow fees.
### PnL Calculation
```
// 1. Get exit price
exitPrice = currentTokenPrice
// 2. Determine if in profit
IF isLong THEN inProfit = exitPrice > positionAvgPrice
ELSE inProfit = exitPrice < positionAvgPrice
// 3. Price delta
priceDelta = |exitPrice - positionAvgPrice|
// 4. PnL delta
pnlDelta = (tradeSizeUsd * priceDelta) / positionAvgPrice
// 5. Unrealized PnL
IF inProfit THEN unrealizedPnl = pnlDelta
ELSE unrealizedPnl = -pnlDelta
// 6. Realized PnL (after fees)
realizedPnl = unrealizedPnl - (closeBaseFee + priceImpactFee + borrowFee)
```
### PnL Call
If unrealized PnL turns sufficiently negative and the effective margin falls below the maintenance margin threshold, you will receive a **PnL call**, a prompt to deposit additional collateral to avoid liquidation.
### Receiving Profits
For long positions, profits are paid in the underlying collateral token (e.g. SOL for a SOL long) by default. The amount received is calculated as:
```
tokensReceived = closingValueUsd / tokenPriceAtClose
```
**Example:** A SOL long closed with \$150 total value at SOL = \$110 returns `\$150 / \$110 = 1.3636 SOL`.
For short positions, profits are paid in USDC by default. Both longs and shorts offer the option to receive the alternative token at close.
The PnL displayed on the interface is before fees. The exact net amount is shown under the Deposit/Withdraw tab.
***
## Worked Trade Example
**Setup:**
| Parameter | Value |
| - | - |
| Position size | \$1,000 |
| Collateral | \$500 SOL |
| Borrowed | \$500 SOL from JLP |
| Entry price | \$100 / SOL |
| Borrow rate | 0.012% / hour |
| Utilization | 50% |
**After 48 hours, SOL price rises to \$110:**
| Item | Amount |
| - | - |
| Final position value | \$1,100 |
| Open fee (0.06% x \$1,000) | \$0.60 |
| Close fee (0.06% x \$1,100) | \$0.66 |
| Borrow fee (500/1,000 x 0.012% x \$1,000 x 48h) | \$2.88 |
| **Net profit** | **\$95.86** |
This example excludes price impact fees and assumes constant utilization and borrow rates for simplicity. Actual fees may differ.
***
## Positions on the Chart
When you have open positions on the selected market, the chart draws a horizontal line for each of their prices: **entry** (labelled with the market and side, for example `SOL-long`), **liquidation** (`SOL-long-Liq.`), and any **take profit** or **stop loss** order attached to the position. The × on a TP or SL line cancels that order. Pending limit orders are not drawn; they are listed in the **Open Orders** tab.
To hide these lines without cancelling anything, untick **Positions on chart** in the bar under the chart (on the **Positions** tab, next to **Close All**). Tick it again to bring them back. The setting is saved in your browser and applies to every market; on mobile, the same toggle sits above the chart.
### Past trades on the chart
With a wallet connected, the chart also marks your **past trades** on the selected market: small circles under the candles, green with a **B** for buys (opening or adding to a long, reducing a short), red with an **S** for sells and with an **L** for liquidations. Trades that fall on the same candle are grouped into one circle; hover it to see the side, size, average price, and number of orders. Only your own trades are shown, the most recent hundred on that market.
These marks are drawn by the chart itself, so **Positions on chart** does not affect them. To hide them, right-click the chart and choose **Hide marks on bars**; choosing the same item again brings them back. The choice is saved in your browser. On jup.ag in a phone browser the menu is out of reach, since a long press on the chart opens the crosshair rather than this menu. The Jupiter Mobile app does not draw past trades on its Perps chart.
Unlike the Spot [token page](/user-docs/trade/spot/token-page#display-options), the Perps chart has no **Display Options** menu: position lines and trade marks are its only overlays.
## Closing a Position
Positions can be closed fully or partially from the **Positions tab**. Partial closure reduces the position size proportionally and adjusts the collateral to maintain the same leverage ratio.
### The Positions tab
Each open position is a row with its market and side (for example **SOL 1.09x Long**), **Value**, **Entry / Mark Price**, **Liq. Price**, **Size** (in USD and in the market token), **Collateral** (with a pencil to [edit it](#depositing-and-withdrawing-collateral)), **TP / SL**, and three actions at the right: a **share** icon, the **lightning** icon ([Quick Close](#quick-close)), and **Close**.
* The **Value** column header is a switch: click it to show values and PnL **Ex. Fees** (before fees) or **Inc. Fees** (after fees). The choice also applies to the PnL column of the **History** tab and to the estimate in the close form.
* **TP / SL** shows the take profit and stop loss attached to the position (`-- / --` when there are none). The ⊕ icon opens the form to add them; click the column to list the existing ones.
* **Close All**, at the right of the tab bar, closes every open position at market after a confirmation.
### The close form
**Close** opens a form under the position:
* **Close Size** — the USD amount to close, typed or picked with the **25% / 50% / 75% / 100%** shortcuts. The estimated PnL for that size is shown next to it, before or after fees depending on the Value switch. Entering more than 99% of the size closes the whole position.
* **Receive In** — the market token (for example **SOL** on a SOL market) or **USDC**, with the amount you will receive. The position's collateral token is selected by default. See [Receiving Profits](#receiving-profits).
* A warning appears if your wallet holds less than the recommended **0.03 SOL** to cover the transaction fee and account rent.
* The breakdown lists the **Size** and **Collateral** before and after the close, the **Close Fee**, the **Borrow Fees** accrued, the **Price Impact** (percentage and amount), the **Transaction Fee**, and the **Account Rent** in SOL. See [Fees](/user-docs/trade/perps/fees) for how each is calculated.
**Confirm** sends the order; **Dismiss** closes the form without changes.
### Quick Close
Next to the **Close** button, the **lightning icon** is **Quick Close**: it sends an order to close the **entire** position at the current price, with **USDC** as the output token, without opening the close form. The first time you use it, a **Close Entire Position?** dialog asks you to confirm and offers a **Don't show again** checkbox. Once that box is checked, the next Quick Close closes the position immediately on click.
Quick Close is full closure only. To close part of a position or to choose the output token, use **Close**.
### Sharing a position
The **share** icon on a position row opens **Share Position**, a card with the market, side and leverage, the PnL percentage after fees, the **Entry Price** and **Mark Price**, and the date and time the position was opened. Pick one of five illustration styles (a cheerful set when the position is in profit, a gloomy one when it is not), then **Save** to download the image (on mobile, **Share** opens the system share sheet) or **Share to X** to open a pre-filled post. Closed trades have the same share icon in the **History** tab.
When reducing position size, collateral is adjusted proportionally to preserve the leverage ratio. For example, reducing a 10x position by 50% also reduces collateral by 50%.
# Technical Reference
Source: https://docs.jup.ag/user-docs/trade/perps/technical-reference
Technical details for developers: price oracle system, request fulfillment model, onchain accounts, and code references for Jupiter Perps.
## Price Oracles
Jupiter Perps aggregates token prices from three independent onchain price oracles:
| Oracle | Role |
| - | - |
| **Edge by Chaos Labs** | Primary oracle |
| **Chainlink** | Verification and fallback |
| **Pyth** | Verification and fallback |
### Oracle Selection Logic
1. If the Edge oracle is **not stale** and its price is within a defined threshold of both Chainlink and Pyth, the **Edge price is used**.
2. If the Edge oracle is stale or outside the threshold, Chainlink and Pyth prices are compared. If they are within the threshold of each other, **the more recent of the two is used**.
3. If two or more oracles fail, **no price update occurs**.
Oracle price updates happen both during trade execution and via a dedicated keeper that runs independently. Prices used in Jupiter Perps may differ from prices on other venues. The Jupiter Perps price chart is the source of truth for trade decisions.
| Asset | Account |
| - | - |
| SOL | [FYq2BWQ1V5P1WFBqr3qB2Kb5yHVvSv7upzKodgQE5zXh](https://solscan.io/account/FYq2BWQ1V5P1WFBqr3qB2Kb5yHVvSv7upzKodgQE5zXh) |
| ETH | [AFZnHPzy4mvVCffrVwhewHbFc93uTHvDSFrVH7GtfXF1](https://solscan.io/account/AFZnHPzy4mvVCffrVwhewHbFc93uTHvDSFrVH7GtfXF1) |
| BTC | [hUqAT1KQ7eW1i6Csp9CXYtpPfSAvi835V7wKi5fRfmC](https://solscan.io/account/hUqAT1KQ7eW1i6Csp9CXYtpPfSAvi835V7wKi5fRfmC) |
| USDC | [6Jp2xZUTWdDD2ZyUPRzeMdc6AFQ5K3pFgZxk2EijfjnM](https://solscan.io/account/6Jp2xZUTWdDD2ZyUPRzeMdc6AFQ5K3pFgZxk2EijfjnM) |
| USDT | [Fgc93D641F8N2d1xLjQ4jmShuD3GE3BsCXA56KBQbF5u](https://solscan.io/account/Fgc93D641F8N2d1xLjQ4jmShuD3GE3BsCXA56KBQbF5u) |
### Migration Note
If you are using the old oracle account referenced in the custody account's `dovesOracle` field, migrate to the new accounts by using the `dovesAgOracle` field instead.
***
## Request Fulfillment Model
Jupiter Perps uses an onchain **request fulfillment model** for all trade actions. Every trade requires two separate transactions:
1. **Request transaction** — The trader (or API client) submits a transaction to Solana containing all required trade parameters (size, collateral, direction, etc.).
2. **Fulfillment transaction** — A keeper detects the request onchain, validates it, and submits a second transaction to execute the trade. The trade is only finalized when this second transaction is confirmed by the Solana network.
### Keepers
Keepers are offchain services operated by Jupiter that continuously poll the Solana blockchain for pending trade requests. Jupiter runs two keepers in parallel.
**Actions processed by keepers:**
* Opening and closing positions
* Increasing or decreasing position size
* Depositing or withdrawing collateral
* Creating, editing, and triggering TP/SL orders
* Creating, editing, and triggering limit orders
Because execution requires a keeper transaction, there is a short delay between request submission and trade execution. The trade is not live until the keeper's fulfillment transaction is confirmed.
***
## Custody Accounts (Onchain)
Each asset in the JLP has a corresponding **custody account** storing all pool and fee parameters for that asset.
| Asset | Custody Account |
| - | - |
| SOL | [7xS2gz2bTp3fwCC7knJvUWTEU9Tycczu6VhJYKgi1wdz](https://solscan.io/account/7xS2gz2bTp3fwCC7knJvUWTEU9Tycczu6VhJYKgi1wdz) |
| ETH | [AQCGyheWPLeo6Qp9WpYS9m3Qj479t7R636N9ey1rEjEn](https://solscan.io/account/AQCGyheWPLeo6Qp9WpYS9m3Qj479t7R636N9ey1rEjEn) |
| BTC | [5Pv3gM9JrFFH883SWAhvJC9RPYmo8UNxuFtv5bMMALkm](https://solscan.io/account/5Pv3gM9JrFFH883SWAhvJC9RPYmo8UNxuFtv5bMMALkm) |
| USDC | [G18jKKXQwBbrHeiK3C9MRXhkHsLHf7XgCSisykV46EZa](https://solscan.io/account/G18jKKXQwBbrHeiK3C9MRXhkHsLHf7XgCSisykV46EZa) |
| USDT | [4vkNeXiYEUizLdrpdPS1eC2mccyM4NUPRtERrk6ZETkk](https://solscan.io/account/4vkNeXiYEUizLdrpdPS1eC2mccyM4NUPRtERrk6ZETkk) |
| Field | Description |
| - | - |
| `pricing.tradeImpactFeeScalar` | Scalar constant for linear price impact fee calculation (BPS format, divide by 10,000 for USD) |
| `priceImpactBuffer.deltaImbalanceThresholdDecimal` | OI imbalance threshold for additive price impact fee |
| `fundingRateState.hourlyFundingBps` | Current hourly borrow rate for the asset |
| `assets.owned` | Total tokens owned by the custody |
| `assets.locked` | Tokens currently locked in open positions |
| `assets.guaranteedUsd` | Estimate of total long position size (updated on position changes, not in real time) |
| `assets.globalShortSizes` | USD value of all open short positions |
| `assets.globalShortAveragePrices` | Average entry price across all open shorts |
| `increasePositionBps` | Base fee (BPS) for opening positions |
| `decreasePositionBps` | Base fee (BPS) for closing positions |
***
## Beta Markets Execution Model
[Beta markets](/user-docs/trade/perps/beta-markets) do not use the request fulfillment model, the keepers, or the JLP custody accounts described above. An order is a single transaction that you sign with your Solana wallet; it is relayed to GUM, the orderbook trading engine that runs these markets, matched there, and the resulting fill is pushed back to the app. The transaction you signed is a regular Solana transaction and can be viewed on Solscan. Prices on the stock markets come from Chainlink oracles.
If the engine does not confirm an order within a few seconds, the app treats the outcome as unknown and reconciles against your open orders, order history, and positions for up to two minutes before asking you to refresh the page.
***
## Code References
Formula and code snippet for the flat 0.06% open/close fee.
Scalar-based fee that scales with trade size.
Reference implementation for the OI-imbalance penalty.
Weightage-based swap fee between JLP-held assets.
Same weightage logic applied to minting and redeeming JLP.
Unrealized and realized PnL formula and pseudocode.
***
## External References
* [Jupiter Perps IDL parsing examples (GitHub)](https://github.com/julianfssen/jupiter-perps-anchor-idl-parsing)
* [Jupiter Research, Risk Assessments](https://discuss.jup.ag/tag/risk)
* [Chaos Labs, Linear Price Impact Fee Proposal](https://discuss.jup.ag/t/jupiter-perpetuals-price-impact-fee-mechanism/17140)
* [Chaos Labs, Price Impact Parameter Recommendations (June 2025)](https://discuss.jup.ag/t/price-impact-parameter-recommendations-june-3rd-2025/38497)
* [Chaos Labs, Additive On-Imbalance Price Impact Model](https://discuss.jup.ag/t/additive-on-imbalance-price-impact-model/38562)
# Predict FAQ
Source: https://docs.jup.ag/user-docs/trade/predict/faq
Frequently asked questions about Jupiter Prediction Markets.
## General
Jupiter Predict is a prediction market experience on Solana. It lets you trade on the outcome of real-world events by buying YES or NO contracts. If your side wins, each winning contract pays \$1 worth of the market's settlement asset. If your side loses, the contract expires worthless.
Jupiter Predict lists events across categories like Sports, Crypto, Politics, Esports, Culture, Economics, Tech, Finance, Weather, and Mentions. The available categories and markets can change as new events are added or removed.
Mentions groups markets that predict what public figures, publications, or media will say. Each market lists words, names, or topics, and you trade on whether they will be mentioned according to the market's rules.
**Browse** lists events across many categories, often with longer time horizons.
**Degen** focuses on short-duration crypto price markets. You predict whether a token's price will move Up or Down over a fixed window.
Both sections use the same basic wallet flow: review a quote, sign, and monitor the position. Settlement actions can vary by route: Profile shows whether the outcome is automatic, claimable, refundable, or final.
The Arcade runs one-minute BTC and SOL Up or Down rounds, settled from a shared prize pool rather than an order book, with a fixed 1% fee on winnings. See [Arcade: One-Minute Markets](/user-docs/trade/predict/how-it-works#arcade-one-minute-markets).
Arcade rounds have no event URL. Each round is an on-chain account: the round time on a round card is an explorer link to it, and the **History** view shows each past round's shortened address as an explorer link, with the date and time. Give that address, or the explorer link, to support together with your wallet address. See [Identifying a round](/user-docs/trade/predict/how-it-works#identifying-a-round).
Check the bet button: **Below minimum** or **Above maximum** means your amount is outside the per-entry limits (minimum 1 USDC), **Insufficient USDC** means your balance does not cover the bet, and **Couldn't load limits** means the page needs a reload. **Up** and **Down** are disabled once the countdown ends and the round locks, until the next round opens, and while a previous bet is still being sent. Trading is also unavailable in some regions. See [Entry limits and errors](/user-docs/trade/predict/how-it-works#entry-limits-and-errors).
Jupiter Predict can surface markets from external prediction market providers and Jupiter-supported market integrations. Availability, trading actions, liquidity, and settlement timing can differ by market.
No. Predict has no market creation flow, so you can only trade markets that are already listed. New markets are added by the external providers and integrations that Predict sources from, not by Jupiter, so a market cannot be opened on request through support either.
The Leaderboard is a public ranking of traders on Jupiter Predict. You can sort by PnL, Volume, or Win Rate, and filter by time period. Traders are identified by truncated wallet address.
Clans are trader groups that compete in a weekly PnL race: every trade a member makes counts toward the clan's weekly total. You can create a clan, join one with an invitation or invite link, or send a request to join from the clan directory and wait for the leader's approval. A clan holds at most 50 members. See [Clans](/user-docs/trade/predict/how-it-works#clans).
Yes. Each week, members of the three best qualified clans earn cash and Gacha packs, based on their own PnL rank within the clan: the reward tiers cover ranks #1 to #10, and cash currently goes to the top 3 members of the Champion clan. The clan leaderboard shows the current amounts. Rewards are assigned once the week ends (Monday 00:00 UTC), and if no clan qualifies, there is no winner that week. See [Clan rewards](/user-docs/trade/predict/how-it-works#clan-rewards).
## Trading
Predict uses dollar-pegged assets for trading and settlement. The exact funding token can depend on the selected market and route.
The order panel shows the token you pay with and, once you enter an amount, the size, number of contracts, and expected payout. Trading fees are included in these quoted amounts rather than shown as a separate line. You also need a small amount of SOL for Solana network fees.
A contract is a claim tied to one side of a market. A winning contract pays \$1 worth of the market's settlement asset. A losing contract pays \$0.
The price reflects what traders are currently willing to pay for that side. A YES contract at \$0.70 means the market is pricing YES at about 70 cents. You can switch the display between cents and a decimal odds-style multiplier with the **Price (¢) / Decimal (x)** selector; the setting persists across Browse, Event, and Degen pages.
Prices are set by supply and demand. They are not guaranteed probabilities.
Yes. Predict enforces order minimums, and some short-duration markets can also have maximum order sizes. The app shows the current limits in the order panel.
No. Jupiter Predict does not support parlay or combo bets: each position is taken on a single market outcome. You can hold positions in as many separate markets as you like, but they settle independently.
A **Market order** attempts to execute at the best available price for the selected side.
A **Limit order** lets you set a target price and wait for a match.
Yes, as **limit buys** on Polymarket-sourced markets: switch the order panel to the **Limit** tab, set a target price, and wait for a match. Limit sells are disabled. Jupiter Forecast and sports ticket markets are market-order only — a Limit tab may still appear there, but it is disabled. You can cancel an open limit order before it is matched.
If an order cannot execute, or only partially executes, unused funds are returned automatically. Trading fees are charged only on the executed portion.
Common reasons include:
* The market is closed, upcoming, or view-only.
* Liquidity is too low for the requested amount.
* The selected route is temporarily unavailable.
* Trading is unavailable in your region.
* The amount is below the minimum or above the market's maximum.
Yes. Clicking **Close** on a position opens a panel where you choose how much to sell: a percentage preset (**25%, 50%, 75%, or Max**) or a custom dollar amount. Max sells the entire position. See [Closing a Position](/user-docs/trade/predict/how-it-works#closing-a-position).
Usually, yes, while the market is open and there is enough liquidity. Once trading stops and the market is closed for settlement, you can no longer sell.
Sells execute at the bid price, so closing a position has a spread cost.
The most common reasons:
* The market has reached its close time.
* Liquidity is too low to fill the close.
* The route or market integration is temporarily unavailable.
* The position is already waiting for claim, refund, or final settlement.
If you expect the market to still be open and the position looks stuck, raise a ticket via [Discord](https://discord.gg/jup).
Yes. Quotes include price protection. If the price or liquidity changes too much before execution, the order may fail instead of executing at a much worse price. Any unused funds are returned automatically.
## Fees
Fees are included in the order quote shown before you sign; they are not displayed as a separate line item. They are charged only on executed trades, in whichever mint is used to purchase the contracts, and are always rounded up to the nearest cent. See [Fee Structure](/user-docs/trade/predict/how-it-works#fee-structure) for how they are calculated.
For Browse markets sourced from Polymarket, the trading fee has two components: where Polymarket charges a fee, Jupiter charges an additional fee equal to the Polymarket fee. The total trading fee is twice the Polymarket fee. Solana network costs are separate and paid in SOL.
The fee size scales with the contract price, the number of contracts, and how uncertain the outcome is. Trades priced closer to \$0.50 are more uncertain, so fees are slightly higher. Trades priced closer to \$0.00 or \$1.00 are more certain, so fees are lower.
Degen and other routes can use different sources and may not have the same fee structure as Polymarket-sourced Browse markets.
Predict does not charge trading fees on claims or refunds. Solana network fees may still apply when you sign a transaction.
No trading fee is charged on the unfilled portion of an order.
## Settlement
Each market has rules that define how the outcome is determined. The market source or integration determines the result according to those rules. Some market routes record eligible results on-chain, while other integrations may settle through their own route.
Disputes are handled by the market's source or resolution process. Jupiter records eligible on-chain results and does not independently rewrite market outcomes.
Settlement depends on the market. The real-world event must conclude, the market source must determine the result, and final status must be available in Profile.
Some markets settle quickly after the source result is available. Others can take longer if the result is delayed, disputed, or needs investigation.
**Resolved** means the market result has been finalized and Profile has settlement status. For some market routes, this includes an on-chain result.
**Claimed** means a winning payout has been credited to your wallet.
**Refunded** means an eligible refund has been credited to your wallet.
Use your Profile as the source of truth. If a position is claimable, click **Claim** and sign in your wallet.
A claimable payout does not disappear just because you did not click immediately, but it is best to claim once the action appears.
A market can remain pending if the real-world outcome is unclear, the source is waiting for an authoritative result, or the settlement route needs investigation.
While the market is closed and waiting for settlement, you cannot close the position. If a market remains unresolved for an unusually long time, raise a ticket via [Discord](https://discord.gg/jup).
If a market is cancelled, voided, or resolved as refundable, eligible positions can receive a refund after final settlement status is available. Eligible refunds are processed on-chain and reflected in Profile. Profile shows the refund status and any available action.
There can be a delay between source resolution and final status updating on Jupiter. Once settlement status is available, your Profile updates to show claim, refund, lost, or final status.
If a market resolves against your position, your contracts expire worthless. You receive no payout and no action is needed.
## Risks
Yes. If the market resolves against your prediction, your contracts expire worthless and you can lose the full amount spent on them.
The main risks include losing your full position, low liquidity, wide spreads, slippage, route failures, settlement delays, source disputes, stablecoin risks, and regulatory restrictions. See the Risks section in the [Overview](/user-docs/trade/predict#risks) for more detail.
The regulatory status of prediction markets varies by jurisdiction. Users are responsible for understanding whether prediction market trading is permitted where they are located.
## Account and Access
Your full wallet address, the event page URL (its last segment is the market's identifier) or, for an Arcade round, the round address from the History view, what happened and when, and, for a specific order, the transaction signature from your wallet's activity history. See [What to Give Support](/user-docs/trade/predict/how-it-works#what-to-give-support) for the full list.
Yes, a small amount. Solana charges transaction fees, and some on-chain accounts require temporary rent deposits. Rent is recovered automatically when eligible accounts are closed.
On the web, trading is unavailable in some regions, including the United States, South Korea, and Australia. The **Jupiter Mobile app** applies additional regional restrictions and is unavailable in a number of further countries, including parts of the EU — so the regions you can access may differ between the web and the mobile app. Availability depends on local regulations. Jupiter does not provide legal advice.
Click **Profile** at the top of the Predict page. You can view active positions, open orders when available, history, claims, and refunds.
# Using Predict
Source: https://docs.jup.ag/user-docs/trade/predict/get-started
Step-by-step guide to browsing markets, opening positions, managing trades, and claiming payouts on Jupiter Predict.
This guide walks you through the main actions on Jupiter Predict: finding markets, placing orders, managing positions, and claiming winnings or refunds.
## What You Need
A wallet such as Phantom or Solflare, connected to Jupiter.
The order panel shows the token used for the selected market before you sign.
For Solana transaction fees and account rent.
Predict enforces order minimums and, on some short-duration markets, maximum order sizes. The app shows the current limits in the order panel.
## Browsing Markets
Open **Predict** from Jupiter's navigation (on desktop, in the left side navigation under **Trade**).
By default, you land on **Browse**. Use the top navigation to switch between:
* **Browse**: events across categories like sports, crypto, politics, economics, and more
* **Degen**: short-duration crypto price markets
* **Arcade**: one-minute BTC and SOL Up or Down rounds, settled from a shared pool (see [Arcade](/user-docs/trade/predict/how-it-works#arcade-one-minute-markets))
* **Clans**: create or join a trader clan and climb the weekly clan PnL race (see [Clans](/user-docs/trade/predict/how-it-works#clans))
* **Profile**: your positions, trade history, and settlement status
* **Leaderboard**: top Predict traders
* **For You**: personalised recommendations based on your activity
Use category tabs, the **Live** filter, sorting, or search to narrow the market list.
Click any event card to see its markets, probability history, rules summary, related events, and comments from other traders.
For multi-outcome events, only the top outcomes may be visible at first. Click **Show More** to see additional markets.
## Placing an Order
Market orders are the main live trading path on Predict.
From an event page, pick the outcome you want to trade on. Click **Yes** or **No** next to it.
Enter how much you want to spend. The app estimates how many contracts you can receive at the current price.
Use **HALF** or **MAX** to quickly set an amount from your available balance.
Check the selected side, estimated contracts, price, fees, and expected payout before confirming.
The quote can change if the market moves or available liquidity changes.
Click the confirm button and sign in your wallet.
If the order executes, your position appears in your Profile. If it cannot execute or only partially executes, any unused funds are returned automatically.
To set your own price instead of taking the market price, switch the order panel to the **Limit** tab, enter a target price, and wait for a match. Limit orders are available as **limit buys** on Polymarket-sourced markets only — limit sells are disabled, and the Limit tab is disabled on Jupiter Forecast and sports ticket markets. See [Order Types](/user-docs/trade/predict/how-it-works#order-types).
## Trading on Degen
Degen markets use the same wallet flow, but the market format is shorter and more price-focused.
Click the **Degen** tab in the top navigation.
Use the filters to choose a live asset and time window. The available assets and windows can change.
Each card shows a reference price and current price. Click **Up** if you think the final price will be above the reference, or **Down** if you think it will be below.
Review the quote, then sign in your wallet. If the route cannot execute, unused funds are returned automatically.
Degen markets resolve after their time window ends. Settlement actions can vary by route: Profile shows whether the outcome is automatic, claimable, refundable, or final.
## Monitoring Your Positions
Click the **Profile** tab in the top navigation.
The **Positions** tab shows active positions with:
* Current value and mark price
* Average price paid
* PnL, with a fee toggle where available
* Potential payout if your side wins
* Settlement status
The **Open Orders** tab shows pending orders when that flow is available.
The **History** tab shows past trades, settlements, claims, and refunds.
Your positions also appear directly on the event page itself: each market section where you hold a position shows it inline, and it refreshes after a claim or a close. The Profile remains the complete view across all markets.
## Closing a Position Early
You can try to exit a position before the market closes.
In your Profile, find the position you want to close.
Click **Close** on a position row, or **Close All** to exit all eligible positions. The Close panel lets you sell part of the position (**25%, 50%, 75%**, a custom amount) or all of it (**Max**).
The app attempts to sell your contracts at the current bid. If the close executes, the proceeds are returned to your wallet after any applicable fees.
Sells execute at the bid price, not the mid price. There is usually a spread between the price you pay to buy and the price you receive when you sell.
You may not be able to close if trading has stopped, liquidity is too low, or the market's route is temporarily unavailable.
## Claiming Winnings
After a market settles in your favour, Profile shows whether your payout is claimable or has been settled automatically.
Profile must receive the final settlement status before it can show the final state. A market may show as pending on Jupiter for a short time after its source has resolved.
If Profile shows **Claim**, follow the prompt and sign in your wallet. A winning contract pays \$1 worth of the market's settlement asset. When you have claimable positions, a **Claim All** button appears in the Positions tab and claims them all in one action. Some routes settle automatically and do not require a claim transaction.
If the market resolves against your position, the contracts are worthless and the position is marked as lost. No action is needed.
## Refunded Outcomes
Some markets can resolve to a refund or another non-standard outcome depending on the rules.
Eligible refunds are processed on-chain and reflected in Profile. Profile shows the refund status and any available action after settlement status is available.
If the app shows a refund action, follow the prompt. Otherwise, wait for processing or raise a ticket via [Discord](https://discord.gg/jup) if something looks stuck for an unusually long time, including the details listed in [What to Give Support](/user-docs/trade/predict/how-it-works#what-to-give-support).
# How Predict Works
Source: https://docs.jup.ag/user-docs/trade/predict/how-it-works
Detailed mechanics of Jupiter Prediction Markets: events, contracts, orders, fees, settlement, and the Degen mode.
This page covers the detailed mechanics of Jupiter Predict. For a high-level introduction, see the [Overview](/user-docs/trade/predict).
## Events and Markets
An **event** is a real-world occurrence with a determinable outcome. For example: "Republican Presidential Nominee 2028" or "UEFA Champions League Winner."
Each event contains one or more **markets**. Each market represents a specific outcome within the event and is usually binary: YES or NO.
For example, an election event can contain separate markets for several candidates. Each candidate market trades independently. You can buy YES on one candidate without taking a position on any other candidate.
### Multi-Outcome Events
Events with many possible outcomes are displayed with the top outcomes visible by default. Click **Show More** to drill down and see additional sub-markets.
The probabilities across all sub-markets within a multi-outcome event do not always sum to exactly 100%. Each sub-market can have its own liquidity, spread, and price history.
### Sports Match Markets
A single sports match can carry several market types, grouped on one event page. A match with only a few market groups lists them one under the other (Moneyline, Spreads, Totals); when a match carries more, they are split into tabs, with **Gamelines** holding the main markets and, on football matches, dedicated tabs such as **Exact Score**, **Goalscorers**, **Halves** (result, goals, spread, total, team totals, both teams to score and exact score for the first or second half, settled on that half alone) and **Corners** (total corners, per half, per team, odd / even, and first corner). On a football match, for example:
* **To Advance**: which team goes through to the next round. Runs to the full result, including extra time, penalties, or an official ruling, as set out in the market rules.
* **Moneyline**: the three-way regulation-time result (either team or the draw), each side tradeable YES or NO. The order buttons show the payout per contract (e.g. "\$1 pays 2.46").
* **Both Teams to Score**: yes or no.
* **First Team to Score**: which team scores first, or **Neither**.
* **Double Chance**: cover two of the three regulation-time outcomes in a single position.
* **Spreads**: back a team at a goal handicap, with a selectable line (e.g. 0, 0.5, 1).
* **Totals**: over or under on total goals, with a selectable line (e.g. 2, 2.5, 3).
* **Team Totals**: over or under on one team's goals, in a section per team.
* **Odd / Even** and **Total Goals ranges** (e.g. 0-1, 2-3, 4-6, 7+).
* **Exact Score**: see [Special Markets](#special-markets).
* **Goalscorers**: anytime goalscorer markets, in their own tab, settled on regulation time.
Reading these markets:
* **REG TIME vs FULL TIME badges**: REG TIME markets settle on the first 90 minutes plus stoppage time. FULL TIME markets settle on the final outcome, including extra time and penalties (To Advance is a FULL TIME market). The exact treatment is always in the market's rules summary.
* **Push rules are displayed on the market**: on integer Spreads and Totals lines, a push (the spread-adjusted score is level, or the final total equals the line) resolves as a **refund** of the stake. The applicable rule is shown on each market group (e.g. "Draw = refund", "Exactly 2 = refund"). Other market types (Double Chance, Odd / Even, Exact Score) do not use lines and have no push outcome.
* **No fees label**: the sportsbook-style groups (Double Chance, Spreads, Totals, Odd / Even, Total Goals ranges, Exact Score) currently charge no trading fees. These are [ticket markets](#special-markets): market orders only, held to settlement with no early sell.
Esports events can also carry several market types per match, grouped by game within a series (e.g. Game 3 of a best-of-3), with live scores shown on the event card.
Tennis matches carry match, set, and game markets, with dedicated **Total Sets** and **Total Games** sections.
### Comments
Each event page includes a comments section: you can post comments on an event, like other traders' comments, and delete your own. External links are blocked in the composer: only HTTPS links to jup.ag are accepted, validated before the comment is published. A link to a Jupiter prediction event or profile is shown as a card rather than a bare URL: an event card carries the market image, title, volume and live indicators, with the Yes / No or team buttons when the market is open; a profile card shows the avatar, username, prediction count, win rate and realised PnL. One card is shown per comment, and the same applies in clan chat.
### Market States
A market moves through several states from creation to settlement:
The market is visible but trading has not started yet. The UI may show a countdown.
The market is actively trading. Buy and sell actions are available when liquidity and routing support them. Live timed markets show a compact countdown on their card, with an urgency state in the final 30 seconds.
Trading has stopped. The market is waiting for the result to be determined and recorded.
The result is final. Profile shows claim, refund, automatic, lost, or final status.
## Contracts
A **contract** is a financial claim tied to one side of one market.
* A winning contract pays **\$1 worth of the market's settlement asset**.
* A losing contract pays **\$0** and expires worthless.
* Some markets can resolve to a refund or draw outcome if the market rules require it.
Contract prices usually range from **\$0.01 to \$0.99**. The price reflects the current market-implied probability for that side. A YES contract at \$0.65 means traders are currently paying about 65 cents for the YES side.
Prices can be displayed in two formats, switched with the persistent **Price (¢) / Decimal (x)** selector available on Browse, Event, and Degen pages: cents (the default) or a decimal odds-style multiplier. Spread warnings are always expressed in cents, and charts keep the canonical price format.
### Funding and Settlement Assets
Predict uses dollar-pegged assets for trading and settlement. The exact funding token can depend on the market and route. In some flows, Jupiter may route your input into the market's settlement asset before the order is placed.
The order panel shows the token you pay with and, once you enter an amount, the quote details: size, number of contracts, expected payout, and any estimated refund. Trading fees are included in the quote rather than shown as a separate line; see [Fee Structure](#fee-structure) for how they are calculated.
### Spread
Each market has a **bid price** and an **ask price**:
* The **ask** is what you pay when buying.
* The **bid** is what you receive when selling.
The difference is the spread. Entering and exiting a position can cost money even if the market price has not moved.
## Order Types
Market orders are the main live order type on Predict. A market order attempts to execute at the best available price for the selected side.
* The order quote is based on current price and liquidity.
* If price or liquidity changes before execution, the order may fail or partially fill.
* If less than the full amount executes, unused funds are returned automatically.
* Fees are charged only on the executed portion.
Limit orders let you set a target price and wait for a match.
* Available on **Polymarket-sourced markets only**, and only as **limit buys**. Limit sells are disabled.
* You can cancel an open limit order before it is matched.
* Jupiter Forecast markets and sports ticket markets are market-order only. A Limit tab may still appear on the order form there, but it is disabled.
### Execution Flow
Predict abstracts away most of the execution machinery. In normal use, you only sign the transaction shown in your wallet.
The app checks the selected market route and estimates price, contracts, fees, and payout.
You review the quote and sign the transaction in your wallet.
Jupiter validates the trade and attempts to execute it through the selected route or market integration.
If the trade executes, your position appears in Profile. If it cannot execute, or only partially executes, unused funds are returned automatically.
This process can involve on-chain accounts, route execution, keepers, and market integrations behind the scenes. You do not need to manage those pieces manually.
## Position Management
A **position** represents your holdings in a specific market side.
### Position Data
Your Profile can show the following for each position:
| Field | Description |
| - | - |
| Event | The event and market name |
| Size | Number of contracts held |
| Value | Current estimated market value |
| Avg. Price | Average price paid per contract |
| Mark Price | Current reference price per contract |
| PnL | Unrealised profit or loss, with fee display controls where available |
| Payout if right | Estimated payout if your side wins |
| Settlement status | Whether the market is open, closed, claimable, refunded, or settled |
### Closing a Position
You can try to close a position before settlement by clicking **Close**, or **Close All** to exit all eligible positions.
* Closes execute at the current bid, so the spread matters.
* You can close a position **partially or in full**: the Close panel offers percentage presets (**25%, 50%, 75%, or Max**) or a custom dollar amount. Choosing Max sells the entire position regardless of price moves.
* A close can fail if the market is closed, liquidity is too low, or the route is temporarily unavailable.
### When You Can Close a Position
Whether you can close depends on the market's current state:
| Market state | Can you close? | Notes |
| - | - | - |
| Open (Live) | Usually | Close attempts sell at the current bid if liquidity is available |
| Closed | No | Trading has stopped. Wait for settlement |
| Settled (you won) | No | Claim the payout instead |
| Settled (refund) | No | Refund is processed on-chain and reflected in Profile |
| Settled (you lost) | No | The position is final and no action is needed |
Low liquidity can make a position difficult or impossible to close even while the market is open. If a position looks stuck for an unusually long time, raise a ticket via [Discord](https://discord.gg/jup). Some market types, such as [special markets](#special-markets), cannot be closed at all and must be held to resolution.
### Profile Tabs
Your Profile page has three main tabs:
* **Positions**: active positions and claimable or refundable outcomes.
* **Open Orders**: pending orders when that flow is available.
* **History**: completed trades, settlements, claims, and refunds.
A period filter lets you narrow Positions, Open Orders, History, and the portfolio summary to a chosen time window. The portfolio summary also includes a PnL chart showing your profit and loss over time.
## Market Sources and Integrations
Jupiter Predict can surface markets from external prediction market providers and Jupiter-supported market integrations. Browse markets are currently sourced from Polymarket, alongside short-duration crypto markets and other Jupiter-supported integrations. When an external provider has trading problems, a warning banner appears on the affected feeds and event pages; orders on those markets can fail or stay pending until the provider recovers.
### What This Means for Users
* **Market availability**: not every market from every source is available on Jupiter.
* **Action availability**: some markets may be view-only, closed, unavailable in your region, or temporarily unavailable for buys or sells.
* **Resolution rules**: each market follows its own published rules. Read the rules summary before trading.
* **Disputes**: if a source market has a dispute or delayed resolution process, Jupiter follows the final result from that source or integration.
* **Settlement**: some market routes record eligible results on-chain. Other integrations may settle through their own process and reflect status in Profile.
### Order Behaviour by Market Source
| Market source | Orders | Early sell | Limits and fees |
| - | - | - | - |
| Polymarket-sourced markets | Market orders + limit buys (limit sells disabled) | Yes, at the current bid | \$5 minimum order; standard trading fees |
| Jupiter Forecast markets (stocks) | Market orders only | Yes, via **Close** | No trading fees; tradable during US market hours only; terms acknowledgement required |
| Sports ticket markets | Market orders only | No, held to settlement | \$4 minimum, \$3,000 maximum per ticket; currently no trading fees |
### Special Markets
During major sporting events, Predict lists sportsbook-style **ticket markets** on individual matches: Double Chance, Spreads, Totals, Odd / Even, Total Goals ranges, and Exact Score (see [Sports Match Markets](#sports-match-markets)).
Ticket markets work differently from standard Browse markets:
* **No early sell.** Once you buy a ticket, you hold it until the market resolves and pays out at settlement. There is no orderbook and no early exit.
* **Market orders only.** A Limit tab may appear on the form but is disabled on these markets.
* **Each purchase is a separate ticket.** Buying the same market more than once creates multiple independent positions rather than adding to one.
* **A separate sportsbook provider sets the odds**, so they can differ from similar markets elsewhere.
* **Stake limits**: minimum **\$4** and maximum **\$3,000** per ticket. The \$5 minimum order applies to the normal order path (Polymarket and Jupiter Forecast markets), not to tickets.
* **Currently no trading fees** on ticket markets.
Because ticket positions cannot be sold, your funds stay committed until the market resolves, regardless of how the odds move in the meantime.
## Degen Mode
Degen is a section within Jupiter Predict focused on short-duration Up or Down price markets. It has two tabs: **Crypto** and **Stocks**.
The **Crypto** tab currently lists 5-minute and 15-minute Up or Down markets on **BTC, SOL, ETH, XRP, BNB, DOGE, and HYPE**, each grouped under a live price chart; the **Stocks** tab hosts SPCX (SpaceX). Filter chips narrow the list by window (**All | 5m | 15m**) or by asset, and a **Live** filter shows the markets currently running.
### How It Works
Each Degen market asks whether a token's price will move **Up** or **Down** from a reference price over a defined window.
* The available assets and windows can change.
* The reference price is shown on the market card.
* The current price updates while the market is live.
* If the final price is above the reference, **Up** wins.
* If the final price is below the reference, **Down** wins.
* The market rules determine any edge cases, such as ties or unavailable price data.
Each market's **rules summary**, at the bottom of its page, names its exact resolution source. The crypto markets resolve from **Chainlink data streams** (for example the SOL/USD TWAP stream), not from spot markets or other price sources.
Degen markets may use a different route from standard Browse markets, but the basic wallet flow is the same: review the quote, sign, and monitor the position. Settlement actions can vary by route: Profile shows whether the outcome is automatic, claimable, refundable, or final.
### Jupiter Forecast Markets
Some Degen markets carry a **Jupiter Forecast** label. These are custom short-duration markets operated through a Jupiter market integration, over **5-minute** and **15-minute** windows, bought with USDC. They currently cover SPCX (SpaceX) Up or Down in the **Stocks** tab. The BTC Up or Down markets in the **Crypto** tab are Polymarket-sourced Degen markets since 30 September 2026 and no longer carry the Forecast label.
Forecast markets behave like other Degen markets, with two specifics set out in each market's rules summary:
* **Resolution source**: the outcome is determined from the price feed named in the rules — **Pyth Pro** signed snapshots (Equity.US.SPCX/USD) for SPCX — not from other price sources or spot markets. If the final price is **greater than or equal to** the starting price, the market resolves to **Up**; otherwise it resolves to **Down**.
* **Near-instant settlement**: winnings are credited to your wallet automatically shortly after the window closes. There is nothing to claim.
* **Market orders only**: the trade panel shows a **Limit** tab, but limit orders are not supported on these markets.
* **Order limits**: minimum \$5 and maximum \$1,000 per order.
* **Windows open as they go live**: upcoming windows are shown but are not tradable until the window is live. A short daily maintenance period, shown in the interface, makes these markets briefly unavailable each day.
* **Stock markets follow US market hours**: SPCX markets (currently badged **No fees**) are tradable during the US market session only. Outside those hours, the nearest past or upcoming event is still displayed but cannot be traded. You must acknowledge the terms and conditions before trading a stock market for the first time.
## Arcade: One-Minute Markets
The Arcade, in its own tab of the Predict navigation, runs continuous one-minute
BTC and SOL Up or Down rounds. It is a parimutuel game: instead of trading
contracts against an order book, everyone bets into a shared prize pool and
winners split the losing side.
Rounds run as a continuous carousel: **Ended**, **Live** (locked), **Next**
(open for entry), and **Later**. You always bet on the Next round; a countdown
shows when entry closes, and once the round goes live no more bets are accepted.
How a round works:
* Pick BTC or SOL, then bet **Up** or **Down** on the Next round with USDC
(minimum 1 USDC).
* Each side displays a live payout multiplier (for example Up 2.46x) computed
from the current pool split. It moves as bets come in, until entry closes.
* The price captured when the round locks is the reference. **Up** wins if the
round's closing price is above it; **Down** wins if it is below.
* Winners share the losing pool in proportion to their stake, after a fixed
**1% fee on winnings**. If only one side has bets, or the closing price equals
the reference, the round is **VOID** and every stake is refunded in full.
* Settlement is automatic and takes a few seconds. Payouts and refunds are sent
straight to your wallet; there is nothing to claim.
* You can bet both sides of the same round; the round still settles normally.
Around the game, the page shows your last five results with any streak, a
**Chart** toggle, a **Sound** toggle (countdown and settlement effects), and a
**Quick Bet** mode to place bets in one tap with a preset amount. With your
wallet connected, **Your stats** (record, rounds played, realized PnL) and
**Your history**, a preview of your last five rounds, sit on the Arcade page
itself, next to a live feed of everyone's bets. The full **History** page, reached from that preview, is a
dedicated, paginated page listing every past round with its asset, your
entries, the outcome, the payout, your realized PnL, and explorer links to
the settlement transactions.
### Identifying a round
Arcade rounds have no event page or event URL. Each round is its own on-chain
account, and the Arcade shows it in two places: the round time on a round card
(for example **11:01**) is a link to the round's account on the explorer, and
the **History** view lists each past round with its shortened address (first
and last four characters) as an explorer link, next to the date and time. When
you contact support about an Arcade bet, give this round address, or the
explorer link, together with your wallet address; the settlement transaction
links in History help too.
### Entry limits and errors
Each entry must stay between a minimum and a maximum amount in USDC (the
minimum is currently 1 USDC); both come from the Arcade configuration and the
bet button shows **Below minimum … USDC** or **Above maximum … USDC** when your
amount is outside the range, and **Insufficient USDC** when your balance does not
cover it. **Quick Bet** shows the same messages under the amount. The **Up** and
**Down** buttons are disabled once the countdown reaches zero and the round
locks, and while a previous bet is still being sent. If the button reads
**Couldn't load limits**, the configuration did not load: reload the page. A bet
goes through **Preparing Bet**, a signature request in your wallet, and
**Placing Bet**; on success the toast **Bet placed** links to the transaction,
and on failure the toast explains the error.
Arcade rounds are fast, repeated bets on one-minute price moves. The displayed
multiplier is not fixed: your final payout depends on how the pool is split
when the round locks. Only bet what you can afford to lose.
## Fee Structure
Fees are charged only on executed trades: buying or selling contracts. Fees are included in the quoted amounts shown before you sign, rather than displayed as a separate line.
* Fees are charged in whichever mint is used to purchase the contracts.
* Fees are always rounded up to the nearest cent.
* There are no fees when claiming payouts.
* Orders that do not fill pay no trading fee until they execute.
### Arcade Fees
Arcade rounds charge a fixed **1% fee on winnings only**. Refunded stakes from
VOID rounds pay no fee. This schedule is specific to the [Arcade](#arcade-one-minute-markets)
and differs from Browse and Degen market fees.
### Browse Market Fees
For Browse markets sourced from Polymarket, the trading fee has two components: where Polymarket charges a fee on a market, Jupiter charges an additional fee equal to the Polymarket fee. The total trading fee you pay is twice the Polymarket fee.
The fee size depends on three factors:
* **Contract price**: the price you pay per contract.
* **Number of contracts**: fees scale with the size of the trade.
* **Outcome uncertainty**: trades priced closer to \$0.50 are more uncertain, so fees are slightly higher. Trades priced closer to \$0.00 or \$1.00 are more certain, so fees are lower.
The amounts below are the total trading fee you pay, with the Jupiter fee already included.
| Price per Contract | Fee (1 Contract) | Fee (100 Contracts) |
| - | - | - |
| \$0.01 | \$0.01 | \$0.07 |
| \$0.05 | \$0.01 | \$0.34 |
| \$0.10 | \$0.01 | \$0.63 |
| \$0.15 | \$0.01 | \$0.90 |
| \$0.20 | \$0.02 | \$1.12 |
| \$0.25 | \$0.02 | \$1.32 |
| \$0.30 | \$0.02 | \$1.47 |
| \$0.35 | \$0.02 | \$1.60 |
| \$0.40 | \$0.02 | \$1.68 |
For example, buying 100 contracts at \$0.25 costs \$25.00 in total, with a trading fee of \$1.32.
This structure keeps fees low for high-confidence outcomes, scales fairly with trade size, and encourages liquidity by not charging orders that are waiting to fill.
### Other Routes and Costs
Markets that use other routes can include additional or different fees:
| Fee type | What it covers |
| - | - |
| Route fee | Fees from swap or liquidity routes used by a specific market |
| Solana network cost | Transaction fees and account rent paid in SOL |
Degen markets may use a different route from standard Browse markets, so the Polymarket fee table above does not necessarily apply to them. The order quote always shows the fees for the specific market and route before you sign.
### When Fees Are Not Charged
* If an order does not execute, trading fees are not charged.
* If an order partially executes, fees apply only to the executed portion.
* Claims and refunds do not charge Predict trading fees, though Solana network fees may still apply.
## Settlement Process
Settlement turns a closed market into a final result. Some market routes record an on-chain result, while other routes may settle through their own integration. Most markets settle to YES or NO, but refund and draw outcomes are possible when the rules require them.
Trading stops at the market's scheduled close time or when the source market stops accepting trades.
The market source or integration determines the result according to the market rules.
For some market routes, Jupiter records eligible results on-chain. Other integrations may settle through their own route and update Profile status.
Your position is marked as claimable, refundable, automatically settled, lost, or otherwise final.
If Profile shows **Claim** or a refund action, follow the prompt. When you have claimable positions, a **Claim All** button appears in the Positions tab and claims them all at once. Some outcomes are processed automatically. Losing positions need no action.
### Resolved vs. Claimed
These are separate states:
* **Resolved** means the market result has been finalized and Profile has settlement status. For some market routes, this includes an on-chain result.
* **Claimed** means a winning payout has been credited to your wallet.
* **Refunded** means an eligible refund has been credited to your wallet.
### Pending vs. Resolved
A market can be resolved by its source before it appears settled on Jupiter. This is expected during the relay and settlement update process. Your Profile updates once final status is available.
### When a Market Does Not Resolve as Expected
Most markets settle after their source result is available, but timing is not guaranteed.
Possible reasons for a delay:
* The real-world event has not produced a clear outcome.
* The market source is waiting for an authoritative result.
* A provider, route, or settlement issue needs investigation.
While a market is closed and waiting for settlement, you cannot close the position. If a market remains unresolved for an unusually long time, raise a ticket via [Discord](https://discord.gg/jup).
### Cancelled, Voided, or Refunded Markets
If a market is cancelled, voided, or resolved as refundable, eligible positions can receive a refund after final settlement status is available.
Eligible refunds are processed on-chain and reflected in Profile. Profile shows the refund status and any available action. If the status does not update after the market has clearly resolved as refundable, contact support via [Discord](https://discord.gg/jup).
## What to Give Support
When you raise a ticket via [Discord](https://discord.gg/jup), include enough detail for the team to find your trade. The most useful items:
* **Your wallet address** — the full address you traded with, not the truncated form shown in the app.
* **The event page URL** — every event has its own address, for example `jup.ag/prediction/...`. Open the event and copy the URL from the browser address bar: its last segment is the market's identifier.
* **For an Arcade round**, which has no event URL: the round's address, shown as a shortened explorer link in the Arcade **History** view (or by clicking the round time on the round card), and the settlement transaction link from the same row. See [Identifying a round](#identifying-a-round).
* **What happened and when** — the action you took, the result you expected, and the approximate time with your timezone.
* **The transaction signature**, if the issue concerns a specific order. You can find it in your wallet's activity history.
* **The position details** as shown in the Positions tab: event, side, size, and average price.
The event URL and your wallet address together identify a position, so include both even when the issue seems obvious.
## Leaderboard
The Leaderboard is a public ranking of traders on Jupiter Predict.
* **Metrics**: PnL, Volume, and Win Rate
* **Time filters**: All Time, Weekly, and Monthly
* **Global stats**: total platform volume and total number of predictions
Traders are identified by their chosen **username**, or by truncated wallet address when none is set. Predict users can pick a username (set once via a signed request, from their profile); it is displayed on profiles, leaderboards, and clan surfaces. The Leaderboard is informational and does not affect trading.
## Clans
Clans are trader groups on Jupiter Predict that compete in a **weekly PnL race**: every trade a member makes counts toward their clan's weekly total. The competition has its own **clan leaderboard** with a qualification rule: a clan qualifies for the week by reaching a weekly volume threshold with a positive net PnL. Clans that have not yet qualified are ranked by volume; qualified clans are ranked by PnL. The clan directory lives under the **Clans** tab (`jup.ag/prediction/clans`), where each clan shows its name, handle, and member count (the optional description is not shown on directory cards). The directory has a live search by clan name or handle and loads more clans as you scroll. Joinable clans are listed by member count, with full clans at the end. Each clan's detail page shows the clan's PnL for the selected competition in the header, and lets you navigate by date between the current competition and past ones.
* **Creating a clan**: any connected user can create a clan and lead it, choosing a name, a handle (3-64 lowercase letters, numbers, and hyphens), and an optional description. Members are invited after creation. Clans cannot be deleted once created.
* **Joining a clan**: join with a direct invitation or an invite link from the clan leader, or send a **Request to join** from the directory and wait for the leader's approval (the request is a wallet message signature, not a transaction). Pending invitations appear in the directory's **Pending invitations** view.
* **Member limit**: a clan holds at most **50 members**. Once full, new invitations, join requests, and acceptances are blocked until a spot frees up.
* **Leaving and removal**: the clan leader can remove members.
* **Member metrics**: the clan detail page lists each member with their realized PnL and trading volume for the selected competition period (the current one by default), plus a **Rewards** column once the week is finalised; join requests and invitations also show the candidate's PnL, number of predictions, and win rate, so leaders can screen who they let in.
* **Clan chat**: each clan detail page has a chat reserved for the clan's active members. Messages are signed with your wallet.
Clans are a social and competitive layer: they do not change how orders execute, settle, or what fees you pay.
### Clan rewards
Each week, members of the three best qualified clans earn rewards, paid as **cash** and [Gacha](/user-docs/trade/gacha) packs. A competition runs from Monday 00:00 UTC to the next Monday 00:00 UTC, and rewards are assigned once the week is finalised, shortly after it ends. If no clan qualifies, there is no winner and no rewards for that week.
* **Who earns**: in each of the three rewarded clans (**Champion**, **Runner-up**, **Third place**), members are ranked by their own PnL for the week, and the reward tiers cover ranks #1 to #10. Each member's actual reward appears on the clan page once the week is finalised.
* **What they earn**: with the current tiers, the top 3 members of the Champion clan receive cash on top of a Gacha pack. Every other rewarded member receives a Gacha pack, whose value depends on the clan's place and on the member's rank band (#1, #2, #3, #4-10).
* **Where to see the amounts**: the standings card on the clan leaderboard shows the current tiers, with a total per clan shown as "Up to" and the reward for each rank band. The Clans page banner and the Trending feed banner show the weekly prize pool. Amounts can change, and the leaderboard always shows the current ones.
* **After the week**: while a week is open, the clan page reads "Rewards are assigned after the week ends". Once the week is finalised, each member row shows its reward (for example "\$600 Cash" or "\$420 Gacha"), and the clan page states "Ranked #N · X members earned rewards", or that the clan did not qualify that week.
## On-Chain Costs
Jupiter Predict runs on Solana. Using it requires a small SOL balance for:
* **Transaction fees**: paid when you sign transactions.
* **Account rent**: temporary deposits required for some on-chain accounts.
Rent is recovered automatically when eligible accounts are closed. These are standard Solana network costs and are separate from Predict trading fees.
# Prediction Markets
Source: https://docs.jup.ag/user-docs/trade/predict/index
Trade on real-world events by buying YES or NO contracts on specific outcomes.
## What Is Jupiter Predict?
Jupiter Predict is a prediction market experience on Solana. It lets you trade on the outcome of real-world events by buying contracts for either side of a market: **YES** or **NO**.
A winning contract is designed to pay **\$1 worth of the market's settlement asset**. If the market resolves against your side, the contract expires worthless.
Jupiter brings prediction markets into the Jupiter trading experience. Markets may be sourced from external prediction market providers, Jupiter-supported market integrations, or short-duration crypto markets. Availability, liquidity, and settlement timing can differ by market.
You need a Solana wallet and a small amount of SOL for network fees. The order panel shows the supported funding token, expected contracts, fees, and settlement details before you sign.
## How It Works
Most markets on Jupiter Predict are binary. You pick a side, buy contracts at the current market price, and either hold until settlement or sell before trading closes.
### Price Equals Implied Probability
Contract prices usually trade between \$0.01 and \$0.99 and reflect the market's view of how likely an outcome is. A YES contract priced at \$0.70 means traders are currently paying about 70 cents for the YES side. The corresponding NO side is usually priced near \$0.30. A persistent **Price (¢) / Decimal (x)** selector on Browse, Event, and Degen pages can switch the display to a decimal odds-style multiplier instead of cents.
These prices are not guarantees. They move with supply, demand, liquidity, and new information.
### Profit and Loss
Your profit depends on what you paid, whether your side wins, and any fees paid when entering or exiting.
You buy 10 YES contracts at \$0.30 each. You spend \$3 before fees.
* If the market resolves to YES: each contract pays \$1. You receive \$10. Profit before fees: \$7.
* If the market resolves to NO: your contracts expire worthless. You lose the \$3 you spent.
You buy 10 NO contracts at \$0.40 each. You spend \$4 before fees.
* If the market resolves to NO: each contract pays \$1. You receive \$10. Profit before fees: \$6.
* If the market resolves to YES: your contracts expire worthless. You lose the \$4 you spent.
You do not have to wait for settlement. If the market is still open and there is enough liquidity, you can sell your contracts at the current bid price. Some market types, such as special markets on sporting events, cannot be sold and must be held to resolution.
## Browse, Degen, and Arcade
Jupiter Predict has three main trading surfaces.
Events across categories like sports, crypto, politics, economics, culture, finance, and more.
Each market includes a rules summary that explains how the result is expected to be determined. While a clan competition is open, the Trending feed opens with a banner showing the weekly clan prize pool, split between cash and Gacha packs, with **Find a clan** and **View leaderboard** links (see [Clans](/user-docs/trade/predict/how-it-works#clans)).
Short-duration crypto markets where you predict whether a token's price will move **Up** or **Down** over a fixed window.
Available assets, windows, and limits can change. Use the filters in the app for the current set of live markets.
Continuous one-minute BTC and SOL Up or Down rounds, settled from a shared prize pool rather than an order book, with a fixed 1% fee on winnings.
## Categories
Browse markets are organised into categories. The available list can change as new markets are added or removed.
| Category | Examples |
| - | - |
| Sports | Championship winners, match results, MVP awards, Formula 1 race winners |
| Crypto | Token price targets, network milestones |
| Politics | Election outcomes, nominations, policy decisions |
| Esports | Tournament winners, match outcomes |
| Culture | Awards, entertainment, public figures |
| Economics | Interest rate decisions, macro indicators |
| Tech | Product launches, company milestones |
| Finance | Stock movements, commodity prices |
| Weather | Temperature, climate events |
| Mentions | Predictions on what public figures or media will say |
You can also filter by **Live** to see markets currently trading, or use search to find a specific event. Events can be sorted by volume, and seasonal filters (such as **World Cup**) can appear during major events.
## Order Types
Jupiter Predict currently uses **market orders** as the main live order type.
* **Market order**: attempts to execute at the best available price when you place the trade. If the price or liquidity changes before execution, the order may fail or fill with fewer contracts than expected.
* **Limit order**: lets you choose a target price and wait for a match. Available on Polymarket-sourced markets only, and only as **limit buys** (limit sells are disabled).
A Limit tab may appear on markets that do not support limit orders (Jupiter Forecast and sports ticket markets); it is disabled there. See [Order Behaviour by Market Source](/user-docs/trade/predict/how-it-works#order-behaviour-by-market-source).
## Fees
Fees are shown in the order quote before you sign. They are charged only on executed trades (buying or selling contracts), in whichever mint is used to purchase the contracts, and are always rounded up to the nearest cent. There are no fees when claiming payouts.
For Browse markets sourced from Polymarket, the trading fee has two components: where Polymarket charges a fee, Jupiter charges an additional fee equal to the Polymarket fee. The total trading fee is twice the Polymarket fee. The fee size depends on the contract price, the number of contracts, and how uncertain the outcome is. See [Fee Structure](/user-docs/trade/predict/how-it-works#fee-structure) for the full breakdown and examples.
Other routes, such as Degen markets, may use a different route and fee structure. Arcade rounds charge a fixed 1% fee on winnings only. Solana network fees and account rent are separate on-chain costs paid in SOL.
If an order does not execute, trading fees are not charged. Any unused funds are returned automatically.
## Settlement and Payouts
When a market closes, trading stops. The result is determined according to the market's rules. Some market routes record eligible results on-chain, while other integrations may settle through their own route and reflect the status in Profile.
The settlement flow usually works like this:
1. The market reaches its close time and trading stops.
2. The market's source or integration determines the result from the published rules.
3. The result is recorded on-chain or reflected through the relevant integration.
4. Profile updates with claimable, refundable, automatic, lost, or final status.
5. If Profile shows an action, follow the prompt. Some outcomes are processed automatically.
6. Losing positions expire worthless. No action is needed.
A market can be resolved by its source before it appears as settled on Jupiter. This is expected while the result is being picked up, recorded, or reflected in Profile.
Some markets can resolve to a refund or draw outcome depending on the rules. In those cases, eligible refunds are processed on-chain and reflected in Profile. Profile shows the refund status and any available action once settlement status is available.
## Additional Features
A personalised feed of recommended events based on your activity.
Public ranking of traders by PnL, Volume, or Win Rate. Filterable by All Time, Weekly, or Monthly.
View your positions, open orders, trade history, claims, and refunds, with a period filter to narrow the view.
Save events with the bookmark icon on any event card, and revisit them in your bookmarked list.
Each event page has a comment section where you can post, reply, like, and delete comments. External links are blocked in comments (only HTTPS links to jup.ag are accepted); still treat any instructions or offers in comments with caution.
A public live feed across all prediction markets, in the Browse and Degen side panels and at jup.ag/prediction/activity. The **Trades** tab shows the market, side, price, and amount of each trade. The **Large bets** tab lists the largest bets of \$2,000 or more, newest first and anonymously (event, market, size, side, fill price, and age); **Follow** takes the same side at the current price, in one tap with Quick Buy on or through the buy form otherwise. Bets on markets that are no longer open show **Closed** instead.
## Risks
Prediction markets carry real financial risk. Read the points below carefully before trading.
* **You can lose your entire position.** If the outcome goes against your prediction, your contracts expire worthless.
* **Prices reflect current market demand, not certainty.** Markets can be wrong, illiquid, or slow to react to new information.
* **Liquidity varies.** Some markets may have wide spreads or low depth, which can make it hard to buy or sell at the displayed price.
* **Sells execute at the bid.** Closing a position usually returns less than the displayed mid price because of the spread.
* **Settlement depends on market rules and integrations.** Some market routes record results on-chain. Other integrations may settle through their own process.
* **Settlement is not instant.** There can be a delay between market close, source resolution, final status updates, and claim or refund availability.
* **Token and stablecoin risks apply.** Trades and payouts use dollar-pegged assets, which can carry issuer, liquidity, and depeg risk.
* **Regulatory restrictions apply.** Prediction markets may be restricted or regulated in your jurisdiction. Trading is unavailable in some regions, including the United States, South Korea, and Australia, and the Jupiter Mobile app restricts additional regions (including parts of the EU).
## What You Need
A wallet such as Phantom or Solflare, connected to Jupiter.
The order panel shows which token can be used for the selected market and route.
For Solana transaction fees and account rent. Rent is recovered automatically when eligible accounts are closed.
## Related Pages
* [Using Predict](/user-docs/trade/predict/get-started) — Browse markets, open positions, manage trades, and claim payouts step by step
* [Predict FAQ](/user-docs/trade/predict/faq) — Frequently asked questions about Jupiter Prediction Markets
# AlphaScan
Source: https://docs.jup.ag/user-docs/trade/spot/alphascan
Real-time feed of new token launches on Solana — lifecycle tracking, developer data, and customization.
[AlphaScan](https://jup.ag/spot/alphascan) is a real-time feed of token launches across Solana. It is organized into three columns based on the token's lifecycle stage:
| Column | What it shows |
| - | - |
| **New** | Tokens just launched (typically seconds to minutes old) |
| **Soon** | Tokens still on a bonding curve, approaching migration to a standard liquidity pool |
| **Bonded** | Tokens that have recently migrated from a bonding curve to a liquidity pool |
AlphaScan can also be opened as a panel from the bottom bar on desktop, alongside other Spot views (Watchlist, SmartMoney, Discover) within a single sidebar that uses tabs.
Customisation settings (showing or hiding the New, Soon, and Bonded columns) are shared between the sidebar and the main AlphaScan page. Hiding a column in the sidebar also hides it on the full page, and vice versa.
## Data displayed per token
Each token entry in AlphaScan shows:
| Field | Description |
| - | - |
| **Name & Logo** | Token name, full name, and logo |
| **Reused icon** | A badge on the token icon, shown when another token uses a visually similar icon. This is an informational caution signal, weaker than the impersonation warning: it does not identify which token is the original, and a token can gain or lose the badge when its own icon changes. Verified tokens and recognised issuer-backed assets are not flagged; the badge only appears on unverified tokens reusing an icon. |
| **Contract Address** | Truncated onchain address |
| **Age** | Time since the token was created (e.g. 32s, 5m, 6h) |
| **X Account** | The token's linked X (Twitter) account, shown as a row below the token age and social icons. Displays the @handle along with the account's following and followers counts. Clicking the handle opens the profile on X. Only shown when the token has a linked X account. An account that has used more than one X handle shows a warning-coloured dot, with the exact handle count in the profile popover; a clean signal is not a guarantee, as handle data can be missing for new accounts. Community links open a details popover with the community banner, description, member count, creation date, and creator. |
| **Holders** | Current number of holders |
| **V (Volume)** | Trading volume |
| **MC (Market Cap)** | Current market cap |
| **F (Fees)** | Combined priority fee, tip, and trading fees |
| **TX** | Number of transactions |
| **Bonding Curve Progress** | Visual progress bar showing how far the token is along its bonding curve |
| **Launchpad** | Source launchpad (e.g. pump, StonkFun, Purps, Perpspad, OTC) |
Percentage metrics are displayed at the bottom of each entry:
| Metric | Description |
| - | - |
| **Top 10 Holders %** | Percentage of supply held by the top 10 wallets. Clicking opens a [Bubblemaps](https://bubblemaps.io) visualization showing holder distribution and wallet connections. |
| **Dev Holding %** | Percentage of supply held by the developer wallet. The time since the developer's last activity may also be shown (e.g. "3mo"). |
| **Snipers Holding %** | Percentage of supply held by snipers — wallets that bought the token early, within the first three blocks after launch. |
| **Insiders Holding %** | Percentage of supply held by insiders — wallets that bought within the first block after launch, or received the token from another insider (status propagates through transfers). |
| **Pro Traders %** | Percentage of supply held by wallets identified as users of professional trading platforms (e.g. Axiom, GMGN). |
Not all metrics are visible by default. You can configure which data fields appear using the **Customise** panel (see below).
## Dev Tokens popup
Clicking the dev info on a token entry opens a popup showing the developer wallet's history:
| Field | Description |
| - | - |
| **Bonded** | Number of the developer's tokens that have migrated to a liquidity pool (with percentage of total) |
| **Created** | Total number of tokens created by this developer |
| **Created (7d)** | Number of tokens created in the last 7 days |
| **SOL Balance** | Current SOL balance of the developer wallet |
| **Top Token** | The developer's most notable token (with age, traders, and market cap) |
A developer who has created many tokens with few reaching bonded status may indicate a pattern of abandoned projects. This data helps evaluate the developer's track record, but does not guarantee the current token's outcome.
## Quick Buy in AlphaScan
Each token entry includes a ⚡ Quick Buy button. Set your Quick Buy amount at the top of each column, then click ⚡ on any token to buy immediately. You can also select from your saved Quick Buy presets directly in AlphaScan, allowing you to switch between predefined amounts without leaving the feed.
Quick Buy uses your current trade execution settings (Ultra mode by default, or your manual Trade Presets). See [Fees](/user-docs/trade/spot/fees) for details on execution modes.
Quick Buy executes immediately when you click the ⚡ icon. There is no confirmation step. Make sure your Quick Buy amount and execution settings are configured before using this feature.
## Customizing AlphaScan
Click **Customise** in the top-right corner to configure AlphaScan across three tabs:
* **MC / Vol** — font size for market cap and volume (Small or Large)
* **Quick Buy** — button size (Small, Large, Mega, Jumbo)
* **Button Color** — Color or Grey
* **After Quick Buy** — action after purchase (None, Open Chart, New Tab)
* **Secondary Quick Buy Button** — toggle a second Quick Buy button
* **Hide Hidden Tokens** — show or hide tokens you've manually hidden
* **Show Search Bar** — toggle the keyword search bar
* **Square Token Image** — square or circle token logos
* **Progress Ring** — display bonding curve progress as a ring or bar
* **Show Decimals** — toggle decimal values
* **Compact Columns** — compact or spaced column layout
Choose which data fields appear on each token entry:
Market Cap, Volume, TXs, Socials, Holders, Top 10 Holders %, Dev Holding %, Dev Migrations, Dex Paid, Fees Paid, Snipers Holding %, Insiders Holding %, Bundlers Holding %, Pro Traders
You can also set **value highlighting thresholds** for Market Cap and Volume (e.g. highlight tokens above \$150K) to visually flag tokens that meet your criteria.
**Tweet Age Colors** lets you adjust the colors and time thresholds used for the tweet icon on token entries, based on how recent the token's linked tweet is. By default: green under 10 minutes, yellow between 10 and 60 minutes, red above 60 minutes.
Configure the table layout by showing, hiding, or reordering the three columns: **New**, **Soon**, and **Bonded**.
**Filter Launchpad** (top right) filters all three columns by source launchpad. The dialog lists launchpads ranked by current activity (#1, #2, and so on), with Jupiter Studio pinned at the top; pick one or several, or **Select all**, then **Save**. **Reset** returns to showing all tokens.
## Filtering a column
Each column header has three controls: a **Search keyword** field, the ⚡ **Quick Buy** amount, and a **filter** button (funnel icon, tooltip "Token filters"). The filter button opens the **AlphaScan filters** panel, with a tab per column (**New**, **Soon**, **Bonded**) so each column keeps its own filters, and three groups of filters:
| Group | Filters |
| - | - |
| **Keywords** | Search Keywords and Exclude Keywords (comma separated) |
| **Metrics** | Only CTO, Only Dex Paid, Only Dex Boost, Only Dev Sold, Only Dev Holding, Only Pump Live; ranges for Market Cap $, 24h Volume $, 24h Net Buy Volume $, 24h Net Buyers, Holders, Liquidity $, Fees Paid (SOL) |
| **Audit** | Mint Auth Disabled, Freeze Auth Disabled, Verified; ranges for Token Age (mins), **Bonded Age (mins)** (Bonded column only), Tweet Age (mins), Top 10 Holders %, Dev Holding %, Snipers Holding %, Insiders Holding %, Bundlers Holding %, Pro Traders %, Pro Traders, Dev Migrations, Organic Score |
| **Socials** | Original Socials, At Least 1 Social, No similar icon found, Twitter handles to include, Twitter Followers, Following, Handles Used |
The **New** and **Soon** tabs also offer a **Bonding Curve %** range, which the Bonded tab does not need.
To keep only tokens that bonded recently, open the **Bonded** tab, go to **Audit**, and set a **Bonded Age (mins)** maximum: 360 for the last 6 hours, 60 for the last hour. **Save All** applies the filters, **Reset Bonded** clears that column, **Reset All** clears every column. The **Import** button and the export icon next to **Save All** let you save a filter set to a file and load it again, on another browser for example.
AlphaScan metrics such as 24h Volume and 24h Net Buyers are computed over a fixed 24-hour window. There is no timeframe selector on AlphaScan; the 5m / 1h / 6h / 24h selector is a [Discover](/user-docs/trade/spot/discover) feature.
Socials filters include **No similar icon found** (tokens whose icon does not visually match another token's), minimum and maximum **handle reuse**, and an **Original Socials** preset for accounts with at most one observed handle.
Tokens displayed in AlphaScan are typically very new and carry elevated risk. Low liquidity, limited holder history, and active developer authorities are common. See [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations).
***
Browse tokens by category and apply filters.
Detailed data when you open a token.
Risks of trading newly launched tokens.
# Discover
Source: https://docs.jup.ag/user-docs/trade/spot/discover
How to discover and filter tokens on Jupiter Spot using tabs, screeners, filters, and Quick Buy.
Jupiter Spot provides several curated feeds to help you discover tokens based on different market signals. Each feed is a tab at the top of the **Discover** view.
Discover can also be opened as a panel from the bottom bar on desktop, alongside other Spot views (Watchlist, SmartMoney, AlphaScan) within a single sidebar that uses tabs.
There may be a slight price lag (under 1 second) between the sidebar and the main page. This is expected behaviour and does not affect trade execution.
## Discovery tabs
| Tab | What it shows |
| - | - |
| **Trending** | Tokens most purchased in the past 24 hours that also have a positive price change |
| **Stocks** | Stocks available on Solana as tokenized versions — listed (underlying) prices by default, or the per-token **Tokenized stocks** view with on-chain prices (see below). Also where **Stocks** in Jupiter's left navigation lands |
| **Popular** | Tokens reflecting recent interest across Jupiter |
| **Organic** | Tokens ranked by [Organic Score](#organic-score), with organic volume and fees paid |
| **Categories** | Tokens grouped by category and narrative (e.g. memes, AI, DeFi) for sector-level discovery |
| **Top Traded** | Tokens with the highest trading volume in the past 24 hours |
| **Launchpads** | Real-time analysis of tokens across major Solana launchpads with volume comparison. See [Launchpad Screener & Runners](/user-docs/trade/spot/launchpad-screener-and-runners) for details. |
| **Stablecoins** | Stablecoins Screener with aggregated metrics and performance data (see below) |
### Token table
The token-list tabs share a sortable table. Use the **timeframe selector** (5m, 1h, 6h, 24h) to set the period for the price and volume columns, and the **Filters** control to narrow results.
| Column | Description |
| - | - |
| **Token / Age** | Token name, verification status, and time since launch |
| **Price / %Δ** | Current price and percentage change over the selected timeframe |
| **MC / FDV** | Market cap and fully-diluted valuation |
| **24h Vol / Net** | Trading volume and net (buy − sell) volume |
| **Liquidity** | Available liquidity |
| **Holders / %Δ** | Number of holders and percentage change |
| **Fees Paid** | Total fees paid in relation to the token |
| **Last 24h** | Price sparkline over the last 24 hours |
## Organic Score
Many tokens display an **Organic Score** — a metric that estimates how much of a token's activity (holders, volume, liquidity) comes from genuine users rather than bots or wash trading. Jupiter tracks activity from real user wallets in real time; a higher score indicates more organic activity.
The Organic Score is calculated by Jupiter and is independent of a token's verification status.
The Organic Score is a signal, not a guarantee. Statistics may be manipulated by sophisticated traders, and a high score does not mean a token is safe or a good investment. Always do your own research.
## Stablecoins Screener
The Stablecoins tab provides a dedicated screener for stablecoins available on Solana. It has two sub-views:
* **Stable** — standard stablecoins (pegged assets)
* **Yield** — yield-bearing stablecoins
The top of the screener displays aggregated metrics:
| Metric | Description |
| - | - |
| **30d Volume** | Total trading volume across all listed stablecoins over the past 30 days |
| **Total Mkt Cap** | Combined market cap of all listed stablecoins |
| **Total Liquidity** | Combined liquidity of all listed stablecoins |
| **Tokens** | Number of stablecoins listed |
Below, a **Top Performers** table ranks stablecoins with the following columns:
| Column | Description |
| - | - |
| **Token** | Stablecoin name and verification status |
| **Price / %Δ** | Current price and percentage change |
| 30d VWAP | 30-day volume-weighted average price |
| **Market Cap** | Market cap of the stablecoin |
| **30d Vol / Net** | 30-day trading volume and net volume |
| **Liquidity** | Available liquidity |
## Stocks Screener
The Stocks tab covers stocks — equities, ETFs, and commodities — that are available on Solana as tokenized versions issued by third parties. It is also where **Stocks** in Jupiter's left navigation lands ([jup.ag/spot/stocks](https://jup.ag/spot/stocks)).
The tab has two views, switched with the chevron on the **Stocks** tab:
| View | What each row is | URL |
| - | - | - |
| **Stocks** (listed prices) | One row per underlying listed stock, with the stock's own market data. Tokenized versions from different issuers are grouped into the company's row. This is the default view. | `jup.ag/spot/stocks` |
| **Tokenized stocks** (on-chain prices) | One row per token, with on-chain data: price on Solana, liquidity, holders. | `jup.ag/spot/stocks/tokenized` |
### Stocks (listed prices)
Filter chips narrow the list to **All**, **Equities**, **ETFs**, or **Commodities**. The **Top Performers** table is sorted by market cap by default; click a column header to sort by it, and use the page controls at the bottom to browse the full list. Clicking a row opens the stock's [stock page](/user-docs/trade/spot/stock-page), where you pick an issuer to trade.
| Column | Description |
| - | - |
| **Company** | The underlying listed company, with its ticker. Tokenized versions from different issuers are grouped into one row |
| **Price** | Latest available price of the underlying stock in USD — not the price of a specific issuer token |
| **24h %** | Change in the underlying stock price relative to its previous market close |
| **Last 24h** | Sparkline of the underlying stock's closing prices over the last 24 hours (market-hours data, 40-minute intervals) |
| **MC** | Total market value of the underlying company in USD — not the market cap of its tokenized versions |
| **24h Vol** | Number of underlying shares traded over the last 24 hours |
This view has no timeframe selector, filters, or Quick Buy: it describes the listed stock, not a token.
### Tokenized stocks (on-chain prices)
This is the token-level screener. The **Tokenized Stocks** title is a dropdown giving access to per-issuer screeners (xStocks, Backpack, PreStocks, Tessera, Ondo, Shift). Issuer screener pages include a clearable token search (press Cmd/Ctrl+F to focus it) that keeps sorting and pagination while you search.
The top of the screener displays aggregated metrics:
| Metric | Description |
| - | - |
| **24h Volume** | Total trading volume across all listed tokenized stocks over the past 24 hours |
| **24h Traders** | Number of unique traders over the past 24 hours |
| **Total Liquidity** | Combined liquidity of all listed tokenized stocks |
| **Tokens** | Number of tokenized stocks listed |
Below, a **Top Performers** table ranks tokenized stocks with the following columns:
| Column | Description |
| - | - |
| **Token** | Tokenized stock name and verification status, with time since launch |
| **Price / %Δ** | Last traded price of the token on Solana, and percentage change |
| **MC / FDV** | On-chain market cap and fully-diluted valuation of the token |
| **24h Vol / Net** | 24-hour trading volume and net volume |
| **Liquidity** | Available liquidity. Stocks fulfilled via Request-for-Quote display **RFQ** instead of a value (see below) |
| **Holders / %Δ** | Number of holders and percentage change |
The comparison with the underlying stock — **Mark Price**, **Discount**, and **UMC** — is shown on each token's [token page](/user-docs/trade/spot/token-page#tokenized-stock-fields).
### RFQ liquidity
Some tokenized stocks have their liquidity provided primarily through a **Request-for-Quote (RFQ)** mechanism, where market makers fulfill trades on demand rather than liquidity sitting in a standard pool. These tokens display **RFQ** in the Liquidity column instead of a USD value.
For RFQ-fulfilled tokens, always check the quote before executing a trade. Quotes may vary significantly depending on market conditions, and prices outside traditional market hours may be less favourable.
Tokenized stocks are onchain tokens issued by third parties — they are not the same as traditional stocks, and Jupiter does not issue, back, or guarantee any of them. Issuers differ in backing, redemption, trading hours, and eligibility. For how tokenized stocks work and issuer-specific conditions, see [Tokenized Stocks](/user-docs/trade/spot/tokenized-stocks); for the per-stock view with all its issuers, see [Stock Page](/user-docs/trade/spot/stock-page). Understand the risks before trading — see [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations).
## Filters
Each tab supports filters that let you narrow results by specific criteria. Available filters include:
**Trading metrics**
* Market cap, trading volume, holder count, liquidity
**Audit information**
* Token age, developer holdings, authorities held (Mint / Freeze), Jupiter verification status
**Other**
* Keyword search
* Bonding curve percentage — how far a token is along its bonding curve before migration to a standard liquidity pool (see [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations) for an explanation of bonding curves)
Filters apply to the currently selected tab only. Switching tabs resets your filter configuration.
## Quick Buy
Quick Buy allows you to purchase a token directly from any discovery tab without opening the token page.
Near the top of the Spot interface, select a Quick Buy amount in either **SOL** or **USDC**.
Next to any token in the list, click the ⚡ icon to execute a buy at the specified amount.
Quick Buy uses your current trade execution settings (Ultra mode by default, or your manual Trade Presets if configured). See [Fees](/user-docs/trade/spot/fees) for details on execution modes.
Quick Buy executes immediately when you click the ⚡ icon. There is no confirmation step. Make sure your Quick Buy amount and execution settings are configured before using this feature.
***
Real-time feed of new token launches.
Detailed data when you open a token.
Cross-launchpad analysis and Runners.
# Jupiter Spot FAQ
Source: https://docs.jup.ag/user-docs/trade/spot/faq
Frequently asked questions about Jupiter Spot: trading and execution, token safety, charts, features and tools, and limitations.
## General
Jupiter Spot is available on the Jupiter Mobile app:
* **Android**: [Google Play Store](https://play.google.com/store/apps/details?id=ag.jup.jupiter.android)
* **iOS**: [Apple App Store](https://apps.apple.com/us/app/jupiter-mobile/id6484069059)
This is usually caused by stale site data in the browser. Work through these steps in order:
In the wallet's in-app browser, close every jup.ag tab, then fully close the wallet app.
Open the app again and load jup.ag in a brand-new tab. Do not use the Reload button on an existing tab. If the in-app browser keeps failing, open jup.ag in your device's browser (Safari or Chrome) instead.
If it still fails, clear the browser's stored data for jup.ag:
* **iOS (Safari):** Settings → Apps → Safari → Advanced → Website Data, search for "jup.ag", then swipe left to delete it.
* **Android (Chrome):** tap the three-dot menu → Settings → Site settings → All sites, search for "jup.ag", then tap Clear & reset.
* **In-app wallet browsers:** most do not offer per-site clearing. Look for a "clear browser data" or "clear cache" option in the wallet's own settings.
Never clear a wallet app's storage or app data from your phone's system settings unless your recovery phrase is safely backed up. Clearing app data can remove wallets stored on the device.
As a reliable alternative on mobile, use the [Jupiter Mobile app](https://jup.ag/mobile) directly.
Classic mode (for all traders) is the classic Jupiter UX with a simple swap widget, using Ultra only. Trench mode (one-click trading) is a compact, information-dense pro layout with manual presets, designed for active trading on volatile tokens.
Both modes execute swaps identically — the difference is purely visual. You can switch between them in **Settings → Spot → Trading Mode** (gear icon in the top navigation bar).
See [What is Jupiter Spot?](/user-docs/trade/spot/index) for more details.
Open **Display Options** in the chart toolbar and uncheck **News** under Markers. The same dropdown hides your own trades, dev trades, followed-wallet trades, and migration markers. The News button above the chart and the news drawer keep working. See [Charts](/user-docs/trade/spot/token-page#charts).
The round button in the bottom-right corner is the support bubble: it opens the help and feedback chat. It cannot be dragged elsewhere, but you can hide it. Open **Settings** (gear icon in the top bar), stay on the **General** tab, and turn off **Show support bubble**. The chat remains available from **Get Help** at the bottom of the left sidebar. The setting is saved in your browser. See [Settings](/user-docs/trade/spot#settings).
* **Quick Buy** lets you purchase a token directly from a discovery tab or AlphaScan without opening the token page. Set an amount in SOL or USDC, then click the ⚡ icon next to any token.
* **Quick Swap** is available on the right side of a token page. It lets you buy or sell that specific token without leaving the page.
Both use your current execution settings (Ultra mode by default, or your manual Trade Presets).
## Trading & Execution
Limit V2 and DCA V2 ask you to sign a message (or a transaction, for wallets that cannot sign messages, such as a Ledger connected directly to jup.ag) before showing or placing orders. It is a sign-in that proves you own the address; it cannot move funds. Placing an order or withdrawing from the vault still needs its own transaction signature; cancelling an order is the one action the sign-in covers by itself, and even then the tokens only leave the vault once you sign the withdrawal. The credential is stored in your browser for that address, is renewed while you use the site, and lapses after 30 days without a visit (90 days at most). To revoke it, disconnect the wallet from jup.ag, which also ends the session on Jupiter's side; your orders and vault funds are unaffected, and you will be asked to sign again next time. See [Vault access](/user-docs/trade/spot/limit-orders#vault-access).
Spot uses [Jupiter Ultra](/user-docs/trade/spot/ultra-mode) by default, which charges **0% to 0.5%** depending on the volatility of the token pair. More stable pairs tend toward the lower end, and more volatile pairs (e.g. newly launched tokens) tend toward the higher end.
If your wallet doesn't have enough SOL for gas, gasless trading activates automatically. A relayer covers the SOL cost on your behalf and the swap fee is increased by the equivalent value; there is no extra fee for gasless itself. The gas cost is fixed (not proportional to trade size), so larger trades have a smaller percentage impact. Gasless is only available when this amount stays within 10% of the trade, hence a minimum trade size.
Both fees are included in the quote shown before you confirm. See [Fees](/user-docs/trade/spot/fees) for full details.
In Ultra Mode, slippage is calculated automatically by RTSE (Real-Time Slippage Estimator) based on:
* The token category (stable, major, volatile, new listing)
* Recent price volatility on that token
* Liquidity depth in the pools your trade routes through
* Current network conditions on Solana
Values like 0.73%, 1.2%, or higher are normal for non-stable pairs and reflect current market conditions. RTSE sets the lowest slippage that still allows your trade to land successfully.
If the slippage seems too high for your liking, you can switch to [Manual Mode](/user-docs/trade/spot/manual-mode) and set a fixed slippage yourself. Note that lowering slippage too much may cause your trade to fail. See [How RTSE Works](/user-docs/trade/spot/ultra-mode#how-rtse-works) for details.
At those intervals each candle is built live from a handful of trades, so one large trade or a swap through a thin pool prints as a spike or a step. Longer intervals absorb the same trades into a single candle. Charts quoted against a pair or another token refresh about every 60 seconds and reload if their history has a gap. Switch to a 1-minute or longer interval to read the trend. See [Charts](/user-docs/trade/spot/token-page#charts).
Several factors can delay execution:
* **Network congestion** — Solana may be experiencing high activity.
* **Low liquidity** — If your trade needs to route through multiple pools, it may take longer.
* **Slippage settings too low** — If price movement exceeds your slippage tolerance, the trade may get stuck or revert.
If your transaction hasn't been processed in a long time, please reach out to the team at [support.jup.ag](https://support.jup.ag/).
If you are trying to buy a new token with high volatility, it may be difficult to land your trades. This is due to the price moving between the time you submit the swap and the time it executes. Jupiter's built-in slippage protection prevents you from buying tokens at unexpectedly high prices.
Usually, it should take no more than 3 tries to buy a volatile token. If you struggle for more than 3 times, please let the team know at [support.jup.ag](https://support.jup.ag/).
You will pay gas fees for failed trades. Jupiter may compensate users who lost gas on more than 3 consecutive failed attempts.
When you see "No routes found," it typically indicates one of these issues:
* Insufficient liquidity for the token pair you're trying to swap.
* The trade size is too large relative to available liquidity, or too small for Jupiter to reliably execute.
* The token may have trading restrictions that prevent routing.
When liquidity is insufficient for your full trade amount, Jupiter may suggest a reduced amount with a "Try reducing to \[amount]" message. This suggestion is a best-effort estimate based on available routes and is not a guaranteed maximum amount.
Possible reasons include:
* **Slippage** — The token price moved before execution.
* **Routing optimization** — The swap was split across multiple pools.
* **Liquidity depth** — If a token has low liquidity, the trade impact can be significant.
Always check the preview screen before confirming a swap to see the estimated final amount.
If the difference is significant, please let the team know by [submitting a ticket](https://support.jup.ag/hc/en-us).
If you got rekt while using Ultra Mode, you may be eligible for compensation in the following cases:
* A bad quote caused by bad routing, especially when a better route or market was available at the time of swap.
* More than 3 consecutive trades that failed to execute, leading to a loss in gas.
* Unreasonably high slippage (>20%) when unnecessary, leading to sandwich attacks.
Jupiter never compensates for potential PnL, and only compensates Ultra Mode users. Jupiter cannot guarantee zero MEV. Ultra Mode minimizes the risk of getting sandwiched but does not prevent it entirely.
Allow up to 3 days for refund requests to be processed. Open a [support ticket](https://support.jup.ag/requests/new).
Wallets are flagged if they've interacted with sanctioned exchanges or addresses linked to suspected criminal activity such as phishing or social engineering attacks. Please open a ticket on [support.jup.ag](https://support.jup.ag/) so the team can look into your individual case.
Some users have reported higher platform fees than expected. This is typically caused by browser extensions that modify quote responses or inject additional referral fees.
Signs this may be happening:
* Higher-than-expected fees on your Jupiter swaps.
* Warnings in the app like: "Your platform fee is higher than expected due to an installed browser extension not affiliated with Jupiter."
**Known extensions observed to affect Jupiter swaps:**
* **Kerberus** — Injects a referral account and changes the platform fee to 0.95%.
* **Pocket Universe** — Also injects referral fees in Jupiter swaps.
These extensions operate independently of Jupiter and are not developed or maintained by the Jupiter team.
**How to fix:**
1. Double-check fees before approving any transaction.
2. Disable or remove extensions that charge extra fees.
3. Restart your browser and open a fresh window.
4. Swap again on [jup.ag](https://jup.ag/) — you should now see normal fees.
[Jupiter Wallet](/user-docs/manage/extension-wallet/security#transaction-protection) includes Transaction Protection, which filters transfers to known malicious addresses injected by such extensions.
Yes. Limit Order V2 and DCA V2 accept Token-2022 tokens, including those that charge a transfer fee. That fee is set by the token itself, not by Jupiter, and it applies each time the token moves: on the deposit, on the sell or each fill, on each buy, and when a cancellation returns your remaining tokens. The rate is shown in the review step before you confirm. A creator can change the rate afterwards, so an order can settle at a different rate than the one displayed. The one refusal is an OTOCO whose token to buy charges a transfer fee. The legacy V1 versions of both order types do not support these tokens. See [Token-2022 and transfer fees](/user-docs/trade/spot/limit-orders#token-2022-and-transfer-fees).
Limit orders may fail to execute due to:
* Extreme market volatility
* Low token liquidity
* Token creators removing all liquidity (rug pull)
* Price movements too rapid for keepers to process
* The price moved before the order was settled
* Slippage failures during settlement
DCA suborders may fail due to:
* Insufficient liquidity
* Price movements beyond acceptable slippage (slippage on DCA orders is managed automatically per execution; it is not a setting you configure)
* Network congestion
* Technical issues with the specific tokens
* Price outside your set USD price range (V2 only — the suborder is marked as Out of Range and rescheduled to the next interval)
Failed suborders automatically retry at the next scheduled interval.
On [jup.ag](https://jup.ag), whenever a wSOL balance is detected in your connected wallet, a line under the swap form reads "You have \[amount] wrapped SOL that you can unwrap". Click **unwrap** and approve the transaction: your entire wSOL balance becomes native SOL. It works from the swap form and from a token page's trade panel, and it does not require the **Use wSOL** setting to be on.
You do not need this after a normal swap, since swaps to SOL already deliver native SOL. It is for wSOL that reached your wallet another way, such as a withdrawal from an external protocol. See [Wrapped SOL (wSOL)](/user-docs/trade/spot/ultra-mode#wrapped-sol-wsol).
Most users never need wSOL: Jupiter wraps and unwraps SOL automatically, and swaps to SOL deliver native SOL. If an external protocol requires wSOL, enable **Use wSOL** in the swap settings (gear icon → **Manual** → **Routing**): swaps to SOL then deliver wSOL instead of native SOL.
wSOL shows as **SOL** in the token selector (mint `So11…1112`). Any separate "Wrapped SOL" token in search results is unrelated and likely a scam. To go the other way, see the previous question. Full details on [Wrapped SOL (wSOL)](/user-docs/trade/spot/ultra-mode#wrapped-sol-wsol).
## Tokens & Safety
Some launchpads fund rewards for a token's holders with a Token-2022 transfer fee: a percentage taken on every buy, sell and transfer, which the launchpad converts into the paired asset and distributes to eligible holders. These tokens show a **Holder rewards** icon next to the contract address and a JupShield warning with the rate. The fee applies to your own trades and transfers too, and the rewards are run by the launchpad, not by Jupiter, so they are not guaranteed. See [Holder rewards](/user-docs/trade/spot/token-page#holder-rewards).
Spot displays several safety indicators on each token page:
* **Mint Authority** — can the developer create more tokens?
* **Freeze Authority** — can the developer freeze token accounts?
* **Top 10 Holders %** — how concentrated is the supply?
* **Dev Holding %** — how much does the developer hold?
* **DB / DS markers** — when did the developer buy or sell?
* **Snipers Holding %** — how much is held by wallets that bought within the first three blocks after launch?
* **Insiders Holding %** — how much is held by wallets that bought in the first block or received tokens from other insiders?
* **Pro Traders %** — what percentage of supply is held by professional trading platform users?
* **Dex Paid** — did the creator pay for a DEX listing?
* **Bonding Curve %** — has the token migrated to a liquidity pool?
These indicators are informational tools, not guarantees of safety. Always do your own research. See [Token Page](/user-docs/trade/spot/token-page) and [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations) for more.
Tokens on Solana are permissionless, which means anyone can create a token. Always verify that you are buying the right token by checking the contract address. Jupiter reduces this risk by ranking tokens based on activity, using a verification system for community-verified tokens, and filtering out fake tokens when possible.
Jupiter is generally unable to support or compensate for buying the wrong tokens. This applies to all platforms: Jupiter Mobile, jup.ag, and others.
Some tokens launch through a bonding curve mechanism. The percentage shown represents how much of the curve has been filled. Once it reaches 100%, the token typically migrates to a standard AMM liquidity pool.
Before migration, liquidity is limited and price impact per trade can be significantly higher. See [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations) for details.
**DB** (Dev Bought) and **DS** (Dev Sold) are markers on the token chart showing when the developer wallet bought or sold the token. The developer wallet is identified as the wallet that deployed the token contract.
The Organic Score estimates how much of a token's activity (holders, volume, liquidity) comes from genuine users rather than bots or wash trading. A higher score indicates more organic activity.
It is calculated by Jupiter and is independent of a token's verification status. The Organic Score is a signal, not a guarantee — a high score does not mean a token is safe.
Liquidity is calculated by aggregating the quote side of trading pairs with a curated set of established bluechip tokens (e.g. SOL, JUP, JLP, jitoSOL, TRUMP, USDC, USDT). This list is maintained by Jupiter and may change over time.
A token's own liquidity is only included if Jupiter considers it an established asset — typically tokens with high market cap and deep liquidity. This number may differ from other sources, since Jupiter excludes certain pools that could artificially inflate liquidity figures.
Stats on Jupiter token pages may differ from other platforms since Jupiter uses its own set of heuristics and calculations to protect traders, and also refers to data from sources like CoinGecko and Birdeye.
Currently, Jupiter does not support specialized features like aggregating liquidity across multiple chains or indexing token locks on other platforms, but the team is actively working on improving token pages. If you need assistance with your project's token page, please open a ticket on [support.jup.ag](https://support.jup.ag/).
Most tokenized stocks are tradeable 24/7. Tokenized stocks issued by **Ondo** were the exception on a **24/5** schedule, but Ondo has enabled 24/7 trading on its most-traded tokens; the rest remain on 24/5 (generally Sunday 8pm ET until Friday 8pm ET) with any additional trading pauses displayed in the UI. Ondo Stocks are currently only tradeable against USDC.
Ondo tokens use a RFQ mechanism, which means liquidity may be significantly lower outside of traditional U.S. market hours. See [Tokenized Stocks](/user-docs/trade/spot/tokenized-stocks) for more.
Both live in the **Stocks** tab of Discover (also **Stocks** in the left navigation). The **Stocks** view lists one row per underlying listed stock, with the stock's own price, market cap, and volume — tokenized versions from different issuers are grouped into that row, and clicking it opens the [stock page](/user-docs/trade/spot/stock-page) where you pick an issuer. The **Tokenized stocks** view lists one row per token, with on-chain data (price on Solana, liquidity, holders). Switch between them with the chevron on the **Stocks** tab. See [Stocks Screener](/user-docs/trade/spot/discover#stocks-screener).
Each issuer mints its own token, so a stock like NVDA can exist as several tokens with different prices, liquidity, and terms. The **Trade** table on the [stock page](/user-docs/trade/spot/stock-page#choosing-an-issuer) shows them side by side: the on-chain **Price**, and the **Liquidity** (or **RFQ** when it is quoted on demand). Beyond that, compare the issuers' backing, redemption, trading hours, and eligibility rules — see [Tokenized Stocks](/user-docs/trade/spot/tokenized-stocks).
## Features & Tools
The chart only draws open **Limit V2** orders whose trigger asset is the token on the page, and only when the chart is quoted in USD, SOL, or market cap with the **Trigger Buy** / **Trigger Sell** lines enabled in **Display Options**. Orders still depositing or executing, V1 orders, orders that trigger on another token's price, and orders beyond the 30 most recent are not drawn; they are all still listed in **Open Orders**. See [Orders on the chart](/user-docs/trade/spot/limit-orders#orders-on-the-chart).
Chart pair comparison now lives on the token page: open the token's chart and use the quote selector to chart the token against its market pair, USD, SOL, or another token of your choice. See [Token Page](/user-docs/trade/spot/token-page).
Open the chart settings with the gear icon at the right of the chart toolbar, go to **Canvas**, and pick a size under **Scales › Text**. The change applies to the price and time scales, is saved in your browser, and survives a reload. In a mobile browser, scroll the chart toolbar to the right to reach the gear; the settings open as a list, so tap **Canvas** and scroll down to **Scales › Text**. See [Charts](/user-docs/trade/spot/token-page#charts).
In a toolbar on the left edge of the chart, collapsed by default: click the small handle halfway down the left edge of the chart to open it. The second button from the top, Trend line tools, holds Trend Line, Ray, Horizontal Line, Vertical Line, Trend Angle and the channel tools; the other buttons cover Fibonacci tools, patterns, brushes, text, shapes and the measure tool. Pick a tool, then click on the chart to place its points. Drawings are saved in your browser for that base/quote pair. See [Charts](/user-docs/trade/spot/token-page#charts).
Right-click an empty area of the chart and choose **Reset chart view** (⌥R on Mac, Alt+R on Windows) to undo zooming and scrolling; the same menu has **Remove indicators** and **Remove drawings**. To restore the default colours, scales and other settings, open the chart settings with the gear icon and choose **Apply defaults** from the **Template** menu at the bottom left of the dialog (**•••** on a narrow window). See [Charts](/user-docs/trade/spot/token-page#charts).
You can find your average entry and exit prices in two places:
1. On any token page, open the **My Positions** tab to see your Bought / Avg and Sold / Avg for that token.
2. Go to the [Positions page](/user-docs/trade/spot/positions) to view all your positions across tokens with full PnL details.
The PnL Calendar is a monthly calendar view of your daily trading performance, displaying up to 2 months. It is accessible from the Positions page and from the trader modal on any token page (click on a trader's address in the tabs below the chart).
It shows your daily and monthly PnL, your longest and current win streaks, and lets you export daily or monthly PnL cards as shareable images. See [Positions](/user-docs/trade/spot/positions) for details.
Open the **SmartMoney** tab and use the **Wallet Tracker** to enter a wallet address. You can also find wallets to track from any token page by clicking on a trader's address in the Transactions table, or follow a trader directly from the SmartMoney leaderboards.
Once tracked, the wallet's trades appear in your live feed. You can configure sound alerts, chart markers, and feed visibility for each wallet. See [SmartMoney](/user-docs/trade/spot/smart-money) for full details.
[AlphaScan](https://jup.ag/spot/alphascan) provides a real-time feed organized in three columns: **New** (just launched), **Soon** (approaching bonding curve completion), and **Bonded** (recently migrated to a liquidity pool).
You can filter by keyword, launchpad, and various trading metrics. See [AlphaScan](/user-docs/trade/spot/alphascan) for full details.
Use the column filters, not a timeframe: AlphaScan has no 5m / 1h / 6h / 24h selector (that is a Discover feature) and its metrics use a fixed 24-hour window. Click the filter button in the **Bonded** column header, open the **Audit** group, set a **Bonded Age (mins)** maximum (360 for six hours), then **Save All**. See [Filtering a column](/user-docs/trade/spot/alphascan#filtering-a-column).
Runners are tokens that meet all of the following criteria at the end of a 24-hour window from their launch:
* Market Cap ≥ \$1,000,000
* Liquidity ≥ \$100,000
* Holders ≥ 1,000
* Organic Score ≥ 75.0
Runner status does not mean a token is safe or will maintain its performance. See [Launchpad Screener & Runners](/user-docs/trade/spot/launchpad-screener-and-runners) for details.
Jupiter currently supports launchpads built on **Meteora DBC** (Dynamic Bonding Curves) out of the box. If your launchpad uses Meteora DBC, you can get routing through Jupiter and 100+ partners via the API, real-time indexing with individual token pages, and AlphaScan support plus a dedicated screener page.
To get listed, request it through the Meteora team, which coordinates DBC launchpad listings with Jupiter. Launchpads built on other technologies are evaluated case by case: contact the Jupiter team at [support.jup.ag](https://support.jup.ag). See [Launchpad Screener & Runners](/user-docs/trade/spot/launchpad-screener-and-runners) for details.
Your Jupiter watchlist is stored in your browser's cache. If the cache is cleared, your watchlist will reset. This can happen if:
* You manually clear browser data.
* Your device automatically clears cache.
* A browser extension interferes with storage.
* You use private/incognito mode.
* You open Jupiter on a different device or browser.
To keep your watchlist intact, use the same browser regularly and avoid clearing cache.
When you trade tokens on Solana, your wallet pays a small SOL deposit (rent) to keep each token account open. If you no longer hold a token, the account is empty but the rent stays locked. Accounts you still use can also hold more rent than Solana now requires, and that excess can be reclaimed without closing them.
Rent Reclaim is available at three places on jup.ag: the homepage (if you have 10 or more reclaimable accounts), the wallet side drawer, and the My Positions toolbar on token pages. Choose the accounts and tokens to include, then click Reclaim: empty accounts are closed and the excess rent of the others is returned.
If you dismissed the homepage notification, use the wallet side drawer or the My Positions toolbar instead. Note that Rent Reclaim is currently not compatible with Trust Wallet's in-app browser. See [What is Jupiter Spot?](/user-docs/trade/spot/index) for more details.
## Limitations
Jupiter does not currently offer a native export feature for swap or order history.
**For swaps (Ultra and Manual Mode):**
* Your swap activity is visible in the Portfolio drawer under the **Activity** tab.
* For a full transaction record, view your wallet on a block explorer like [Solana Explorer](https://explorer.solana.com/) or [Solscan](https://solscan.io/), where you can download transaction data.
**For Limit Orders and DCA orders:**
* Order history is visible on the dedicated pages ([jup.ag/limit](https://jup.ag/limit), [jup.ag/recurring](https://jup.ag/recurring)) and in the Portfolio drawer.
For a broader view of activity across multiple Solana protocols, you can use [Jupiter Portfolio](https://jup.ag/portfolio).
There is no dedicated volume checker on Jupiter at this time. You can use the PnL feature in [Positions](/user-docs/trade/spot/positions) to review your trading activity.
Currently, you cannot set the exact amount of tokens you want to receive on Jupiter. The previous ExactOut option was removed because it often resulted in worse pricing compared to regular swaps.
No, Jupiter does not currently support pausing and resuming DCA orders. If you need to stop, you must cancel the order and create a new one when ready to continue.
# Jupiter Spot Fees
Source: https://docs.jup.ag/user-docs/trade/spot/fees
Fee structure for trading on Jupiter Spot — network fees, Jito tips, Jupiter commission, and gasless trading.
When trading on Jupiter Spot you may pay up to three types of fees, depending on the product and execution mode. By default, Spot uses [Jupiter Ultra](/user-docs/trade/spot/ultra-mode) to execute trades.
## Fee structure
### Solana network fees
Small fees required to submit and process your transaction on the Solana blockchain. These are not charged by Jupiter and are paid regardless of whether your trade succeeds. In Ultra Mode, Jupiter dynamically sets this fee for you.
### Jito tip
A fee paid to Jito validators when using MEV-protect or Jito-only transaction broadcasting. This applies in Manual Mode when Jito is selected as a broadcasting option. See [Manual Mode](/user-docs/trade/spot/manual-mode) for details.
### Jupiter commission
A fee charged by Jupiter on certain products. The rate depends on the product and, for Ultra Mode, on the token pair.
| Product | Fee | Details |
| - | - | - |
| Ultra Mode | 0–0.5% | Varies by pair and volatility. More stable pairs tend toward the lower end; more volatile pairs (e.g. newly launched tokens) toward the higher end. See [Ultra Mode — Fees](/user-docs/trade/spot/ultra-mode#fees). |
| Manual Mode (Market Swap) | 0% | No Jupiter commission on manual swaps. |
| Limit Orders (V1) | 0.1% flat | See [Limit Orders — Fees](/user-docs/trade/spot/limit-orders#limit-order-v1). |
| Limit Orders (V2) | 0.03–0.1% base + Ultra routing fee (0–0.5%) | See [Limit Orders — Fees](/user-docs/trade/spot/limit-orders#fees). |
| DCA orders (V1, formerly Recurring) | 0.1% flat | See [DCA Orders — Fees](/user-docs/trade/spot/recurring-orders#fees-2). |
| DCA orders (V2) | 0.03–0.1% base + Ultra routing fee (0–0.5%) | See [DCA Orders — Fees](/user-docs/trade/spot/recurring-orders#fees). |
Fees are included in the quote shown before you confirm. The swap form starts with a compact rate summary: expand it to see the fee breakdown, the network fee, and open the route dialog showing the full swap path and venue splits. Manual swaps do not incur any Jupiter commission — you only pay Solana network fees and, if applicable, Jito tips.
Swaps placed natively in the Jupiter Mobile app follow a separate Mobile fee schedule. See [Jupiter Mobile fees](/user-docs/global/mobile/fees).
## Gasless trading fees
Gasless trading is activated when your wallet does not have enough SOL to cover transaction fees (signature fees, priority fees, and rent). In this case, a relayer submits the transaction on your behalf and covers the SOL cost.
The swap fee is increased by the USD value of the SOL the relayer pays on your behalf, converted into an equivalent amount in the token you are trading. Gasless itself carries no additional fee.
Key details:
* The increase equals the gas paid; Jupiter does not add a margin for gasless.
* The gas cost is a **fixed amount**, not proportional to trade size. This means the percentage impact is smaller on larger trades and larger on smaller trades.
* Gasless is only available when the recovered gas stays within **10% of the trade**. This sets a **minimum trade size** (about \$10, adjusted with network fees); smaller trades are not eligible. Gasless also requires less than 0.01 SOL in the wallet and a verified sell-side token.
* The gas recovery comes **on top of** the standard swap fee; both are included in the quote.
* This does not apply to swaps routed through [JupiterZ](/user-docs/trade/spot/ultra-mode#gasless-trading), where the market maker covers the gas at no additional cost to you.
Gasless trading is designed primarily for onboarding situations, for example when you create a new wallet and transfer USDC but don't yet hold SOL. For the best execution, using SOL for gas is recommended when possible.
## Ultra mode vs manual mode
Spot offers two execution modes:
| Setting | Ultra mode (default) | Manual mode (Trade Presets) |
| - | - | - |
| **Slippage** | Automatically optimized | Set by user |
| **Priority fee** | Automatically optimized | Set by user |
| **Tip** | Automatically optimized | Set by user |
| **MEV protection** | Enabled by default | Depends on configuration |
**Priority fee** — An additional fee (in SOL) paid to Solana validators. Higher priority fees increase the likelihood that your transaction is included in the next block, which matters during periods of network congestion.
**Tip** — An optional incentive (in SOL) paid to the transaction executor (a searcher or relayer) to prioritize your transaction's execution. Tips are separate from priority fees and are used to compete for faster inclusion when multiple transactions target similar opportunities.
In Ultra mode, both values are set automatically based on current network conditions. In manual mode, you control them directly.
Setting slippage tolerance too high in manual mode can result in unfavorable execution prices. Setting it too low can cause transactions to fail. If you are unsure, use Ultra mode — it adjusts these parameters automatically.
***
Understand the risks of trading on Spot.
All the data available when you open a token.
# What is Jupiter Spot?
Source: https://docs.jup.ag/user-docs/trade/spot/index
Jupiter Spot: instant token swaps on Solana with best-in-class execution, limit and DCA orders, token discovery, charts, and pro trading tools.
Jupiter Spot is Jupiter's spot trading product on Solana: exchange any token instantly with best-in-class execution, plus the data and tools to discover, analyze, and trade actively — all in one interface. It combines real-time token discovery feeds, detailed token pages, charting, wallet tracking, and configurable trade settings in a single workspace.
Spot is available at [jup.ag/spot](https://jup.ag/spot).
Step-by-step walkthrough on Jupiter Academy. Covers swap basics, modes, and best practices.
## How it works
Jupiter scans liquidity pools in real time (Meteora, Raydium, Humidifi, and >100 other liquidity sources), splits the transaction if necessary, and optimizes the route to achieve the best overall execution — balancing price, speed, and success rate. See [How tokens are listed and routed](/user-docs/trade/spot/token-page#how-tokens-are-listed-and-routed) for details on listing requirements and supported AMMs.
## Trading modes
Spot has two execution modes:
| | [Ultra Mode](/user-docs/trade/spot/ultra-mode) | [Manual Mode](/user-docs/trade/spot/manual-mode) |
| - | - | - |
| **Slippage** | Auto (via RTSE) | Custom |
| **Transaction Broadcasting** | Automatic | Custom |
| MEV **Protection** | Best in class | None |
| **Priority Fees** | Auto (ensures high success without overpaying) | Custom |
| **Gasless Swaps** | Available for most tokens | None |
| AMM **Exclusion** | Auto | Custom |
Spot also supports automated order types:
Set a target price or market cap and let Jupiter execute your trade automatically when the condition is met.
Spread your purchases over time using dollar-cost averaging (DCA) with automated trades at regular intervals.
If you are unsure which settings to use, stick with Ultra mode — it handles slippage, priority fees, and MEV protection automatically based on current network conditions. See [Fees](/user-docs/trade/spot/fees) and [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations) for details.
## Interface modes
Spot offers two interface modes. Both execute swaps identically — the difference is purely in the layout. You can switch between them in **Settings → Spot → Trading Mode** (gear icon in the top navigation bar).
For all traders: the classic Jupiter UX with a simple swap widget. Cleaner layout, less information density, and a straightforward swap flow. Uses Ultra only. Suited for users who want a readable, uncluttered experience or who are new to Spot.
One-click trading: a pro UX with a compact trade widget, manual presets, and more real-time data visible at once. Designed for users who trade frequently — especially on volatile tokens — and need to adjust parameters quickly between transactions.
For one-click trading in Trench mode, use [Jupiter Wallet](/user-docs/manage/extension-wallet) and enable [Auto-Approve](/user-docs/manage/extension-wallet/settings#auto-approve).
## Settings
The Settings panel (gear icon in the top navigation bar) lets you configure how Spot behaves. It is organised into three tabs — **General**, **Spot**, and **Portfolio**:
* **Default Currency** — the token your trades are quoted against on Spot: USDC, SOL, or JupUSD
* **Preferred Explorer** — the block explorer used for transaction links: Solscan, Solana Beach, Solana Explorer, SolanaFM, Orb, or OKLink
* **Number Format** — **Local** (12.35k) or **World** (12.35K) abbreviations; full numbers stay 12,345.67 in both
* **Show Top Token Bar** — toggle the top bar showing Watchlist, Positions, and Recent tokens
* **Show support bubble** — toggle the floating help and feedback button in the bottom-right corner, which opens the support chat. Turn it off if it covers part of the page; **Get Help** in the left sidebar still opens the same chat. The bubble cannot be moved.
* **RPC Endpoint** — choose between **Jupiter RPC** (marked Beta), **Triton RPC Pool 1** and **2**, **Helius RPC 1**, or a custom RPC. Latency is displayed for each option.
* **Trading Mode** — switch between Classic and Trench mode
* **Sound Alerts** — toggle the trading sound, set notification volume (default 50%), and choose the Buy and Sell sound effects
* **Currency** — the currency Portfolio values are shown in: USD, EUR, GBP, JPY, AED, AUD, CAD, SGD, or INR
* **Hide positions** — hide positions under \$0.01, \$1, \$5, or \$10, or show all
* **Health mode** — show lending position health as a **Ratio** or a **Factor**
* **Spot PnL** — period covered by the Spot PnL card: **All time** or **24h**
See [Portfolio settings](/user-docs/manage/portfolio/settings) for details.
## Supported wallets
Jupiter works best with the [Jupiter Wallet](https://chromewebstore.google.com/detail/jupiter-wallet/iledlaeogohbilgbfhmbgkgmpplbfboh), available on desktop as a [browser extension](/user-docs/manage/extension-wallet) and on [mobile](https://jup.ag/mobile).
Jupiter also supports all major Solana-native web extension wallets such as Phantom and Backpack, along with hardware wallets like Ledger and Trezor. The Jupiter Mobile app can be paired with the web interface via the **Magic Scan** feature.
### Quick Accounts
Jupiter Quick Accounts are embedded wallets powered by [Privy](https://www.privy.io/). They let you log in with social accounts (Discord, Google, email, etc.) or an existing crypto wallet, without needing a seed phrase. In the **Connect** menu on [jup.ag](https://jup.ag/), this option appears as **Jupiter ID** (Email or Social Login), alongside Jupiter Wallet, Jupiter Mobile (QR code), and the supported external wallets. Quick Accounts are:
* **Signless** — trades execute instantly without approving every transaction.
* **Non-custodial** — you retain full control. Your private key can be exported at any time.
Store your private key securely. Anyone with access to it has full control over your wallet and funds.
## Portfolio & Activity
The **Portfolio drawer** (top right on [jup.ag](https://jup.ag/)) displays your holdings and activity across Jupiter products (Spot, Perps, Lend, etc.).
* **PnL (Profit and Loss) Analysis** — available in [Jupiter Portfolio](https://jup.ag/portfolio) under the Spot tab, or on individual token pages under the token chart. See [Positions](/user-docs/trade/spot/positions).
* **Swap history** — available in the Portfolio drawer under the **Activity** tab.
For a broader view of your positions across multiple Solana protocols, use [Jupiter Portfolio](https://jup.ag/portfolio).
## After-swap suggestions
After you complete a swap on the [jup.ag](https://jup.ag/) homepage or the swap page, the confirmation toast may show up to two suggested tokens related to the token you received (suggestions do not appear for swaps made from token pages). They are based on co-trading patterns — tokens that wallets holding your output token tend to trade next — weighted toward recent activity and updated daily. Only verified tokens are eligible, a blocklist filters out problematic tokens, and suggestions are global (the same for all users, not based on your wallet or history). Clicking a suggestion opens that token's page.
Suggestions are statistical patterns, not endorsements or financial advice. Always do your own research before trading a suggested token.
## Rent Reclaim
When you interact with tokens on Solana, your wallet pays **rent** — a small SOL deposit required to keep token accounts open onchain. Over time, unused token accounts (e.g. from tokens you no longer hold) can accumulate, locking small amounts of SOL.
Rent Reclaim recovers that SOL in two ways: it closes empty token accounts, and it reclaims the **excess rent** from token accounts you keep. Solana has lowered the rent requirement several times, so accounts created earlier hold more SOL than is now required; the excess is returned while the account stays open and usable, and the same account can yield more again after a future reduction. The panel lists the **Accounts to reclaim** and the **Eligible Tokens** with an **Estimated Reclaim**; untick what you want to leave as is, then click **Reclaim** and sign. Accounts whose close authority was handed to another application (some launchpads do this) are not listed, because the wallet cannot close them. Rent Reclaim is available at three locations on jup.ag:
* **Homepage** — below the portfolio widget, visible only if you have 10 or more reclaimable accounts
* **Wallet side drawer** — accessible from your wallet panel
* **My Positions toolbar** — on token pages
**Known limitations:**
* If you dismiss the Rent Reclaim notification on the homepage, the prompt will no longer appear there. You can still access Rent Reclaim from the wallet side drawer or the My Positions toolbar on token pages.
* Rent Reclaim is currently not compatible with Trust Wallet's in-app browser. If you use Trust Wallet, try accessing jup.ag through a different browser instead.
## Changelog
All product updates are published at [jup.ag/updates](https://jup.ag/updates).
***
## Explore Spot
At-a-glance market overview — news, movers, and category dominance.
Browse tokens by category using curated feeds and filters.
Real-time feed of new token launches across Solana.
Follow wallets and see what notable traders are buying.
Save tokens and track them with market data and curated news.
Cross-launchpad analysis and Runner criteria.
Market data, safety indicators, charts, and trading tools for any token.
Your portfolio performance, PnL, and trading history.
Underlying stock data and the issuers you can trade it from.
Trade onchain tokenized equities, with issuer and risk details.
# Launchpad Screener & Runners
Source: https://docs.jup.ag/user-docs/trade/spot/launchpad-screener-and-runners
How the Launchpad Screener works on Jupiter Spot, including Runner criteria and launchpad listing.
The [Launchpad Screener](https://jup.ag/spot/launchpads) provides real-time analysis of tokens launched across major Solana launchpads. It aggregates data from multiple launchpads into a single view, with trading volume comparison and an overview of top-performing tokens.
## What the screener shows
The Launchpad Screener displays tokens from supported launchpads with:
* Token name, age, and launchpad of origin
* Trading volume and volume comparison across launchpads
* Market cap, liquidity, and holder count
* Bonding curve status (pre-migration vs migrated)
You can use the same filters available in other Discover tabs (market cap, volume, holders, liquidity, token age, etc.) to narrow results.
## Launchpad Runners
[Runners](https://jup.ag/spot/launchpads?view=runners) are tokens that meet specific performance criteria within 24 hours of their launch. The Runner designation highlights tokens that have gained traction quickly based on measurable onchain metrics.
### Runner criteria
To be classified as a Runner, a token must meet **all** of the following thresholds **at the end of a 24-hour window starting from its launch**:
| Metric | Threshold |
| - | - |
| Market Cap | ≥ \$1,000,000 |
| Liquidity | ≥ \$100,000 |
| Holders | ≥ 1,000 |
| Organic Score | ≥ 75.0 |
All criteria are evaluated at the end of the 24-hour window. If any metric is below its threshold at that point, the token does not qualify as a Runner.
The Organic Score estimates how much of a token's activity (holders, trading volume, liquidity) comes from genuine users rather than bots or artificial activity. It is calculated by Jupiter.
An Organic Score of 75.0 or above is the threshold for Runner classification. For more details on how the score is computed, see [Organic Score](/user-docs/trade/spot/discover#organic-score).
Runner status indicates that a token met specific metric thresholds shortly after launch. It does not mean the token is safe, legitimate, or likely to maintain its performance. Tokens can meet Runner criteria and still lose value rapidly. See [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations).
## Listing a launchpad on the screener
The Launchpad Screener covers major Solana launchpads, and coverage expands over time.
### Supported launchpad technology
Jupiter provides out-of-the-box support for launchpads built on **Meteora DBC** (Dynamic Bonding Curves), and also integrates launchpads on their own technology case by case (recent additions include StonkFun, Purps, Perpspad, and OTC). A listed launchpad gets:
* Routing through Jupiter and access via 100+ partners using Jupiter's API
* Real-time indexing with individual token pages
* AlphaScan support and a dedicated screener page, with the launchpad's logo, token links, and bonding-curve view where applicable
The list of covered launchpads evolves; the launchpad filter in the screeners and AlphaScan always reflects the current set.
### How to request listing
If your launchpad is built on Meteora DBC, request listing through the Meteora team, which coordinates DBC launchpad listings with Jupiter. If your launchpad runs on its own technology, contact the Jupiter team at [support.jup.ag](https://support.jup.ag); these requests are evaluated case by case.
Some listed launchpads use Token-2022 transfer fees (for example StonkFun charges a fee on transfers that funds holder rewards). Jupiter shows the rate in the token's JupShield warnings, with a **Holder rewards** icon next to the contract address when the fees fund rewards for holders. See [Holder rewards](/user-docs/trade/spot/token-page#holder-rewards).
***
Browse tokens by category and apply filters.
Real-time feed of new token launches.
# Jupiter Limit Orders
Source: https://docs.jup.ag/user-docs/trade/spot/limit-orders
Set the exact price to buy or sell any Solana token with Jupiter Limit Orders: how they work, how they differ from a CLOB, and Limit Order V2 vs V1.
Jupiter Limit Orders let you choose the price at which you want to buy or sell a token. Instead of executing at the current market price (like a market swap), a limit order waits until your specified price level is reached before executing.
* **Market price** is the current trading price of the token.
* **Limit price** is your specified target for order execution.
If your limit price is significantly higher than the current market price, a regular market swap may be more appropriate.
Jupiter Limit Orders differ from a traditional Central Limit Order Book (CLOB). CLOBs match buyers and sellers directly and require dedicated market makers. Jupiter Limit Orders instead execute against onchain liquidity from multiple decentralised exchanges (DEXes), offering broader token coverage but with different execution behaviour.
Jupiter currently offers two versions: **Limit Order V2** (the current version) and **Limit Order V1** (legacy, being sunset).
**Limit Order V1 is being sunset.** New V1 orders can no longer be created. Use [Limit Order V2](#limit-order-v2) for all new orders.
## V1 vs V2
| | Limit Order V1 | Limit Order V2 |
| - | - | - |
| **Trigger type** | Pool rate between the two tokens | Token's USD price or market cap |
| **Output amount** | Guaranteed (follows pool pricing) | Not guaranteed (prioritises execution with minimal slippage) |
| **Orders below market price** | Not supported | Supported (Buy Below) |
| **Take Profit / Stop Loss** | Not supported | Supported (including both on the same position) |
| **Trailing Stop Loss** | Not supported | Supported |
| **Edit an order** | Must cancel and create a new one | Can edit in place |
| **Partial fills** | Supported | Supported |
| **Fees** | 0.1% flat | 0.03–0.1% base + Ultra routing fee (0–0.5%) |
## Limit Order V2
The sections below describe Limit Order V2, the current version. For the legacy version, see [Limit Order V1](#limit-order-v1) at the end of this page.
### How it works
In Limit V2, orders are triggered based on the token's USD price or market cap. When the desired price level is reached, the order is executed using available liquidity.
When you place an order, your selling tokens are moved into an intermediate vault (a secure program-owned account that holds your tokens while the order is active).
While an order is active, those tokens are held by the vault address rather than by your wallet, and the vault is program-owned, so there is no private key for it. Anything that reads wallet balances directly, such as a third-party airdrop snapshot, may therefore not count them. Each project sets its own snapshot rules, so take this into account before leaving an order open.
The vault address is not a deposit address. Never send tokens to it directly: tokens sent straight to a vault address are not credited to any order and can only be recovered through a support ticket, which is not guaranteed. The same applies to tokens a project sends to that address on its own, such as holder rewards or airdrops paid to the holders of a token locked in an order: they land in the vault, not in your wallet, and recovering them also goes through support.
If the token you trade charges a Token-2022 transfer fee, the order review shows a transfer-fee warning (including the exit leg of an OTOCO order), and cancelling such an order asks for a confirmation first.
Jupiter continuously monitors market prices to check if your trigger condition has been met. Once the trigger is reached, a keeper (an automated bot that monitors and executes orders on your behalf) executes the trade through [Jupiter Ultra](/user-docs/trade/spot/ultra-mode), which searches for the best available route across supported liquidity sources.
Because execution happens at the moment the trigger is reached, the final amount you receive may differ from the estimate shown during order creation. The exact output amount is not guaranteed: V2 prioritises executing the order with minimal slippage when the price trigger is hit.
V2 triggers track a token's **USD price**, not the exchange rate between the two tokens in your order. Because of this, the amount of the other token you spend or receive can move with that token's own price between order creation and execution. For example, if you place a USD-price trigger to sell a token for SOL and SOL's price changes before the trigger is hit, the amount of SOL you receive can differ from the estimate shown when you created the order.
### Vault access
The first time you place or view Limit V2 orders with a wallet, Jupiter asks you to **Access your vault** by signing a message. Wallets that cannot sign messages get a **Sign with a transaction** option instead; this is the case for a Ledger connected directly to jup.ag. Through the [Jupiter Wallet extension](/user-docs/manage/extension-wallet/getting-started#hardware-wallets), a Ledger running Solana app 1.16.0 or later signs the message as a readable off-chain message, so this sign-in no longer needs blind signing enabled on the device; older Solana app versions sign a transaction. Placing orders with a Ledger still requires blind signing. This signature is a sign-in, not a token approval: it proves that you control the address, so the interface can show and manage that wallet's orders. It cannot move funds: placing an order or withdrawing tokens from the vault still requires its own transaction signature. Cancelling an order is the exception: the sign-in alone is enough to stop the order, but the locked tokens only leave the vault once you sign the withdrawal transaction, which is why a cancelled order can show as **Pending Withdraw**.
The resulting credential is stored in your browser for that wallet address, so you are not asked again on every visit. It is renewed automatically while you use the site, lapses after 30 days without a visit, and expires 90 days after signing at the latest; you are then asked to sign again.
To revoke it, **disconnect the wallet** from jup.ag: the stored credential is deleted and the session is ended on Jupiter's side. Clearing the site data for jup.ag in your browser also removes the credential from that browser. Revoking changes nothing for your open orders or for the tokens held in the vault; the next time you open the Limit or DCA page with that wallet, you are asked to sign again. On a shared or public computer, disconnect the wallet before leaving: anyone with access to that browser session could otherwise cancel your open orders.
### Order types
Limit V2 groups several order types under one form. The **Limit** tab shows the order type currently selected (for example **Limit - Take Profit**); click it to open the list, grouped in three sections:
| Section | Order type | What it does |
| - | - | - |
| **Sell** | **Take Profit** | Sells when the price rises to your target. |
| **Sell** | **Stop Loss** | Sells when the price falls to your stop. A **Fixed Price** / **Trailing** switch on the form turns it into a [Trailing Stop Loss](#trailing-stop-loss). |
| **Buy** | **Buy the Dip** | Buys when the price falls to your level. |
| **Buy** | **Buy the Pump** | Buys when the price rises to your level. |
| **Combos** | **One Cancels Other** (OCO) | Two sell orders at different prices; the first to trigger cancels the other. |
| **Combos** | **Limit Buy → OCO** (OTOCO) | Buys in, then automatically arms a Take Profit and Stop Loss on the filled position. |
The trigger directions behind Buy the Dip and Buy the Pump are described under [Trigger types](#trigger-types). OCO and OTOCO are covered under [Take Profit and Stop Loss](#take-profit-and-stop-loss); Trailing Stop Loss has its [own section](#trailing-stop-loss) below.
### Trigger types
* **Buy Below** (the **Buy the Dip** order type): triggers when the token price or market cap goes below your set level.
* **Buy Above** (the **Buy the Pump** order type): triggers when the token price or market cap goes above your set level.
Triggers can be based on either the token's USD price or its market cap.
### Slippage
Slippage tolerance controls how much the execution price can move from your trigger price during execution. Limit Orders are executed using Jupiter Ultra, which applies a small amount of slippage by default to improve execution success. This can be adjusted manually, or set to 0% to execute only at the exact trigger price.
### Order expiry
Each Limit V2 order has an expiry, chosen when you place the order: **1 hour, 1 day, 1 week (the default), 30 days, or a custom date**. (In [Jupiter Wallet](/user-docs/manage/extension-wallet/swap-and-trade#limit-and-recurring-orders), the presets range from 10 minutes to 30 days.) If the trigger condition is not reached before expiry, the order is cancelled automatically and the locked tokens are returned to your wallet.
### Partial fills
Orders may execute partially depending on available liquidity. If an order executes partially, the filled portion is settled immediately. The remaining amount stays active and continues waiting for execution until it is fully filled, cancelled, or expires.
### Managing orders
Open and past orders can be viewed from the Limit page on [jup.ag/limit](https://jup.ag/limit) or from the Portfolio sidebar under the **Limit** tab. Orders can be edited or cancelled from either location.
A cancelled order can enter a **Pending Withdraw** state instead of returning funds automatically (seen mostly when cancelling from the mobile app). Open the Limit page on the web app ([jup.ag/limit](https://jup.ag/limit)) and withdraw the funds manually from there. If nothing shows as pending and the funds are still missing, contact [support](https://support.jup.ag/).
### Orders on the chart
The token page chart draws a horizontal line at the trigger price of your open limit orders, labelled **Buy** or **Sell** with the order size, and with a × to cancel the order from the chart. An order is drawn only when all of the following are true:
* It is a **Limit V2** order (V1 orders are not drawn).
* Its state is **Open**: orders still depositing, executing, or awaiting withdrawal are skipped.
* The token on the page is the order's **trigger asset**, the one whose price the order watches. An order that triggers on SOL's price is drawn on the SOL page, not on the page of the token it buys or sells.
* The chart is quoted in **USD**, **SOL**, or **market cap**, not in a market pair, and the matching line type is enabled under **Display Options › Lines** (**Trigger Buy** for orders buying the token, **Trigger Sell** for orders selling it).
TP + SL and OCO orders draw one line per leg. The chart loads your 30 most recently updated open orders on that token; beyond that, older orders are listed in **Open Orders** but not drawn. Zoom out if a trigger price sits outside the visible range.
### Take Profit and Stop Loss
Take Profit and Stop Loss let you automate exits from a position based on price levels. On Limit V2, these are set using the same trigger system as regular Limit orders.
* **Take Profit**: a sell order that triggers when the price rises above your target.
* **Stop Loss**: a sell order that triggers when the price falls below your stop level.
The Take Profit and Stop Loss described here are fixed-price triggers: the level stays where you set it. Stop Loss can also be set as a [Trailing Stop Loss](#trailing-stop-loss), where the trigger follows the price up. Trailing Take Profit is not supported.
**Stop Loss is not guaranteed to execute.** When the trigger price is hit, the order is submitted for execution with your slippage tolerance applied. If the price moves past your Stop Loss trigger faster than the order can execute, or if liquidity is insufficient to fill the order within your slippage tolerance, the order will not fill. This is especially common with low-liquidity tokens such as new memecoins or tokens that have been rugged.
**How they work**
When you set a Take Profit or Stop Loss, the exit condition is attached to the entry order. If the entry order triggers and executes:
The bought tokens are automatically used to create the exit order.
These tokens remain in the vault instead of being sent to your wallet.
The exit order stays active until it triggers, is cancelled, or expires.
Because of this, you may not see the bought tokens in your wallet immediately after the entry executes. If you cancel the order while the exit condition is still active, the locked tokens are returned to your wallet.
**On tokens you already hold (OCO)**
If you already hold a token, you can place a One Cancels Other (OCO): a Take Profit sell above the market and a Stop Loss sell below it, submitted as a single pair. Whichever price is hit first executes and automatically cancels the other. This is the exit pair on its own, with no entry order.
**Using both together (OTOCO)**
You can set both a Take Profit and a Stop Loss on the same entry order. This creates a two-leg structure:
1. **First leg (entry)**: your entry order (e.g. buy SOL below \$X). This cannot be an OCO itself.
2. **Second leg (OCO exit)**: once the entry is fully filled, the bought tokens are used to create both exit orders (Take Profit and Stop Loss). These form an OCO pair: whichever exit condition triggers first cancels the other automatically. An OCO may partially fill a Take Profit if there isn't enough liquidity.
This full flow is known as OTOCO (One Triggers the Other, One Cancels the Other): the entry order triggers the OCO exit pair.
OTOCO is the full flow: entry triggers exit. OCO is just the exit pair (Take Profit + Stop Loss). The first leg of an OTOCO cannot be an OCO itself.
### Trailing Stop Loss
A Trailing Stop Loss is a Stop Loss whose trigger moves on its own. A fixed Stop Loss stays wherever you last set it. A trailing Stop Loss follows the price up as the market climbs and holds its level when the price falls, so it only ever moves in your favour.
You do not set a stop price. You set a **stop distance** as a percentage. Jupiter tracks the highest price the token reaches after the order is activated (its peak) and keeps the trigger that distance below the peak. Each new high lifts the peak, and the trigger rises with it. When the price pulls back, the trigger stays where it is. The initial trigger is placed relative to the market price at the moment you create the order.
**Fixed vs trailing**
Consider a position entered at \$80 with a 10% stop, where the price climbs to \$120 before reversing:
| | Fixed Stop Loss | Trailing Stop Loss (10%) |
| - | - | - |
| Set at \$80 | Trigger at \$72 | Trigger at \$72 |
| Price climbs to \$120 | Still \$72 | Trails up to \$108 |
| Price reverses, you exit | Sell at \$72 | Sell at \$108 |
| Result | -10% | +35% |
A trailing stop does not capture the exact top: you give back the trail distance by design (here, \$120 less 10% leaves \$108). It turns a stop from pure loss protection into a way to hold on to gains on a move that would otherwise round-trip.
**Setting the trail distance**
The trail distance is the main lever. It is set with a slider, from **0.5% to 90%**, defaulting to **10%**.
* A **tighter** trail (closer to 0.5%) locks in nearer the high, but ordinary volatility can knock it out early.
* A **wider** trail (up to 90%) rides through short-term noise, but concedes more when the price reverses.
There is no single correct value. It depends on how much movement you are willing to sit through before the order acts.
**Slippage on a trailing stop**
Slippage is a second lever, paired with the trail. It sets a lower bound beneath the trigger for execution:
* Too tight, and a fast drop can outrun it, leaving the order unfilled.
* Too wide, and the order may fill well below where the trail meant to sell.
Triggering is not the same as executing. When the stop fires, the order still runs through the usual price and slippage checks before it fills, exactly like any other Limit V2 order, so the exact fill price can differ from the trigger. The order may not fill at all if the price moves faster than execution or if liquidity is insufficient within your slippage tolerance. This is especially common on low-liquidity tokens.
In the form, a trailing stop appears as **Trailing Sell when \[token]**: you allocate the token to sell, choose the token to receive, and the trail follows the price of the token you are selling. That token cannot be a stablecoin, because a pegged price has no meaningful peak to trail; choosing one shows a **Trigger mint is not supported** message. You can open a trailing stop directly at [jup.ag/?tab=limit\&type=tsl](https://jup.ag/?tab=limit\&type=tsl), and the trail can track the token's USD price or its market cap.
### Fees
Limit V2 orders apply the following fees during execution:
| Fee type | Rate |
| - | - |
| Base fee (stable or pegged pairs) | 0.03% |
| Base fee (all other pairs) | 0.1% |
| Ultra routing fee | 0–0.5%, depending on token pair and execution mechanism |
Fees are deducted automatically when the order executes.
### Privacy and MEV protection
Jupiter implements several protections to reduce the risk of MEV (Maximal Extractable Value) and frontrunning on Limit V2 orders. While MEV cannot be fully eliminated on any blockchain, these measures make attacks harder and less profitable:
* **Price checks before execution**: if the price is unfavourable at execution, your order will not be filled. It remains active and attempts to execute again when the price matches your trigger.
* **Ultra routing**: includes built-in MEV protection.
* **Order privacy**: pending orders are not visible via watch-only wallets. Order details are not directly tied to the user's primary wallet onchain, making them harder to target by bots.
### Token-2022 and transfer fees
Limit Order V2 supports Token-2022 tokens, including those that charge a transfer fee. The fee is set by the token itself, not by Jupiter, and it is taken every time the token moves:
* **Selling a token that charges a fee** — the fee applies when you deposit into the order vault, when the order sells, and when a cancellation returns your remaining tokens.
* **Buying a token that charges a fee** — the fee applies on each buy.
The review step shows the rate for each side before you confirm, and cancelling an order that holds such a token asks you to confirm, stating the rate the return transfer will cost. In the token selector, these tokens carry a **Token2022** tag.
A token's creator can change its transfer fee rate at their discretion. An order placed today can therefore settle at a different rate than the one displayed when you created it, and you may receive fewer tokens than estimated.
One combination is refused: an **OTOCO** whose token to buy charges a transfer fee, because its exit legs would then have to sell that token. Place the entry as a plain limit order instead, and set the exits once the tokens are in your wallet. Other pairs can still be refused when the form checks them; the reason is shown inline under the form.
## Limit Order V1
**Limit Order V1 is being sunset.** New V1 orders can no longer be created. Use [Limit Order V2](#limit-order-v2) instead, which supports USD price and market cap triggers, Take Profit and Stop Loss, OCO bundles, and Trailing Stop Loss.
Existing V1 orders remain viewable on web at [jup.ag/limit](https://jup.ag/limit) (with **Show History** toggled to see Open and Past Orders) and in Jupiter Mobile.
**How it works**
In Limit V1, the trigger price is based on the pool rate between the two tokens you are trading (not the token's USD price or market cap).
When you place an order, your selling tokens are locked until the order is executed or cancelled. Jupiter continuously monitors market prices. When the trigger price is reached, a keeper executes the trade on your behalf, and the bought tokens (minus fees) are sent to your wallet.
On Limit V1, the output amount is guaranteed because it follows pool pricing directly. However, the order may not execute if the market moves too quickly. Limit V1 supports partial fills.
**Parameters**
| Parameter | Description |
| - | - |
| **Token pair** | Sell side and buy side tokens |
| **Amount** | Amount of tokens to sell |
| **Limit price** | Target price based on pool rate between the two tokens |
| **Expiry time** | How long the order stays active before automatic cancellation |
On Limit V1, you cannot set orders below the current market price. Take Profit and Stop Loss are not available; both are supported on Limit V2.
**Managing orders**
Open and past orders can be viewed from the Limit page on [jup.ag/limit](https://jup.ag/limit) (under the **Open Orders** or **Past Orders** tabs) or from the Portfolio sidebar under **Limit → V1**. To modify an order on V1, you must cancel it and create a new one; in-place editing is only available on V2.
**Fees**
A flat **0.1% fee** applies to all Limit V1 orders. This fee is charged only when the order is successfully executed.
**MEV protection**
Limit Orders V1 include protections to reduce the risk of MEV frontrunning: price checks before execution ensure the order is still valid and fair at execution time, and automatic cancellation removes the order if the price moves beyond the acceptable range. While MEV cannot be fully eliminated on any blockchain, these measures make frontrunning more difficult and less profitable.
**Limitations**
Token-2022 standard tokens with transfer tax features are not supported on Limit Orders V1.
# Manual Mode
Source: https://docs.jup.ag/user-docs/trade/spot/manual-mode
Full control over slippage, transaction fees, and routing on Jupiter.
## Overview
Manual Mode gives you full control over your trade settings on Jupiter. Unlike Ultra Mode, which handles everything automatically, Manual Mode lets you configure slippage, transaction fees, and routing yourself.
To switch, open the swap settings (gear icon on the swap panel) and select **Manual** in the Swap Settings dialog (the toggle shows **Ultra V3** and **Manual**).
Manual Mode does not charge any Jupiter commission. You only pay Solana network fees and, if applicable, Jito tips. Pricing is aggregated through **JupiterZ** and **Metis** for the best rates.
Manual Mode does not include MEV (Maximal Extractable Value) protection. Transactions executed in Manual Mode fall outside Jupiter's supported execution model: as the interface warns when you switch, Manual Mode has **no refunds and no support**, and its transactions **do not count toward incentive campaigns**. If MEV protection is important to you, use [Ultra Mode](/user-docs/trade/spot/ultra-mode).
## Settings
### Max Slippage
Set the maximum slippage tolerance for your swaps: pick a preset (**0.5%** or **1%**) or enter a custom percentage. Slippage in Manual Mode is always the fixed value you set; automatic slippage estimation (RTSE) is an [Ultra Mode](/user-docs/trade/spot/ultra-mode) feature.
### Transaction Landing
Transaction Landing controls the fees attached to your transaction to get it included in a block. Two fee modes are available:
* **Max Cap** — A dynamically estimated maximum fee based on your trade size.
* **Exact Fee** — Specify an exact fee amount for your transaction.
Below the fee mode, two independent toggles choose how the transaction is sent, each with its own SOL amount:
* **Priority Fee** — Sends via a standard RPC with a Priority Fee to speed up block inclusion.
* **Jito Tip** — Sends via a Jito RPC with a Jito tip. Both toggles can be enabled at the same time to send via both methods.
If your transaction is processed through a standard RPC, only the Priority Fee is paid. If processed through Jito validators, both the Priority Fee and the Jito tip are paid.
### Routing
* **Use wSOL** — Wrapped SOL (wSOL) makes frequent SOL trades faster by avoiding the need to wrap/unwrap tokens manually. When enabled, swaps to SOL deliver wSOL instead of native SOL. A wSOL balance can be turned back into native SOL at any time from the link under the swap form: see [Wrapped SOL (wSOL)](/user-docs/trade/spot/ultra-mode#wrapped-sol-wsol).
* **Routers** — Enable or disable Jupiter's routers, **Metis** and **JupiterZ** (see below). At least one router must remain enabled.
* **AMM sources** — Enable or disable individual AMMs (Automated Market Makers) as routing sources, out of the 100+ supported.
## JupiterZ
JupiterZ is an RFQ (Request For Quote) system that enables market makers to provide competitive quotes for top token pairs. It allows users to receive the best possible execution price available from both onchain and off-chain liquidity at the moment they wish to trade.
JupiterZ is used as a liquidity source in both Ultra Mode and Manual Mode.
## Metis
Metis is a DEX aggregation engine originally built by Jupiter and launched in 2023. It is a sophisticated onchain liquidity aggregator designed to find the most efficient trade route for any token pair by factoring in price, slippage, and the difference between quoted and executed prices across multiple DEXes (Decentralized Exchanges).
In 2025, Jupiter released **Metis v1.6**, which introduced more advanced route splitting and expanded support for a wider range of intermediate tokens.
Metis is now a standalone, open-source project. For more details, see the [Metis documentation](https://metis.builders/).
# Positions
Source: https://docs.jup.ag/user-docs/trade/spot/positions
Track your portfolio performance, PnL, and trading history on Jupiter Spot.
The Positions view gives you a complete overview of your Spot trading performance across all tokens. It now lives in [Jupiter Portfolio](/user-docs/manage/portfolio), under the **Spot** tab: open **Portfolio**, select your wallet, then **Spot**. The former Positions tab in the Spot interface and the old `jup.ag/watch/positions` address both point there now.
At the top, the page displays your connected wallet's address, SOL and USDC balances, and total number of tokens held. You can filter all data by time period: **1d**, **7d**, **30d**, or **All**.
## Dashboard
* **Holdings** — Total current USD value of all tokens you hold
* **Unrealised PnL** — Profit or loss on tokens you still hold
* **Win Rate** — Percentage of trades that were profitable
* **Realised PnL** — Profit or loss from tokens already sold
* **Total PnL** — Combined unrealised and realised profit or loss
A **Share** button lets you export your summary as a shareable image.
A line chart showing the trend of your realised PnL over the selected time period.
The PnL Calendar is a monthly calendar view of your daily trading performance, displaying up to 2 months. It shows your profit or loss for each day (green for profit, red for loss), total monthly PnL with a visual win/loss bar, and your longest and current win streaks.
The PnL Calendar is accessible from two places:
* The **Portfolio Spot tab** (via the PnL Calendar button in the Realised PnL panel)
* The **trader modal** on any token page (click on a trader's address in the tabs below the chart). The modal opens on a compact PnL overview: PnL, holdings, win rate, volume, and top trades.
You can navigate between months and toggle between USD and SOL denomination. Daily and monthly PnL cards can be exported as shareable images via the **Share** button.
Visual breakdown of your positions by PnL performance: > 500%, 200%–500%, 50%–200%, 0%–50%, and \< -50%. Each range shows the count and rate (percentage of your total positions). A color-coded bar shows the overall distribution at a glance.
Compare your Win Rate with the Distribution panel to understand your trading patterns. A high win rate with most positions in the 0%–50% range and a few large losses in the \< -50% range tells a different story than a low win rate with concentrated gains above 200%.
## Positions table
Below the dashboard, a detailed table lists your individual token positions. The table has four sub-tabs:
| Sub-tab | What it shows |
| - | - |
| **Recent** | Tokens you traded most recently, sorted by last trade date |
| **Holdings** | Tokens you currently hold (non-zero balance) |
| **Profitable** | Tokens sorted by highest total PnL |
| **Activity** | Full transaction history |
Each row in the table displays:
| Field | Description |
| - | - |
| **Last Traded** | Token name and time since your last trade |
| **Unrealised** | Unrealised PnL in USD and percentage |
| **Realised** | Realised PnL in USD and percentage, or "Holding" / "Sold all" status |
| **Total PnL** | Combined PnL in USD and percentage |
| **Holding** | Current token balance and its USD value |
| **Bought / Avg** | Total amount spent and average buy price |
| **Sold / Avg** | Total amount received and average sell price |
| **Position %** | Percentage of your original position still held |
You can toggle between **Price** and **USD** denomination using the controls in the top-right of the table.
The Positions view reflects onchain data for the selected wallet. Data updates periodically — the last update time is displayed at the top of the page.
You can also view your position for a specific token directly from its [token page](/user-docs/trade/spot/token-page), under the My Positions tab.
***
View position details for a specific token.
Save tokens and track them with curated news.
# Pulse
Source: https://docs.jup.ag/user-docs/trade/spot/pulse
Pulse is Jupiter Spot's at-a-glance market overview — a macro market summary, spotlight tokens, featured token lists, and category dominance.
Pulse is in **Beta**. Its layout and data are still evolving, so the interface may change.
Pulse is the at-a-glance market overview in Jupiter Spot. It surfaces what's moving right now — a short macro summary, spotlight tokens, popular and trending tokens, what notable wallets are buying, and how different sectors are performing — so you can scan the market before diving into a token.
## Market Pulse
Market Pulse is an AI-generated snapshot of the market: a short macro summary with its timestamp, followed by **Spotlight**, a row of notable tokens with their price change.
Market Pulse is AI-generated and may contain inaccuracies. It is not financial advice — always do your own research.
## Popular
Below Market Pulse, Pulse surfaces the **Popular** list — tokens reflecting recent interest across Jupiter — with a **View all** link to the full [Popular tab in Discover](/user-docs/trade/spot/discover#discovery-tabs).
## Featured token lists
Pulse also highlights tokens across a few curated cards:
| Card | What it shows |
| - | - |
| **Trending** | Tokens most bought in the past 24 hours with positive momentum |
| **Stocks** | Listed stocks with underlying price, market cap, and 24h change, each linking to its [stock page](/user-docs/trade/spot/stock-page) |
| **SmartMoney Buys** | Tokens that tracked smart-money wallets are buying, with the number of traders and total buy size |
Each card links through to the relevant [Discover](/user-docs/trade/spot/discover) tab or to [SmartMoney](/user-docs/trade/spot/smart-money) for the full list.
## Market Dominance
The Market Dominance treemap shows how value and performance are distributed across token categories — such as **Stocks**, **Memes**, **DeFi**, and **Infra**. Each tile represents a token within its category, sized by relative weight and colour-coded by price change (red for negative, green for positive), with a timestamp for the snapshot.
***
Curated feeds, screeners, and filters to find tokens.
See what notable and profitable wallets are trading.
# DCA Orders
Source: https://docs.jup.ag/user-docs/trade/spot/recurring-orders
Automatically spread your purchases over time using dollar-cost averaging.
DCA (Dollar-Cost Averaging) orders let you automatically spread your purchases over time. Instead of buying a token all at once, you split a total amount into multiple smaller trades (suborders) that execute at regular intervals.
This feature was previously labelled **Recurring** on the web interface; it now appears as **DCA** across the swap form, token pages, orders, and Activity. Jupiter Mobile still labels it **Recurring**.
Your selling tokens are held in a program-owned vault (a secure onchain account that holds your tokens while the order is active), and suborders execute according to your specifications. Purchased tokens are automatically sent to your wallet after each successful suborder.
The vault address is not a deposit address. Never send tokens to it directly: tokens sent straight to a vault address are not credited to any order and can only be recovered through a support ticket, which is not guaranteed. The same applies to tokens a project sends to that address on its own, such as holder rewards or airdrops paid to the holders of a token locked in an order: they land in the vault, not in your wallet, and recovering them also goes through support.
If the token charges a Token-2022 transfer fee, the order review shows a transfer-fee warning, and cancelling such an order asks for a confirmation first.
Jupiter currently offers two versions: **DCA V1** (formerly Recurring V1) and **DCA V2**.
**DCA V1 (formerly Recurring V1) is being sunset.** New V1 orders can no longer be created. We recommend using [DCA V2](#dca-v2) for all new orders.
## V1 vs V2
| | DCA V1 | DCA V2 |
| - | - | - |
| **Execution mode** | Time-based only | Time-based or price conditional |
| **Price range** | Not supported | Optional USD price range on trigger token |
| **Fees** | 0.1% flat | Ultra routing fee (0–0.5%) + base fee (0.03–0.1% depending on pair category) |
| **Vault authentication** | Not required | Wallet signature required to place or view orders |
| **Order history** | Limited | Full history with status updates per suborder |
| **Expiry** | Runs until all suborders are filled or cancelled | Runs until all suborders are filled or cancelled (no expiry) |
## DCA V2
### How It Works
Sign a message or transaction to authorize your DCA vault. This is a one-time step per wallet address, required before placing or viewing orders: your authorisation is remembered across wallet switches, page refreshes, and browser tabs, until you disconnect your wallet. If the wallet's signature prompt stalls, the form shows a timeout message and offers signing by transaction instead. See [Vault access](/user-docs/trade/spot/limit-orders#vault-access) for what this signature grants and how to revoke it.
Your selling tokens (e.g. USDC) are transferred to the vault.
Your first suborder executes immediately.
Remaining suborders follow at your selected frequency. Each suborder executes with a random variance of ±30 seconds to reduce MEV (Maximal Extractable Value) exposure.
Purchased tokens are automatically sent to your wallet after each successful suborder.
**Example:** *If you allocate 900 USDC into SOL over 3 suborders with a daily frequency, 300 USDC suborders execute on Day 1 (immediately), Day 2 (\~24h later), and Day 3.*
#### Pricing
The price for each suborder is calculated at the time of execution based on current market conditions. Slippage is managed automatically per execution: Jupiter sets an acceptable slippage for each suborder from live market conditions, so you receive a minimum acceptable amount of tokens. There is no per-order slippage setting to configure. If the price moves beyond the acceptable slippage, the suborder is reverted to protect your funds and retried at the next interval.
#### Automatic retry
If a suborder fails (due to insufficient liquidity, network congestion, or other reasons), the program automatically retries at the next scheduled interval.
#### Token delivery
After each successful suborder, purchased tokens are automatically transferred to your wallet. This requires you to have the correct ATA (Associated Token Account) for that token.
If you manually close your token's ATA during an active DCA order, new tokens will remain in the vault instead of transferring to your wallet. All accumulated tokens will be sent as a lump sum when the order completes.
### Parameters
When setting up a DCA order on V2, you can specify:
* **Token pair** — Token to allocate (sell side) and token to purchase (buy side)
* **Amount** — Total amount to allocate
* **Frequency** — Interval between suborders (e.g. every minute, hour, day, week)
* **Total suborders** — Number of suborders to split the allocation into
The minimum is $10 USD per suborder. The total minimum allocation scales with the number of suborders (e.g. 2 suborders = $20 minimum, 5 suborders = \$50 minimum).
#### USD Price Range (Optional)
You can optionally set a USD price range on a trigger token. When a price range is set, suborders only execute when the trigger token's price is within your specified min and max. If the price is outside the range at the scheduled time, the suborder is marked as **Out of Range** and rescheduled to the next interval.
Rescheduling continues indefinitely until the price enters the range and the suborder fills successfully. The next suborder is then queued one interval after the successful fill.
Price range is not available for stable-to-stable pairs. For non-stable to stable pairs, the price range is automatically set on the non-stable token.
### Earn Yield While You DCA
DCA V2 orders funded with a supported stablecoin can opt in to earn Jupiter Lend yield on the capital waiting to be filled.
* **Supported input tokens**: USDC, USDT, and JupUSD. The Earn option is hidden for other input tokens.
* **Time-based orders only**: the option is disabled when a USD price range is set on the order.
* **Variable rate**: the form shows the current estimated APY (Annual Percentage Yield) for the selected token. The rate updates automatically with market conditions and is not guaranteed.
When Earn is enabled, your deposit is converted into the token's JL equivalent (the Jupiter Lend receipt token, e.g. jlUSDC) and held in the order vault, where it accrues lending yield. Before each scheduled fill, one instalment is converted back into the stablecoin and used for the swap. Accrued yield is returned to you when the order completes or is cancelled; if the remaining yield is very small, it is folded into the final fill. Conversions between the stablecoin and its JL equivalent carry no fee.
Orders with Earn enabled show a **Yield Earned** (USD) row. For short-lived orders the amount is typically very small: the feature is most relevant for orders spread over longer periods.
While the order is active, the idle capital is held as a Jupiter Lend position rather than the stablecoin itself. This carries the additional risks of the lending protocol on top of the stablecoin's own risks. Yield is variable and not guaranteed.
### Fees
DCA V2 applies the same fee structure as Limit Order V2:
**Base fee:**
* 0.03% for stable or pegged pairs
* 0.1% for all other pairs
**Ultra routing fee:**
* 0–0.5%, depending on the token pair and execution mechanism used
Fees are deducted automatically when each suborder executes.
### Managing Orders
Active and past DCA orders can be viewed from the DCA page on [jup.ag/recurring](https://jup.ag/recurring) or from the Portfolio drawer under **Activity → DCA**. The drawer only shows V2 orders.
Orders can be cancelled from either location. When cancelling, remaining funds are returned to your wallet.
Pausing and resuming DCA orders is not currently supported. To stop, you must cancel the order and create a new one.
### MEV Protection
MEV (Maximal Extractable Value) refers to strategies like frontrunning and sandwich attacks where bots exploit pending transactions. Jupiter has built-in protections against MEV on DCA orders:
* **Randomized timing** — Suborders execute with ±30 second random variance from their scheduled time.
* **Pre-execution price checks** — Ensures fair pricing before completion.
* **Automatic cancellation for unfavorable prices** — Protects you from bad trades.
* **Natural protection through dollar-cost averaging** — Smaller trades over time reduce manipulation risk.
These protections reduce the risk of MEV but do not eliminate it entirely. MEV cannot be fully prevented on any blockchain.
### Limitations
**Token-2022 supported, with transfer fees applied**\
DCA V2 accepts Token-2022 tokens, including those that charge a transfer fee. The fee belongs to the token, not to Jupiter: it is taken on the deposit, on each fill, and when a cancellation returns your remaining tokens. The review dialog shows the rate before you confirm, and a creator can change that rate later. See [Token-2022 and transfer fees](/user-docs/trade/spot/limit-orders#token-2022-and-transfer-fees).
**No pause/resume**\
You cannot pause a DCA order. To stop, cancel and create a new one.
## DCA V1 (Legacy)
**DCA V1 (formerly Recurring V1) is being sunset.** New V1 orders can no longer be created. Use [DCA V2](#dca-v2) instead, which supports advanced features including optional USD price ranges, dynamic fees, and full order history.
Existing V1 orders remain viewable on the web at [jup.ag/recurring](https://jup.ag/recurring) via the **Legacy** toggle, and in Jupiter Mobile.
### How It Works
Your selling tokens (e.g. USDC) are transferred to a secure vault.
Your first suborder executes immediately.
Remaining suborders follow at your selected intervals. Each suborder executes with a random variance of ±30 seconds to reduce MEV exposure.
Purchased tokens are automatically sent to your wallet after each successful suborder.
#### Pricing
The price for each suborder is calculated at the time of execution based on current market conditions. Slippage is managed automatically per execution; there is no per-order slippage setting. If the price moves beyond the acceptable slippage, the transaction is reverted.
#### Automatic retry
If a suborder fails, the program automatically retries at the next scheduled interval.
#### Token delivery
After each successful suborder, purchased tokens are automatically transferred to your wallet. This requires you to have the correct ATA (Associated Token Account) for that token.
If you manually close your token's ATA during an active DCA order, new tokens will remain in the vault instead of transferring to your wallet. All accumulated tokens will be sent as a lump sum when the order completes.
### Parameters
When setting up a DCA order on V1, you can customize:
* **Token pair** — Token to allocate (sell side) and token to purchase (buy side)
* **Amount** — Total amount to allocate
* **Frequency** — Interval between suborders (e.g. daily, weekly) and duration
The minimum order amount on V1 is $100, spread over at least 2 suborders ($50 per suborder).
### Order Lifecycle
When your DCA order completes:
* If your token's ATA is open, all remaining tokens are transferred to your wallet.
* If you closed your ATA mid-cycle, the program will use part of the rent to reopen your token account so tokens can be transferred.
* By default, 2/3 of the rent from your DCA account is returned to you. The remaining 1/3 is recoverable if you later close your ATA.
Never close your ATA before withdrawing or swapping your tokens, as this could result in token loss. This is a standard limitation of Solana tokens.
### Fees
Jupiter charges a **flat 0.1% fee** on all DCA V1 orders.
### Managing Orders
V1 orders are viewable on the web at [jup.ag/recurring](https://jup.ag/recurring) via the **Legacy** toggle next to the Limit and DCA selector. They no longer appear in the Portfolio drawer, which only shows V2 orders.
Orders can be cancelled from either location. When cancelling, remaining funds are returned to your wallet.
Pausing and resuming DCA orders is not currently supported. To stop, you must cancel the order and create a new one.
### MEV Protection
* **Randomized timing** — Suborders execute with ±30 second random variance.
* **Pre-execution price checks** — Ensures fair pricing before completion.
* **Automatic cancellation for unfavorable prices** — Protects you from bad trades.
* **Natural protection through dollar-cost averaging** — Smaller trades over time reduce manipulation risk.
These protections reduce the risk of MEV but do not eliminate it entirely. MEV cannot be fully prevented on any blockchain.
### Limitations
* **Token-2022 not supported** — Token-2022 standard tokens and tokens with transfer tax features are not supported.
* **No pause/resume** — You cannot pause a DCA order. To stop, cancel and create a new one.
* **Minimum amount** — \$100 minimum, spread over at least 2 suborders.
* **Price-based orders discontinued** — As of August 31st 2025, price-based orders (formerly known as VA) have been phased out. Active orders at the time of discontinuation were automatically cancelled and all funds returned to wallets.
# Risks and Limitations
Source: https://docs.jup.ag/user-docs/trade/spot/risks-and-limitations
Key risks and limitations to understand when trading on Jupiter Spot.
Jupiter Spot surfaces a wide range of tokens and market data, and lets you trade them directly. This page describes the risks involved. Read it carefully before trading.
## Trading risks
Slippage is the difference between the price you expect and the price you actually get when the trade executes, because market conditions can change between submitting a trade and it landing onchain. In [Ultra Mode](/user-docs/trade/spot/ultra-mode), slippage is managed automatically via RTSE (Real-Time Slippage Estimator). In [Manual Mode](/user-docs/trade/spot/manual-mode), you set your own tolerance — too low increases the chance of failed trades, too high exposes you to worse prices.
Price impact occurs when your trade size is large relative to the available liquidity in a pool — the larger your trade compared to the pool, the more the price moves against you. Jupiter displays the estimated price impact before you confirm; routing across multiple pools helps reduce it. The displayed price impact includes Ultra fees and, for gasless trades, the gasless surcharge.
MEV refers to strategies like front-running and sandwich attacks where bots exploit pending transactions. [Ultra Mode](/user-docs/trade/spot/ultra-mode) includes built-in MEV protection through private transaction submission, which significantly reduces the risk but does not eliminate it — MEV cannot be fully prevented on any blockchain. [Manual Mode](/user-docs/trade/spot/manual-mode) does not include MEV protection.
When using [Ultra Gasless Support](/user-docs/trade/spot/ultra-mode#gasless-trading), Jupiter pays the gas on your behalf and recovers the same value from your trade output; there is no extra fee, but the fixed gas cost weighs more on small trades and can reach 10% of the trade at the eligibility limit. Gasless is a last-resort mechanism for users who cannot pay gas themselves; paying your own gas generally results in better execution. This does not apply to swaps routed through JupiterZ, where the market maker covers the gas.
## Token risks
Spot displays tokens as soon as they are tradeable onchain, including tokens that are:
* **Newly launched** — very short history, limited liquidity, and unpredictable price behavior
* **Unverified** — not reviewed through [Jupiter's verification process](/user-docs/launch/vrfd). Unverified does not necessarily mean malicious, but no review has been performed.
* **On a bonding curve** — not yet migrated to a standard liquidity pool (see below); limited liquidity and high price impact per trade.
Because token creation on Solana is permissionless, anyone can create a token with any name or ticker — including fake tokens designed to impersonate legitimate projects. **Always verify the contract address before trading.** Jupiter reduces this risk through verification, activity-based ranking, and filtering of known fake tokens, but these protections do not eliminate it.
Spot indicators — such as holder count, liquidity, organic score, and verification status — are **informational tools, not guarantees of safety**. A token can display favorable metrics and still carry significant risk. Always conduct your own research before trading.
Some tokens launch through a bonding curve mechanism (used by launchpads like Pump.fun and others). In this model, the token's price is determined by a mathematical curve rather than by a traditional liquidity pool.
The **bonding curve percentage** shown on Spot represents how much of the curve has been filled. Once the curve reaches 100%, the token typically migrates to a standard AMM liquidity pool (e.g., on Raydium or Meteora).
Before migration, liquidity is limited to what the bonding curve provides, and price impact on trades can be significantly higher than on established pools.
### Developer authority risks
Some tokens have active developer controls that allow the token creator to take actions that affect all holders:
* **Mint Authority** — if enabled, the developer can create additional tokens at any time, potentially diluting existing holders
* **Freeze Authority** — if enabled, the developer can freeze any token account, preventing the holder from transferring or selling
Spot displays these indicators on token pages. Check them before trading.
### Liquidity removal (rug pulls)
Token creators can remove all liquidity from a pool at any time, making the token untradable and effectively worthless — commonly called a "rug pull." If liquidity falls below Jupiter's minimum requirements, the market is delisted from routing (see [How tokens are listed and routed](/user-docs/trade/spot/token-page#how-tokens-are-listed-and-routed)).
### Jupiter Shield
Jupiter Shield flags potential risks in the trade widget when detected. Examples of warnings include:
| Warning | Meaning |
| - | - |
| **Not Verified** | The token is not verified — check the mint address before trading. |
| **Low Organic Activity** | The token has low natural trading activity. |
| **New Listing** | The token was recently listed. |
| **Has Freeze Authority** | The authority owner can freeze your token account. |
| **Has Mint Authority** | The authority owner can mint additional tokens. |
Jupiter continuously improves this system to increase accuracy and add new risk indicators over time.
## Liquidity and price impact
Tokens displayed on Spot vary widely in liquidity. Low-liquidity tokens carry additional risks:
* **High price impact** — your trade itself can move the price significantly
* **Slippage** — the difference between the quoted price and the executed price may be large
* **Difficulty exiting** — selling a large position may not be possible at the expected price, or at all, if liquidity is insufficient
## Wallet tracking and copy trading risks
[SmartMoney](/user-docs/trade/spot/smart-money) lets you follow other wallets and monitor their trades in real time. If you use this information to replicate another wallet's trades:
* **Past performance of any wallet does not predict future results**
* You are executing trades from your own wallet, at your own price — market conditions may have changed between the tracked wallet's trade and yours
* Tracked wallets may have different risk tolerance, time horizons, or information than you
* There is no guarantee that a wallet showing profitable trades is not engaged in manipulative behavior
Following a wallet and replicating its trades is entirely at your own risk. Jupiter does not endorse, verify, or audit any wallet shown in SmartMoney.
## Product-specific risks
### Limit Orders
When the trigger is reached, the order is submitted for execution with your slippage tolerance applied. If the price drops past your Stop Loss trigger by more than your set slippage tolerance, the order will not execute. See [Take Profit and Stop Loss](/user-docs/trade/spot/limit-orders#take-profit-and-stop-loss).
Limit Order V2 prioritizes execution with minimal slippage when the trigger is hit, but the exact output amount may differ from the estimate shown at order creation.
Orders may execute partially if liquidity is insufficient. The remaining amount stays active until fully filled, cancelled, or expired.
Limit Order V2 supports Token-2022 tokens, including those that charge a transfer fee. The fee is set by the token, not by Jupiter, and applies on the deposit, on the sell, on each buy, and when a cancellation returns your tokens. The rate is shown before you confirm, but a creator can change it afterwards, so an order can settle at a different rate than the one displayed. Limit Order V1 does not support these tokens. See [Token-2022 and transfer fees](/user-docs/trade/spot/limit-orders#token-2022-and-transfer-fees).
### DCA Orders (Recurring)
Individual suborders can fail due to insufficient liquidity, excessive slippage, or network congestion. Failed suborders automatically retry at the next scheduled interval.
If you manually close your token's Associated Token Account (ATA) during an active DCA order, purchased tokens will remain in the vault instead of being transferred to your wallet. Never close your ATA before withdrawing or swapping your tokens.
Same behaviour as Limit Orders — DCA V2 accepts these tokens and the token's own transfer fee applies on the deposit, on each fill, and on cancellation. DCA V1 does not support them.
You cannot pause a DCA order. To stop, you must cancel and create a new one.
## Environment risks
Some browser extensions modify Jupiter's quote responses or inject additional referral fees, resulting in higher-than-expected fees on your trades. These extensions operate independently of Jupiter. If you notice unexpected fees, disable third-party extensions and restart your browser. See the [FAQ](/user-docs/trade/spot/faq#why-am-i-paying-more-fees-on-jupiter-than-expected) for known extensions and detailed steps. [Jupiter Wallet](/user-docs/manage/extension-wallet/security#transaction-protection) filters transfers to known malicious addresses injected this way.
## General limitations
* Spot displays data from onchain sources. This data can be delayed, incomplete, or manipulated.
* Token metadata (name, symbol, description, social links) is provided by the token creator and is not verified by Jupiter unless the token has been through the [verification process](/user-docs/launch/vrfd).
* AI-generated insights (produced by Jupiter's Intel service) are automated summaries. They may contain inaccuracies and should not be treated as financial advice.
* Jupiter does not provide financial advice. Nothing displayed on Spot constitutes a recommendation to buy, sell, or hold any token.
***
Understand the fee structure on Spot.
Safety indicators and token data explained.
# SmartMoney
Source: https://docs.jup.ag/user-docs/trade/spot/smart-money
See what notable and profitable wallets are trading on Jupiter Spot — leaderboards, a live trade feed, and followed wallets.
SmartMoney surfaces what notable and profitable wallets are doing on Solana. It is accessible from the **SmartMoney** tab in the Spot interface, and brings together three things: a live feed of notable trades, leaderboards of top traders, and a **Wallet Tracker** for following specific addresses.
## Live Trades
A real-time strip at the top of SmartMoney shows notable trades as they happen. Each entry shows whether it was a **Buy** or **Sell**, the token traded, how many tracked traders were involved, the total size in USD, and how long ago it executed.
## Leaderboards
The main SmartMoney view ranks traders into four categories. Use the **1d / 7d / 30d** selector to change the ranking period. The ⓘ icon next to the category tabs shows these definitions in the app.
| Category | Who it ranks |
| - | - |
| **Influencers** | Wallets associated with well-known crypto personalities on X (rows show the @handle) |
| **Smart** | Wallets with a strong track record of consistent, profitable trading ("smart money") |
| **Top PnL** | Wallets with the highest recent PnL over the selected period |
| **Whales** | Wallets that regularly make large trades |
Each row shows:
| Column | Description |
| - | - |
| **#** | Rank within the leaderboard |
| **Trader** | Avatar, name, and linked @handle where available |
| **PnL** | Profit and loss over the selected period |
| **Win Rate** | Percentage of the wallet's trades that were profitable over the selected period |
| **Volume** | Trading volume over the selected period |
| **Active** | How recently the wallet last traded |
| **Actions** | Follow the wallet (heart icon) to add it to your Wallet Tracker |
## Wallet Tracker
The **Wallet Tracker** (open it with the **Wallet Tracker ↗** button) lets you follow specific wallets and monitor their trading activity in real time.
If you are not following any wallets yet, the Tracker suggests top wallets to follow (top influencer wallets by daily PnL, with win rate and volume): follow one directly from the suggestion cards or open the leaderboard. The suggestions stay visible below your list after you start following wallets.
### Adding a wallet
In the Wallet Tracker, enter a wallet address manually or import a list of wallets.
Alternatively, navigate to any [token page](/user-docs/trade/spot/token-page) and open the **Transactions** table. Click on a trader's address to view their PnL analysis. From there, you can choose to follow that wallet. You can also follow any wallet directly from the leaderboards using the heart icon.
Click the **Follow** action. Once followed, the wallet's future trades appear in your live feed and as markers on token charts.
You can also give the wallet a label. Labels are independent from following: labeling a wallet identifies it across the interface, but does not follow it and does not by itself add trades, markers, or notifications.
### Labels, emojis, and avatars
Each wallet has an avatar you can personalise with an emoji. Labels and emojis are edited together in a single **wallet details** dialog, opened from the Tracker, the trader modal, or the trader drawer on a token page; the dialog also shows the full wallet address with a copy action. Labels are kept when you unfollow a wallet, and emojis are kept when you remove a label. The avatar identifies the wallet across the Tracker, the live feed, and chart trade markers.
### Removing a wallet
To unfollow a wallet, click **Follow** again — there is no separate remove action.
### Alerts
Following a wallet includes its trade feed and its trade markers on charts. The markers can be hidden for all followed wallets at once from the chart's **Display Options** dropdown (**Followed Wallet Trades**); there is no per-wallet toggle. On token charts, repeated trades from the same wallet are grouped by side and candle, with a count badge and aggregated details. **Sound alerts** (audio notifications when a followed wallet trades) remain a separate per-wallet control.
The followed-wallet feed also includes a Quick Buy button, allowing you to buy the same token directly from the feed.
SmartMoney is an observation tool. Following a wallet and replicating its trades is entirely at your own risk. Past activity of a followed wallet does not predict future results. Jupiter does not endorse, verify, or audit any wallet shown. See [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations).
***
Find wallets to follow from the Transactions table.
Your full portfolio and PnL dashboard.
# Stock Pages on Jupiter
Source: https://docs.jup.ag/user-docs/trade/spot/stock-page
Every stock available as a tokenized version on Jupiter has a stock page: underlying price and chart, stock stats, the issuers you can trade it from, and related prediction markets.
Every stock that is available as a tokenized version on Jupiter has a dedicated stock page. It shows the **underlying listed stock** — its price, chart, and fundamentals — and lists the tokenized versions you can trade, one per issuer.
You reach a stock page by clicking a row in the [Stocks screener](/user-docs/trade/spot/discover#stocks-screener) (**Stocks** in Jupiter's left navigation), from the **View Stock** link on a tokenized stock's [token page](/user-docs/trade/spot/token-page#tokenized-stock-fields), or directly at `jup.ag/stocks/` (for example `jup.ag/stocks/nvda`).
A stock page describes the listed company and its share. It is not a token page: the price, chart, and stats are those of the underlying stock, not of any issuer's token. To trade, pick an issuer under **Trade** — this opens that issuer's token page, where the on-chain price, liquidity, and swap panel live.
## Header
| Element | Description |
| - | - |
| **Company and ticker** | Name of the listed company and its exchange ticker. The breadcrumb (**Spot › Stocks › ticker**) takes you back to the screener. |
| **Issuers** | Number of issuers offering a tokenized version of this stock. Click it to see them (same table as **Trade**). |
| **Market status** | Current session of the listed market (for example **Pre-market**). Click it to see the session times (overnight, pre-market, regular hours, after hours) and when regular hours next open. These are the sessions of the traditional market, not the trading hours of the tokenized versions, which can trade outside them (see [Trading hours](/user-docs/trade/spot/tokenized-stocks#trading-hours)); liquidity is usually deepest during regular hours. |
| **Trade** | The button labelled with the ticker (for example **Trade NVDA**) opens the issuer table to pick which tokenized version to buy (see below). |
| ☆ | Adds the stock to your [Watchlist](/user-docs/trade/spot/watchlist). |
## Choosing an issuer
The **Trade** button and the issuers count open a table with one row per issuer:
| Column | Description |
| - | - |
| **Issuer** | Issuer of the tokenized version (for example xStocks, Ondo). One issuer may carry a **Popular** badge. |
| **Liquidity** | Available on-chain liquidity for that token. Tokens fulfilled via Request-for-Quote show **RFQ** instead of a value — see [RFQ liquidity](/user-docs/trade/spot/discover#rfq-liquidity). |
| **Price** | Last traded price of that token on Solana. It can differ from the underlying price, and between issuers. |
| **Buy** | Opens the issuer's [token page](/user-docs/trade/spot/token-page) with the swap panel ready. |
Each issuer mints its own token, with its own backing, redemption terms, trading hours, and eligibility rules. See [Tokenized Stocks](/user-docs/trade/spot/tokenized-stocks) before choosing.
## Underlying price and chart
The large price is the **underlying price** — the latest price of the listed share in USD, with its change since the previous market close. The chart plots the underlying stock over **24H**, **7D**, **30D**, or **90D**, using market-hours data.
## Stock stats
| Field | Description |
| - | - |
| **Market cap** | Total market value of the listed company |
| **Previous close** / **Open** | Last regular-session close and today's opening price |
| **Day's range** / **52-week range** | Low–high of the current session and of the last 52 weeks |
| **Volume** / **Avg volume** | Number of shares traded today and on an average day |
| **P/E ratio** | Price-to-earnings ratio |
**Show more** reveals **EPS**, **Dividend yield**, **Beta**, and **Next earnings**.
## About
A description of the company, followed by **Ticker**, **Asset class** (for example Equity), **Tokenized by** (number of issuers), **Sector**, **Industry**, **Employees**, and **Website**.
Below it, a short **FAQ** specific to the stock covers what its tokenized version is, why the token price can differ from the listed share, who issues it, when it trades, how to buy it, and how dividends are handled.
## Related stocks and prediction markets
* **Related stocks** — other stocks available on Jupiter, with price and 24h change, each linking to its own stock page.
* **Related prediction markets** — [Predict](/user-docs/trade/predict/index) markets about this stock's price or company events, with current odds and total volume. **Show more** opens the market on Predict.
***
Listed and tokenized stock screeners.
How tokenized stocks work, issuers, and risks.
On-chain data and trading tools for each issuer's token.
# Token Pages on Jupiter
Source: https://docs.jup.ag/user-docs/trade/spot/token-page
Every tradeable Solana token has a Jupiter token page: live market data, charts, safety indicators, community metrics, and trading tools in one place.
Every tradeable token on Jupiter Spot has a dedicated token page. This page aggregates market data, safety indicators, charts, community metrics, and trading tools in one place.
You can access a token page by clicking on any token in a [discovery tab](/user-docs/trade/spot/discover), or by navigating directly to `jup.ag/tokens/`.
## Page Layouts
Desktop token pages come in two layouts, switched with the chevron on the left edge of the chart:
* **Standard view** (default) — market data in a bar across the top, with the chart taking the main area.
* **Three-column view** — a dedicated left column for market data, stats, and token info, with the chart in the middle.
In both layouts, Quick Swap sits on the right side of the page. A separate control, the screen icon in the token header, switches between the **Normal chart view** and the **Wide chart view**: the wide view hides the trading panel so the chart spans the full width of the page. Your choices are saved for your next visit; new visitors start in Standard view with the normal chart.
## Market data
Each token page displays the following market data:
| Field | Description |
| - | - |
| **Price** | Current token price, with 24-hour change |
| MC | Total value of all circulating tokens (price × circulating supply). Hover it to see the circulating supply |
| FDV | Theoretical value if all tokens (including non-circulating) were in circulation |
| **Liquidity** | Available liquidity for this token (see Liquidity section below) |
| **Holders** | Number of unique wallets currently holding the token |
| **Fees Paid** | Total fees paid in relation to this token |
| **Org Score** | Organic Score — see [Organic Score](/user-docs/trade/spot/discover#organic-score) |
| **Price Performance** | Price change over 5-minute, 1-hour, 6-hour, and 24-hour periods |
### Growth metrics
Below the price performance, the token page displays percentage changes over recent periods for three key metrics:
* **Vol %Δ** — volume change
* **Liquidity %Δ** — liquidity change
* **Holders %Δ** — holder count change
These help identify whether a token's activity is growing or declining.
### Tokenized stock fields
Token pages of tokenized stocks add a **View Stock** link under the token name, which opens the underlying stock's [stock page](/user-docs/trade/spot/stock-page), and three fields comparing the token with the listed share:
| Field | Description |
| - | - |
| **Mark Price** | Price of the underlying asset (the listed share). **Price** remains the last traded price of the token on Solana |
| **Discount** | Percentage difference between the token's price on Solana and the mark price |
| UMC | Market cap of the underlying asset, as opposed to **MC**, the on-chain market cap of the token |
Tokens whose liquidity is provided on demand show **RFQ** in the Liquidity field — see [RFQ liquidity](/user-docs/trade/spot/discover#rfq-liquidity).
## Trading activity
| Field | Description |
| - | - |
| **24h Volume** | Total trading volume in the last 24 hours |
| **Net Volume** | Buy volume minus sell volume over 24 hours |
| **Buy/Sell %** | Proportion of buy vs sell trades over 24 hours |
| **24h Traders** | Number of unique wallets that traded the token in 24 hours |
| **Net Buyers** | Number of buyers minus number of sellers over 24 hours |
| **Net Buy Trend** | Directional trend of net buying activity over 24 hours |
## Token information
| Field | Description |
| - | - |
| **Token Name & CA** | Token name and its onchain contract address |
| **DA (Developer Address)** | The wallet address that deployed the token contract |
| **Token Age** | Time since the token was created onchain |
| **Social Links** | Website, X (Twitter), Telegram, and other links if provided by the token creator |
| **Verification badge** | A green **Verified** badge next to the ticker when the token has been through [Jupiter's verification process](/user-docs/launch/vrfd); otherwise a **Not Verified** entry appears in the token's JupShield warnings chip |
Social links and token descriptions are provided by the token creator. Jupiter does not verify this information unless the token has been through the VRFD process.
### Header shortcuts
Next to the contract address, the token header carries small icons:
* **Launchpad or issuer icon** — opens the token on its launchpad or issuer site, when it has a page there.
* **Holder rewards** — shown on tokens that fund rewards for their holders with a transfer fee. See [Holder rewards](#holder-rewards).
* **Token Insights** — Jupiter's AI summary of the project, with the date of its last update. It is the same summary as in the [About section](#about-section).
* **Search** — click the magnifier to search X for the ticker or the contract address. Hover it for more: **X Search for Address**, **X Search for Dev Address**, **X Search for Name**, **TikTok Search for Name**, **Google Search for Name**, **Jupiter Search for Name**, and **Open in Explorer**.
## Liquidity
The liquidity value displayed on a token page is calculated by aggregating liquidity from the **quote side** of trading pairs with a curated set of established bluechip tokens (e.g. SOL, JUP, JLP, jitoSOL, TRUMP, USDC, USDT).
This list is maintained by Jupiter and may change over time.
A token's own liquidity is only included in the calculation if Jupiter considers it an established asset — typically tokens with high market cap and deep liquidity.
## Safety indicators
Token pages display several indicators that help evaluate the token's risk profile. These are informational — they do not guarantee safety.
| Indicator | What it means |
| - | - |
| **Mint Authority** | Whether the token creator can mint (create) additional tokens. If enabled, supply can increase at any time. |
| **Freeze Authority** | Whether the token creator can freeze token accounts. If enabled, a holder's tokens can be made non-transferable. |
| **Top 10 Holders %** | Percentage of total supply held by the top 10 wallets. High concentration may indicate risk. |
| **Dev Holding %** | Percentage of supply held by the developer wallet. |
| **Dev Bought / Dev Sold (DB / DS)** | Markers on the chart showing when the developer wallet bought or sold the token. The developer wallet is identified as the wallet that deployed the token contract. |
| **Dev Migrations** (crown icon) | Launchpad tokens only. How many tokens from the same developer wallet have bonded, that is, completed their bonding curve and migrated to a liquidity pool. The crown turns yellow above one. Hover it for the developer's record: **Bonded** (with its share of all tokens created), **Created**, **Created (7d)**, **SOL Balance**, and their **Top Token**. The full list is in the [Dev Tokens](#dev-tokens) tab. |
| **Snipers Holding %** | Percentage of supply held by snipers — wallets that bought the token early, within the first three blocks after launch. |
| **Insiders Holding %** | Percentage of supply held by insiders — wallets that bought within the first block after launch, or received the token from another insider. Insider status propagates through transfers: if a first-block buyer sends tokens to another wallet, that recipient also becomes an insider. A green check is shown if insiders hold less than 5%. |
| **Pro Traders %** | Percentage of the token supply held by pro traders. Pro traders are wallets identified as users of professional trading platforms (e.g. Axiom, GMGN, and similar tools). |
| **Dex Paid** | Whether the token creator has paid for a DEX listing or promotion. This is an informational flag — it does not indicate quality or legitimacy. |
| **Bonding Curve %** | How far the token is along its bonding curve before migration. See [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations) for details. |
These indicators help assess a token but do not guarantee it is safe. A token can have no mint authority, no freeze authority, and a distributed holder base and still lose value or be part of a manipulative scheme. Always do your own research.
If a token is flagged as impersonating another token, its token page shows a persistent warning banner with a link to the legitimate asset.
A weaker caution exists for token icons: when another token uses a visually similar icon, the icon carries a small caution badge with a tooltip. This is informational only. It does not indicate which token used the icon first, and it is not a scam verdict. Verified tokens are not flagged, nor are recognised issuer-backed assets (for example tokenized stocks that legitimately share the underlying company's branding); the caution badge only appears on unverified tokens reusing an icon.
## Holder rewards
Some launchpads attach a holder rewards program to the tokens they launch. These tokens use the Token-2022 standard and charge a transfer fee: a percentage taken each time the token moves, on buys, sells and plain transfers. The launchpad collects the fees, converts them into the asset the token is paired with, and distributes them to eligible holders.
On Jupiter, such a token shows a **Holder rewards** icon next to its contract address, on its token page and in token lists, and a JupShield warning with the fee rate (for example "3% transfer fee"). Both open the same details: the rate, how the launchpad uses the fees, and a link to the launchpad's own explanation of its rewards. The icon currently appears on tokens launched on StonkFun.
What it means when you trade such a token:
* **You pay the fee too.** It is taken on your buy, on your sell and on any transfer, on top of the usual swap costs, so every movement delivers less than the amount before the fee.
* **Jupiter does not run the program.** Eligibility, timing and amounts are decided by the launchpad, and Jupiter does not track or pay the rewards. Rewards are not guaranteed: the launchpad can delay or stop distributions.
* **The rate can change.** A token's creator can change its transfer fee rate at any time.
* **Orders work, with the fee on each movement.** Limit and DCA orders accept these tokens; see [Token-2022 and transfer fees](/user-docs/trade/spot/limit-orders#token-2022-and-transfer-fees).
## About section
Below the trading activity data, the token page includes an **About** section with:
* **Token description** — provided by the token creator
* **Token Summary** — an AI-generated summary of the token project, produced by Jupiter's Intel service. The summary shows the date of its last update, with thumbs-up / thumbs-down buttons to rate it.
* **Latest News** — an AI-generated summary of recent news for the token, shown separately from the token description, with its age displayed as relative time, thumbs-up / thumbs-down buttons, and a **More** link opening the full news feed (see [Token News](#token-news))
The token description is provided by the token creator and is not verified by Jupiter. The Token Summary is AI-generated and may contain inaccuracies. Neither constitutes financial advice.
## Community metrics
| Field | Description |
| - | - |
| **CT Likes** | Total number of verified X (formerly Twitter) users who have liked the token on Jupiter. "CT" stands for Crypto Twitter. |
| **Smart Likes** | Likes from a curated whitelist of relevant, active Crypto Twitter accounts. |
## Charts
Token pages include interactive charts powered by TradingView.
Available chart controls:
* **Price or Market Cap** display toggle
* **Chart quote** — chart the token against the active **Market pair**, or independently against **USD**, **SOL**, or **another token** of your choice. Chart drawings are saved per base/quote pair.
* **Technical indicators** — volume, spread, moving averages, and others
* **Display Options** — a dropdown in the chart toolbar. **Markers** toggles each kind of marker drawn on the candles: **Your Trades**, **Dev Trades**, **Followed Wallet Trades**, **Migration Marker**, and **News**. When the chart is quoted in USD, SOL, or market cap, the dropdown also has **Lines** (Avg Entry, Avg Exit, Trigger Buy, Trigger Sell, with a colour reset) and the Top 100 holder lines.
* **Chart settings** — the gear icon at the right of the chart toolbar opens the chart's own settings, in four tabs: **Symbol** (candle colours, price precision, timezone), **Status line**, **Scales and lines** (price scale modes and labels, date and time format), and **Canvas** (background, grid, crosshair, watermark, margins). The font size of the price and time scales is under **Canvas › Scales › Text**. These settings are saved in your browser with the chart. In a mobile browser the toolbar scrolls sideways (use the arrow at its right edge to reach the gear), and the dialog opens as a list — tap **Canvas**, then scroll to **Scales › Text**; the back arrow returns to the list.
* **Drawing tools** — trend lines and the other drawing tools sit in a toolbar on the left edge of the chart, collapsed by default. Click the small handle halfway down the left edge of the chart to open it. The second button from the top, Trend line tools, holds Trend Line, Ray, Info Line, Extended Line, Trend Angle, Horizontal Line, Horizontal Ray, Vertical Line and Cross Line, plus Parallel Channel and Regression Trend; the other buttons cover Fibonacci tools, patterns, brushes, text, shapes, the measure tool, zoom and the magnet. Pick a tool, then click on the chart to place its points. The toolbar also has buttons to hide, lock or remove all drawings, and the arrow at its right edge collapses it again.
* **Full screen and snapshot** — the last two icons of the chart toolbar open the chart in full screen, and **Take a snapshot** saves it as an image, with **Download image** or **Copy image**.
* **Resetting the chart** — right-click an empty area of the chart and choose **Reset chart view** (⌥R on Mac, Alt+R on Windows) to undo zooming and scrolling and return to the latest candles; the entry appears once the view has been moved. The same menu has **Remove indicators** and **Remove drawings**. To put colours, scales and the other chart settings back to their defaults, open the chart settings with the gear icon and choose **Apply defaults** from the **Template** menu at the bottom left of the dialog (shown as **•••** on a narrow window). The icon at the bottom of the price scale opens the scale's own menu, where **Auto (fits data to screen)** re-fits the price scale after you have dragged it.
**Reading very short timeframes.** Charts go down to 1-second, 15-second, and 30-second candles. On these, the current candle is built live from the trades as they arrive, and a single candle often holds only a handful of them: one large trade, or a swap routed through a thin pool, is enough to print a spike or a step that a 1-minute or 5-minute candle absorbs. Charts quoted against a market pair or another token refresh about every 60 seconds and start at 1 minute; if a gap appears in that history, the chart reloads itself. When a short-timeframe chart looks erratic, switch to a longer interval before judging the trend.
Market Cap view is always denominated in USD, and the chart shown for Limit and DCA orders stays in USD so order lines remain on the correct scale. Candles for arbitrary token pairs refresh about every 60 seconds and support intervals of 1 minute and above. Charts open on an **Auto** range and interval that adapts to the token's age; once you pick a range or interval manually, your choice is kept for later visits.
### Price history
Each token also has a daily USD price history page at `jup.ag/tokens//price-history`, with monthly archives, a link for each date, a CSV export, and a link back to the trading page. Unfinished UTC days are excluded, and dates without a valid observation are shown as unavailable.
### Token News
Token news is built directly into the chart. Posts are aggregated automatically by AI from X (formerly Twitter) based on their relevance to the token — they are **not** limited to accounts verified by Jupiter, and a post appearing on the chart does not mean Jupiter has checked its author or its content.
* **News markers on the chart** — aggregated posts appear as markers on the chart, next to the price action at the time they were published. Click a marker to read the post (author, timestamp, content, and engagement metrics). To hide them, open **Display Options** above the chart and uncheck **News**; the News button and drawer stay available.
* **Price impact** — each post includes a measured price move since publication (e.g. "+0.8% within \~1h, no unusual move"), so you can see how the market reacted to the news.
* **News drawer** — the **News** button above the chart (or **View token news** on any marker) opens a dedicated drawer with the token's full news feed, topped by a **Recent Happenings** AI summary that shows when it was last updated and lists the sources it used. On screens narrower than 640px the toolbar hides the News button; open the drawer from a marker instead.
* **News summary** — an AI-generated Latest News summary is displayed in the [About section](#about-section).
* **Feedback** — every post and every AI summary carries thumbs-up / thumbs-down buttons. A thumbs-down (**Not helpful**) opens a short dialogue asking what is wrong: pick at least one reason among **Scam**, **Incorrect**, **Wrong token**, and **Other** (a comment is optional, except with Other where it is required), then **Submit**; the vote is only recorded on submission, and **Close** discards it. Tap a lit thumb again to withdraw your vote.
News is AI-aggregated, including on verified tokens. Scammers post fake announcements from lookalike accounts, and such a post can appear on the chart alongside the project's real posts. Before acting on a post, open it on X, check that the account handle is the one listed in the token's official links, and never claim, connect your wallet, or send funds through a link found in a news post.
News is AI-aggregated and may contain errors: as the drawer's ⓘ tooltip says, always verify the content and its sources. Neither the posts nor the summaries constitute financial advice.
### Display Options
The **Display Options** menu lets you toggle overlays on the chart:
**Markers**
* **Your Trades** — markers showing your own buy and sell transactions
* **Dev Trades** — DB (Dev Bought) and DS (Dev Sold) markers
* **Tracked Wallet Trades** — trades from wallets you follow via [SmartMoney](/user-docs/trade/spot/smart-money)
* **Migration Marker** — marks when a token migrated from a bonding curve to a liquidity pool
**Lines**
* **Avg Entry / Avg Exit** — your personal average entry and exit price lines
* **Trigger Buy / Trigger Sell** — trigger prices of your open limit orders on this token, buys and sells separately. Which orders qualify is explained in [Orders on the chart](/user-docs/trade/spot/limit-orders#orders-on-the-chart)
**Top 100 Holder Lines**
* **Avg Entry / Avg Exit** — average entry and exit price lines for the top 100 holders of the token
The Top 100 holder averages are also displayed in a summary bar below the chart, showing the average entry price, average exit price, and the percentage difference from the current price for each.
## Quick Swap
Quick Swap is available on the right side of the token page. It allows you to buy or sell the token without leaving the page.
Choose between **Market**, **Limit**, or **DCA**. See [Limit Orders](/user-docs/trade/spot/limit-orders) and [Recurring Orders](/user-docs/trade/spot/recurring-orders) for how those order types work. Picking a different token in any of these forms navigates the token page to that token while keeping the counter token selected.
Enter the amount you want to buy or sell.
Click the swap button to execute. Quick Swap uses your current execution settings (Ultra mode by default, or your manual Trade Presets).
In **Trench mode** on desktop, the Quick Swap panel includes configurable preset buttons with predefined amounts for quick buy and sell actions. You can customise these preset amounts directly in the Quick Swap window.
Below the swap panel, a **Token Info** section displays a compact summary of the token's safety indicators (Top 10 Holders %, Dev Holding %, Snipers Holding %, Freeze/Mint Authority, Dex Paid, Pro Traders %, Insiders Holding %, CA, and DA).
## Tabs below the chart
Below the chart, several tabs provide detailed data about the token's activity and your own interaction with it.
### Transactions
The Transactions tab shows a live feed of trades for this token. Each row displays the trade date/age, type (Buy/Sell), price, token amount, volume in USD, and the trader's wallet address. The live view keeps the most recent 30 trades, backed by a sliding window of about 1,000 rows: paginate in either direction to load older history, and use **Back to latest** (or **Back to top**) to return to the live feed. Date and sort controls stay available while you browse history.
You can filter transactions using four sub-tabs:
| Sub-tab | What it shows |
| - | - |
| **All** | All transactions for this token |
| **You** | Only your own transactions |
| **Dev** | Transactions from the developer wallet |
| **Tracked** | Transactions from wallets you follow via [SmartMoney](/user-docs/trade/spot/smart-money) |
You can follow a wallet directly from this table by clicking on a trader's address. For full details, see the [SmartMoney page](/user-docs/trade/spot/smart-money).
For launchpad tokens, you can additionally filter the table by **Sniper**, **Insider**, and **Bundler** to isolate these wallet types. This filter is currently available for launchpad tokens only.
* **Sniper** — a wallet that bought the token early, within the first three blocks after launch.
* **Insider** — a wallet that bought within the first block after launch, or received the token from another insider. Insider status propagates through transfers: if a first-block buyer sends tokens to another wallet, that recipient also becomes an insider.
* **Bundler** — a wallet that took part in a bundle: a coordinated cluster of transactions in a single block, all trading the same token.
### My Positions
Shows your current position and PnL for this specific token, including Average Entry and Average Exit, Bought value, Unrealised PnL, Realised PnL, Total PnL, Balance, and Position %. For a full overview of all your positions across tokens, see the [Positions page](/user-docs/trade/spot/positions).
### My Orders
Shows your open and past orders for this specific token (Limit and DCA, with a Legacy toggle for V1 orders). You can view and manage your orders directly from the token page.
### Holders
Displays the token's holder list with the total number of holders and the Top 10 holders percentage. Each row shows detailed data per holder:
| Column | Description |
| - | - |
| **Address** | Wallet address (truncated) |
| **Remaining** | Percentage of the total supply still held, with USD value |
| **Bought** | Total USD value bought, number of tokens bought, and number of buy transactions |
| **Sold** | Total USD value sold, number of tokens sold, and number of sell transactions |
| **Avg Entry / Avg Exit** | The trader's average entry and exit on this token, in price or market cap terms following your Price/MC preference |
| **Unrealized** | Unrealized PnL in USD |
| **PnL** | Total PnL (unrealized + realized) in USD |
| **SOL Balance / Last Active** | Current SOL balance of the wallet, and the time of its last position trade on this token. Selling tokens that were transferred in (without an active position) does not count as activity. |
| **Funding / Amount** | Funding source wallet and amount |
You can filter holders using three sub-tabs: **All**, **Dev** (developer wallet only), and **Tracked** (wallets you follow via [SmartMoney](/user-docs/trade/spot/smart-money)).
For launchpad tokens, you can additionally filter holders by **Sniper**, **Insider**, and **Bundler** (see the wallet type definitions under the Transactions section). This filter is currently available for launchpad tokens only.
### Top Traders
Displays the top traders for this token. The column layout is the same as the Holders tab, except that the **Unrealized** column is replaced by **Realized** (realized PnL in USD); **PnL** remains the total. Like Holders, this tab supports the same **All**, **Dev**, and **Tracked** sub-tabs, and may not display data if the number of top traders exceeds the display threshold.
### Dev Tokens
Shows all other tokens launched by the same developer wallet, with the total count displayed in the tab header. This can help you evaluate the developer's track record — for example, whether they have launched and abandoned multiple tokens.
## How tokens are listed and routed
Jupiter is permissionless — there is no manual listing process. Any Solana token with a valid liquidity pool on a [supported AMM](https://lite-api.jup.ag/swap/v1/program-id-to-label) is automatically available to trade. Because anyone can create a token, always verify the contract address before trading. Jupiter reduces the risk of trading the wrong token by ranking tokens by activity when you search, distinguishing community-verified tokens from unverified ones, and filtering airdropped fake tokens where possible.
### Liquidity requirements
For a token to be routable, its market must meet minimum liquidity requirements. There are two types of listing:
New markets on certain DEXes are listed automatically and receive a grace period during which liquidity is not checked. After the grace period, standard requirements apply. Bonding curves that don't meet requirements after the grace period are removed until they graduate to a new market.
The default for all markets: each market's liquidity is checked every 30 minutes, and markets that fall below requirements are removed.
A market must meet at least one of these criteria:
* \*\*Less than 30% price difference on $500** — buying $500 of the token and immediately selling it back should lose less than 30%. Calculated as ($500 − final USD value) / $500.
* **Less than 20% price impact on market** — if the first test fails, Jupiter compares the token price when buying $1,000 worth versus $500 worth; if the difference exceeds 20%, the market is considered too illiquid.
Jupiter Ultra can revive and route through delisted markets based on demand, which helps when previously inactive tokens regain organic attention.
### Supported AMMs
Jupiter routes through nearly all major AMMs on Solana — including Meteora DLMM, Raydium, SolFi, and many others — and adds new integrations over time. View the full list of [integrated AMMs](https://lite-api.jup.ag/swap/v1/program-id-to-label).
To integrate your AMM with Jupiter, see the [DEX Integration Guide](https://developers.jup.ag/docs/swap/routing/amm/integration#integration-prerequisites).
***
Follow wallets and monitor their trades.
Your full portfolio and PnL dashboard.
Save tokens and track them with curated news.
# Tokenized Stocks
Source: https://docs.jup.ag/user-docs/trade/spot/tokenized-stocks
Trading tokenized equities on Jupiter Spot — how they work, issuers, trading hours, and risks.
Tokenized stocks are onchain tokens that represent traditional equities (e.g. TSLAx, SPYx). You can buy and sell them on Jupiter Spot like any other Solana token. Browse them from **Stocks** in Jupiter's left navigation, which opens the [Stocks screener](/user-docs/trade/spot/discover#stocks-screener) ([jup.ag/spot/stocks](https://jup.ag/spot/stocks)). Each stock has a [stock page](/user-docs/trade/spot/stock-page) listing the issuers you can buy it from, and each issuer's token has its own [token page](/user-docs/trade/spot/token-page#tokenized-stock-fields).
## How tokenized stocks work
Tokenized stocks are issued by **third parties**, not by Jupiter. Jupiter curates the list of available tokenized stocks and routes trades through all available liquidity sources for best execution — there is no special partnership or custom integration; routing works the same as for any other token.
Jupiter does not issue, back, or guarantee any tokenized stock. What the token represents — its backing, redemption rights, and structure — **varies by issuer**. Review the issuer's terms before trading. See [Redemption rights](#redemption-rights) and [Risks and Limitations](/user-docs/trade/spot/risks-and-limitations).
## One stock, several tokens
The same stock can be tokenized by several issuers (for example NVDA by xStocks and Ondo). Each issuer's token is a separate asset with its own on-chain price, liquidity, and terms. Jupiter groups them under the stock's [stock page](/user-docs/trade/spot/stock-page), where the **Trade** table shows the issuers side by side so you can compare before you pick one.
## Issuers and availability
Tokenized stocks on Jupiter come from several issuers. By trading volume, the largest are typically **Backpack** and **xStocks**, followed by **Ondo** and **PreStocks**, plus **Tessera** (pre-IPO exposure) and **Shift** (leveraged and inverse tokens).
| Issuer | Notes |
| - | - |
| [**Backpack**](https://learn.backpack.exchange/articles/access-us-securities-onchain) | Among the highest-volume issuers. Tokens backed 1:1 by shares held at Backpack Securities. |
| [**xStocks**](https://docs.xstocks.fi/) | Among the highest-volume issuers. Issued by Backed Assets (JE) Limited. |
| [**Ondo**](https://ondo.finance/ondo-stocks) | 24/7 on some tokens, 24/5 on the rest, with RFQ liquidity (see below). |
| [**PreStocks**](https://prestocks.com/) | Tokenized exposure to pre-IPO companies, backed by SPV exposure to the underlying shares. |
| [**Tessera**](https://jup.ag/spot/screener/tessera) | Tokenized exposure to pre-IPO companies (for example SpaceX, OpenAI, Kalshi). |
| [**Shift**](https://www.shiftrwa.xyz/) | Leveraged and inverse (2x / 3x) tokens on stocks and ETFs, with RFQ liquidity (see below). |
The issuer list and relative volumes change over time.
## Redemption rights
Redeeming means converting the token back into the value of the underlying stock. Whether and how that is possible depends entirely on the issuer, not on Jupiter.
In practice:
* **Selling on the market is the usual exit.** You can sell a tokenized stock on Jupiter at any time there is liquidity, like any other token. This is how most holders realize value.
* **Direct redemption goes through the issuer.** Each issuer runs its own primary process, typically requiring an account or KYC onboarding with the issuer, jurisdiction-based eligibility, and minimum amounts or settlement delays. Some products (for example pre-IPO exposure tokens) may not offer redemption into the underlying shares at all.
The official and current redemption terms are the issuer's, and only theirs:
| Issuer | Official terms |
| - | - |
| Backpack | [Accessing U.S. securities onchain](https://learn.backpack.exchange/articles/access-us-securities-onchain) |
| xStocks | [xStocks documentation](https://docs.xstocks.fi/) |
| Ondo | [Ondo Stocks](https://ondo.finance/ondo-stocks) |
| PreStocks | [prestocks.com](https://prestocks.com/) |
| Tessera | Issuer terms |
| Shift | [shiftrwa.xyz](https://www.shiftrwa.xyz/) |
Redemption rights are contractual rights against the issuer, not against Jupiter. If an issuer's process is unavailable to you (jurisdiction, KYC, minimums), selling on the market is your only exit.
## Trading hours
Most tokenized stocks are tradeable **24/7**. Some issuers differ:
* **Ondo (Ondo Stocks)** — some tokens now trade **24/7**: Ondo enabled around-the-clock minting and redemption for its most-traded assets (initially SPYon, QQQon, NVDAon, TSLAon, GOOGLon, and CRCLon, with more to follow). The remaining Ondo tokens stay on a **24/5** schedule, generally available from Sunday 8pm ET until Friday 8pm ET, and may have additional trading pauses, shown in the UI. The Ondo Stocks secondary market is powered by a just-in-time (JIT) liquidity mechanism: liquidity is provided on demand through a **Request-for-Quote (RFQ)** mechanism rather than sitting in a standard AMM pool, so liquidity may be significantly lower outside traditional U.S. market hours, leading to wider spreads and higher price impact. Ondo Stocks are currently only tradeable against **USDC**: switch the Buy/Sell side to USDC to trade them.
The market-status chip on [stock pages](/user-docs/trade/spot/stock-page) (pre-market, regular hours, after hours) shows the sessions of the **traditional market**, not the trading hours of the tokenized versions: it tells you when the underlying market is open, which is when liquidity is usually deepest.
## KYC and eligibility
Some issuers require identity verification (KYC) or restrict eligibility by jurisdiction, in particular for direct redemption. Trading on Jupiter itself does not require KYC, but check the issuer's terms before buying.
## Risks
* Tokenized stocks are **not** the same as traditional stocks. They are onchain tokens issued by third parties.
* Check the regulations in your jurisdiction around investing in stocks.
* Tokenized stocks often trade at a **premium** compared to their traditional counterparts.
* Dividend treatment depends on the issuer: a dividend paid on the listed share does not guarantee a payment to token holders. Check the issuer's policy (for example [xStocks](https://docs.xstocks.fi/docs/dividends-and-stock-splits) or [Ondo](https://docs.ondo.finance/ondo-stocks/corporate-actions)).
* Backing, redemption rights, and structure vary by issuer — review the issuer's terms.
* Do your own research before investing.
***
Browse and filter all available tokenized stocks.
Underlying stock data and the issuers you can trade it from.
Understand the risks before trading.
# Ultra Mode
Source: https://docs.jup.ag/user-docs/trade/spot/ultra-mode
Jupiter's default trading mode with optimized routing, MEV protection, and gasless support.
## Overview
Jupiter Ultra is the default trading mode on [jup.ag](https://jup.ag/), shown as **Ultra V3** in the Swap Settings dialog. It is designed to optimize every swap for transaction success rate and execution price, while handling trade settings automatically.
Ultra Mode combines multiple systems to achieve this:
* **Juno Liquidity Engine** — Aggregates across all leading AMMs (Automated Market Makers) on Solana, as well as third-party liquidity sources like DFlow, Hashflow, and OKX, in addition to Jupiter's own routers: Metis and JupiterZ. Juno includes self-learning capabilities that detect and sideline low-quality liquidity sources over time.
* **Smart Transaction Landing (Beam)** — Fine-tunes every transaction in real time for faster and more reliable confirmations, while offering private, MEV-resistant (Maximal Extractable Value) execution.
* **Real-Time Slippage Estimation (RTSE)** — Automatically calculates optimal slippage tolerance by analyzing current market conditions, monitoring price impact and volatility, and adjusting settings to balance trade success and price protection. See [How RTSE works](#how-rtse-works) below.
* **Gasless support** — Automatically offers gasless trades for qualifying transactions. See [Gasless Trading](#gasless-trading) below.
## Key Features
Aggregates across leading AMMs and third-party liquidity sources (Metis, JupiterZ, DFlow, Hashflow, OKX, and others) to find the optimal route and execution price.
Forecasts potential slippage and prioritizes the most reliable routes for the best real-world results.
Ultra's in-house transaction landing engine provides faster confirmations and built-in MEV protection.
Allows Prop AMMs to quote tighter spreads (up to 50% better) for non-toxic flow, improving pricing for Ultra users.
Automatically adjusts slippage settings based on current volatility and liquidity conditions.
0–0.5% depending on pair volatility.
## Pricing
Jupiter Ultra finds the best price by checking all available liquidity pools across leading AMMs and aggregators on Solana. Prices update every second to keep quotes fresh and accurate.
## How RTSE Works
RTSE (Real-Time Slippage Estimator) sets your slippage tolerance automatically for each swap. The goal is to find the lowest slippage that still allows your trade to land successfully.
The calculated slippage depends on several factors:
* **Token category** — Stable pairs and major tokens use lower slippage. Newly listed or volatile tokens use higher slippage.
* **Recent volatility** — If a token's price has moved significantly in the last few minutes, RTSE applies a larger buffer.
* **Liquidity depth** — Trades that touch shallow liquidity pools require more slippage to execute reliably.
* **Network conditions** — During congestion, RTSE accounts for the extra time between quote and execution.
This means slippage values can vary between swaps on the same pair. A value like 0.73% is normal for most non-stable swaps and reflects current market conditions, not a problem with the trade.
RTSE is designed to maximize success while protecting you from bad executions. If you want to set slippage manually, use [Manual Mode](/user-docs/trade/spot/manual-mode).
## Fees
Ultra Mode fees depend on the token pair and market conditions:
| Pair Type | Fee |
| - | - |
| SOL / Stable → JUP / JLP / jupSOL | 0% |
| LST ↔ LST or Stable ↔ Stable | 0% |
| Jupiter Lend deposits and redemptions (e.g. USDC ↔ jlUSDC) | 0% |
| SOL ↔ Stable | 0.02% |
| LST ↔ Stable | 0.05% |
| All other swaps | 0.1% |
| Buying / Selling new tokens (within 24h of token age) | 0.5% |
**Fees are different on Jupiter Mobile.** Swaps placed natively in the Jupiter Mobile app follow a separate Mobile fee schedule, not the Ultra fees above. See [Jupiter Mobile fees](/user-docs/global/mobile/fees).
LST stands for Liquid Staking Token (e.g. jupSOL, jitoSOL). These are tokens that represent staked SOL while remaining tradable.
Gasless trades via Ultra Gasless Support carry no extra fee: the SOL Jupiter pays for gas is recovered by increasing the swap fee by the equivalent value. See [Gasless Trading](#gasless-trading) below.
## Gasless Trading
Jupiter Ultra offers two gasless mechanisms that allow users to swap without holding SOL for transaction fees.
Gasless is invoked as a last resort when you cannot fulfill gas requirements on your own. It activates automatically when all of the following conditions are met:
* You have less than 0.01 SOL in your wallet.
* Your total trade size meets the minimum threshold (approximately \$10, may vary).
* The token on the sell side of the trade is verified by Jupiter.
When activated, Jupiter pays the gas on your behalf (signature fees, priority fees, rent). The USD value of the SOL spent is calculated and deducted from your swap amount as an equivalent in the fee token. There is no separate gasless fee: the increase equals the gas paid. Since it is based on a fixed SOL cost and not on trade size, larger trades see a lower percentage impact. Gasless is only available when this amount stays within 10% of the trade, which is why a minimum trade size applies.
Gasless is designed primarily for onboarding (e.g. creating a new wallet and swapping USDC without needing to acquire SOL first). Standard swaps where you pay your own gas will generally result in better execution.
JupiterZ is Jupiter's RFQ (Request For Quote) engine. When a swap is routed through JupiterZ, the market maker pays the network fee and priority fee. This is gasless by default for all JupiterZ-routed swaps, with no minimum trade size and no additional cost to the user.
However, JupiterZ does not cover Associated Token Account (ATA) rent. If you don't have the required ATA and don't have enough SOL to cover the rent, JupiterZ will not be routed.
### Supported tokens
All major verified tokens with high liquidity (such as USDC, Fartcoin, Bonk, and other popular tokens) are supported for gasless trades. Not all tokens qualify, but support is actively expanding.
### V1 transactions
The swap form has a **Use V1 transactions** switch, on by default. V1 is Solana's newer transaction format, with more room for swap instructions, so it can change the routes available and the estimated output. Wallet support varies: when the connected wallet cannot sign V1 transactions the switch is disabled and the swap uses the earlier V0 format. If a wallet has trouble signing, turn the switch off to use V0. Your choice is remembered in the browser.
### Wrapped SOL (wSOL)
Wrapped SOL (wSOL) is the SPL-token form of SOL, at mint `So11111111111111111111111111111111111111112`. Native SOL and wSOL are treated as separate assets in the Solana ecosystem: wSOL can be traded like any other token, but it cannot be used to pay transaction fees.
You normally never need to handle wSOL yourself. Jupiter wraps and unwraps automatically during a swap, and swaps to SOL deliver native SOL. wSOL is only needed for some external protocols that require the token form.
**To receive wSOL instead of native SOL:** open the swap settings (gear icon), select **Manual**, and enable **Use wSOL** under **Routing**. Swaps to SOL then deliver wSOL to your wallet and are not unwrapped. Manual Mode's caveats apply (no MEV protection, no refunds or support): see [Manual Mode](/user-docs/trade/spot/manual-mode).
**To turn wSOL back into native SOL:** as soon as Jupiter detects a wSOL balance in your connected wallet, a line appears under the swap form reading *"You have \[amount] wrapped SOL that you can unwrap"*, with **unwrap** as a link. Click it and approve the transaction: the whole wSOL balance is converted back to native SOL. The line shows on the swap form and on a token page's trade panel, whether or not **Use wSOL** is enabled, and disappears once the balance reaches zero. The same control appears in [Jupiter Lend](/user-docs/earn/lend) when you reduce leverage on a position whose borrowed token is SOL.
Unwrapping is a one-click action, but wrapping is not: jup.ag has no equivalent Wrap control. To obtain wSOL, use the **Use wSOL** setting above.
wSOL has no separate entry in the token selector: the canonical mint shows as **SOL**. Any other token named "Wrapped SOL" or "wSOL" in search results is an unrelated token, usually a scam. Do not buy it.
Ultra Mode handles all trade settings (slippage, fees, routing) automatically. If you want full control over these settings, use [Manual Mode](/user-docs/trade/spot/manual-mode).
# Watchlist
Source: https://docs.jup.ag/user-docs/trade/spot/watchlist
Monitor your favorite tokens with market data and curated news on Jupiter Spot.
The Watchlist lets you save tokens you want to monitor and view their key metrics at a glance. It is accessible from the **Watchlist** tab in the Spot interface.
You can keep multiple watchlists. A **Default** list is created for you; click **Add list** to create additional named lists and switch between them.
Watchlists are stored locally in your browser. Clearing your browser cache, using a different browser, or switching device will reset your watchlist. There is currently no server-side sync. See the [FAQ](/user-docs/trade/spot/faq#why-is-my-watchlist-getting-reset) for details.
## Token list
Your watchlisted tokens are displayed in a table with the following columns:
| Field | Description |
| - | - |
| **Token** | Token name, age, verification status, and quick-access icons (explorer, search, social links) |
| **Price / %Δ** | Current price and percentage change |
| MC / FDV | Market cap and fully diluted valuation |
| **24h Vol / Net** | 24-hour trading volume and net volume (buy volume minus sell volume) |
| **Liquidity** | Available liquidity |
| **Holders / %Δ** | Number of holders and percentage change |
| **Buy** | Quick Buy button to purchase the token directly from the watchlist |
You can filter the time period for percentage changes: **5m**, **1h**, **6h**, or **24h**.
### Managing your watchlist
Click **+ Add** in the top-right of the Watchlist, or click the ☆ icon on any token throughout Spot.
Click **Edit** to reorder or remove individual tokens from your list.
Click **Clear** to remove all tokens from your watchlist at once.
Quick Buy is available directly from the watchlist. Set your Quick Buy amount in the top-right, then click the ⚡ icon next to any token.
### Settings
You can customize how the watchlist displays tokens:
* **Metric to display** — Price or Market Cap
* **Sorting order** — Date added or Custom order
* **Preferences** — show token icon, show price change %
## Verified Tweets
The right panel of the Watchlist page displays **Verified Tweets** — a curated feed of posts from verified accounts on X (formerly Twitter) related to your watchlisted tokens and the broader Solana ecosystem.
The panel includes:
* **News Summary** — an AI-generated summary of recent news relevant to your watchlisted tokens, with the date of the last update
* **Tweet feed** — individual posts from verified accounts, showing the author, timestamp, content, and engagement metrics (replies, likes)
Verified Tweets are sourced from accounts verified by Jupiter. The News Summary is AI-generated and may contain inaccuracies. Neither constitutes financial advice.
***
Full data and analysis for any token.
Your full portfolio and PnL dashboard.