Jupiter Perpetuals Price Impact Fee Mechanism
Summary
This piece corresponds to a new perpetual trading fee mechanism in Jupiter. Gauntlet recommends a mechanism that charges perpetual trades dynamically based on the notional size.
Goal
Define a mechanism that:
- Prices trading fees based on the simulated order book impact given some notional size. Smaller trades incur less impact than larger trades.
- Reflects the cost of trading based on the asset’s liquidity and volatility profile.
- Keeps Jupiter competitive with respect to leading perpetual venues.
- Adequately compensates JLP holders for transferring the risk and taking on exposure.
Problem
Jupiter implements a fixed zero impact fee for perpetual trades currently at .10%. This has issues as larger sized notional trades do not incur more relative market impact. Additionally, asset liquidity profiles in the JLP vary across SOL, ETH, & BTC. Larger sized trades can incur less slippage on JLP than top global venues, leading to increased risk of market manipulation.
Solution
Gauntlet recommends implementing a dynamic price impact mechanism distinctly across each market. Each market will still have a fixed base fee parameter, and a price impact coefficient parameter that maps a notional trade size to a trading cost. It is worth noting that traders still have the ability to separate trades into smaller notional sizes to incur less overall cost, but this comes with temporal price risk.
Parameters
Base Fee Bps: Parameter that corresponds to a fixed percentage of notional cost, regardless of notional size.
Impact Fee Bps: Parameter that corresponds to a variable percentage of notional cost.
Implementation
trading_fee_coefficient = base_fee + trade_notional_size / impact_fee_scalar
trading_fee_usd = trading_fee_coefficient *trade_notional_size
Parameter Methodology
For the base fee, Gauntlet recommends aligning this with leading centralized values (indicative rate of .05% across all markets). For the impact fee component, Gauntlet has developed liquidity models utilizing centralized order book data. Using historical trade size distributions on Jupiter, we define an anchor notional size to generate a curve that scales the impact fee with notional size.
Base fee is expected to not change often, and will be assessed and amended as necessary. Gauntlet expects to assess the impact fee parameter on a weekly basis or if our systems trigger an alert indicating a large shift in the liquidity profile of an asset.
Liquidity distributions are generally nonlinear. Depending on the feasibility of implementing nonlinear curves on-chain, Gauntlet may recommend an improved mechanism that utilizes a convex curve rather than a linear one. This improves the accuracy of aligning varying notional sizes to their corresponding market impact.
Indicative Parameters
Asset | Base Fee | Impact Fee Scalar |
---|---|---|
SOL | 0.05% | 1,000,000,000 |
ETH | 0.05% | 5,000,000,000 |
BTC | 0.05% | 8,000,000,000 |
A $1.5 million SOL trade with pay:
trading_fee_coefficient = .05% + 1,500,000/1,000,000,000 = .20%
trading_fee_usd= .20% * $1,500,000 = $3,000
Future Mechanism Work
Additional mechanisms can be added such as charging an additional fee or rebate based on the long/short imbalance in JLP. Adding this functionality in addition to a long/short adaptive funding rate mechanism (where funding settlements are exchanged between long and shorts) will take more development time and should be implemented in a future version.