Slippage is the difference between the quoted output amount and what you actually receive. It depends on token pair volatility, trade size relative to pool liquidity, and time between quoting and execution. Jupiter’s Real-Time Slippage Estimator (RTSE) estimates the optimal slippage tolerance for each swap, balancing trade success against price protection.Documentation Index
Fetch the complete documentation index at: https://dev.jup.ag/docs/llms.txt
Use this file to discover all available pages before exploring further.
How RTSE works
RTSE estimates slippage at order time (when you call/order or /build), not at execution time. The estimated slippage is baked into the transaction.
RTSE uses a variety of heuristics, algorithms, and monitoring to estimate the best possible slippage:
- Heuristics: token categories, historical and real-time slippage data. Uses token categories to intelligently estimate slippage for different token types, with increased sensitivity for tokens with high historical volatility patterns.
- Algorithms: Exponential Moving Average (EMA) on slippage data to smooth out noise and follow trends.
- Monitoring: real-time monitoring of failure rates to reactively increase slippage when necessary.
RTSE on Meta-Aggregator vs Router
Meta-Aggregator (/order) | Router (/build) | |
|---|---|---|
| RTSE | Automatic. Applied at order time. | Opt-in. Pass slippageBps=rtse. |
| Default | RTSE (no param needed) | slippageBps=50 (fixed 0.5%) |
| Override | Pass slippageBps for a fixed value (restricts to Metis-only routing) | Pass a number for fixed, or "rtse" for RTSE |
Meta-Aggregator (automatic)
On the Meta-Aggregator path (/order), RTSE is applied automatically when the order is created. You do not need to set any slippage parameter. The estimated slippage is embedded in the transaction returned by /order.
If you pass slippageBps to /order, it overrides RTSE with a fixed value. This also restricts routing to Metis-only (see the routing impact matrix).
Router (opt-in)
On the Router path (/build), slippage defaults to 50 bps (0.5%). To enable RTSE, pass the literal string "rtse":
otherAmountThreshold in the response.
When to use RTSE
Use RTSE (recommended for most cases):- You want Jupiter to handle slippage optimisation for you
- You are swapping tokens where the right slippage is hard to predict
- You want to minimise failed transactions without overpaying on slippage
slippageBps value when:
- You want to accept more slippage to improve success rate, e.g. trading memecoins or exiting a position as quickly as possible
- You are building a UI that lets users set their own slippage
- You need deterministic behaviour for testing or simulation
Related
- Routing impact matrix: how parameters like
slippageBpsaffect which routers are available - Order & Execute: the default swap flow where RTSE is automatic
- Build: full transaction control, RTSE is opt-in via
slippageBps=rtse
