Skip to main content
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 for all new orders.

V1 vs V2

Limit Order V2

The sections below describe Limit Order V2, the current version. For the legacy version, see 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). 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, 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.

Order types

Limit V2 groups several order types under one form. Pick one from the Order Type dropdown at the top of the form; the Switch order types control moves between them without losing your inputs.

Limit

Buy or sell at a fixed target price.

One Cancels Other (OCO)

Two sell orders at different prices; the first to trigger cancels the other.

Limit Buy + OCO (OTOCO)

Buy in, then automatically arm a Take Profit and Stop Loss on the filled position.

Trailing Stop Loss

Sell when the price falls a set percentage below its peak.
Buy Below and Buy Above triggers are described under Trigger types. OCO and OTOCO are covered under Take Profit and Stop Loss; Trailing Stop Loss has its own section below.

Trigger types

  • Buy Below: triggers when the token price or market cap goes below your set level.
  • Buy Above: 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: 10 minutes, 1 hour, 1 day, 3 days, 7 days (the default), 30 days, or a custom date. 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 or from the Portfolio sidebar under the Limit tab. Orders can be edited or cancelled from either location.

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, 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:
1

Exit order created

The bought tokens are automatically used to create the exit order.
2

Tokens held in vault

These tokens remain in the instead of being sent to your wallet.
3

Exit order active

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. Trailing Stop Loss mechanic: the trigger follows the market price up and holds when the price falls, filling once the price drops back to the trigger level Fixed vs trailing Consider a position entered at $80 with a 10% stop, where the price climbs to $120 before reversing: 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, and the trail can track the token’s USD price or its market cap.

Fees

Limit V2 orders apply the following fees during execution: 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.

Limitations

Token-2022 standard tokens with transfer tax features are not supported on Limit Orders V2. This limitation exists because these token types allow creators to modify transfer tax rates at their discretion, which could lead to unexpected execution results and cause users to receive fewer tokens than expected.

Limit Order V1

Limit Order V1 is being sunset. New V1 orders can no longer be created. Use 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 (with Show History toggled to see Open and Past Orders) and in Jupiter Mobile.
How it worksIn 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 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.ParametersOn 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 ordersOpen and past orders can be viewed from the Limit page on 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.FeesA flat 0.1% fee applies to all Limit V1 orders. This fee is charged only when the order is successfully executed.MEV protectionLimit 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.LimitationsToken-2022 standard tokens with transfer tax features are not supported on Limit Orders V1.