Skip to main content
This page covers every fee type charged on Jupiter Perps, including when each fee applies, how it is calculated, and worked examples.

Fee Summary

Fee TypeWhen ChargedRate
Base feeOpen and close0.06% of trade size
Price impact fee (linear)Open and closeScales with trade size
Price impact fee (additive)Open and closeApplies when OI imbalance exceeds threshold
Borrow feeContinuously while position is openHourly, based on utilization and position size
Swap feeWhen collateral token is swapped10 BPS (non-stables), 2 BPS (stables), adjusted by weightage
JLP mint/burn feeWhen minting or redeeming JLPSame weightage-based calculation as swap fee
Transaction feeOn every transactionSOL network fee + optional priority fee / Jito tip
Liquidation penaltyOn liquidationAll remaining collateral

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×0.0610,000 × 0.06% = **6**

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): Example (SOL, at time of writing):
StepValue
Trade size$10,000
Scalar constant (raw)1,250,000,000,000,000
Scalar (÷ 10,000)125,000,000,000
Linear fee coefficient10,000 / 125,000,000,000 = 0.00000008
Linear fee10,000 × 0.00000008 = $0.0008
Reference: Chaos Labs initial proposal

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: AdditivePenalty(BPS)=factor(newImbalance/Threshold)expAdditivePenalty(USD)=TradeSize(AdditivePenalty(BPS)/10000)FinalPriceImpactFee(USD)=min(LinearFee(USD)+AdditivePenalty(USD),MaxFee(USD))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):
ParameterValue
Trade size$10,000
New OI imbalance$2,000,000
tradeImpactFeeScalar1,250,000,000 (USD terms)
deltaImbalanceThreshold$750,000
maxPriceImpactFee50 BPS (0.50%)
  1. Linear fee: 10,000×0.000000008=10,000 × 0.000000008 = 0.00008
  2. Additive penalty: The imbalance (2,000,000)exceedsthethreshold(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.5010,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 Additional references:

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

HourlyBorrowFee=(TotalTokensLocked/TotalTokensinPool)HourlyBorrowRatePositionSize(USD)Hourly Borrow Fee = (Total Tokens Locked / Total Tokens in Pool) * Hourly Borrow Rate * Position Size (USD)
VariableDefinition
Total Tokens LockedAll tokens locked across all open positions for this asset
Total Tokens in PoolTotal tokens deposited for this asset in the JLP
Hourly Borrow RatePer-asset rate, found in the trade form or via fundingRateState.hourlyFundingBps in the custody account
Position SizeUSD value of the leveraged position

Worked Example

ParameterValue
SOL price$100
Position size100 SOL ($10,000)
Total tokens locked200 SOL
Total tokens in pool1,010 SOL
Utilization200 / 1,010 = 19.8%
Hourly borrow rate0.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

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. Reference implementation: 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 to create an escrow account (PDA) when opening a position. This rent is returned when the position is closed.
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 page for how to monitor and avoid liquidation.