Gauntlet's Jupiter Perpetuals Borrowing Rate Mechanism - Jump Rate Model

Jupiter Perpetuals Borrowing Rate Mechanism - Jump Rate Model

Summary

This piece provides a recommendation corresponding to the Borrowing Rate mechanism in Jupiter perpetuals. Gauntlet recommends adapting to a Jump Rate model to reduce liquidity risk and utilization volatility in the JLP.

Goal

Define a mechanism that:

  1. Targets a level of utilization for an asset that ensures enough idle liquidity exists for expected trading and for JLP holders to redeem if desired.
  2. Targets a borrowing rate that is attractive for traders and properly compensates JLP for locking up capital.
  3. Incentivizes additional liquidity when asset utilization is above its target level.
  4. Compensates JLP appropriately when asset utilization is above its target level.

Problem

The borrowing rate mechanism in Jupiter perpetuals follows a single linear curve. Regardless of the level of utilization, the gradient of borrowing rates is the same. This makes it difficult to target utilization at a certain rate, and organically incentivize additional liquidity when utilization levels are elevated (liquidity risk).

In a single linear curve, the market generally will set and imply the target rate. If the max rate is set too low, utilization levels will remain elevated. This can be remediated by increasing the max rate, it comes with the side effect of more volatile utilization, which in turn creates more uncertainty in idle liquidity for forward looking trading. It is worth noting that this mechanism increases the volatility of delta for the JLP as well.

Jupiter Borrowing Rate Mechanism

Solution

Gauntlet proposes a Jump Rate model, a mechanism commonly used in DeFi spot lending & borrowing facilities. In this model, two linear curves are defined, with a kink located at the target utilization level. The gradient above target utilization is higher than the gradient below target utilization.

When utilization levels are elevated, this has the organic effect of incentivizing additional liquidity, or a portion of traders unwind their position as the new borrowing rate is too expensive relative to their expected return. In either case, liquidity risk is mitigated in a more efficient manner than a single curve.

Recommended Jupiter Borrowing Rate Mechanism

Parameters

Min Rate: Lowest acceptable borrowing rate when utilization is 0%

Max Rate: Highest borrowing rate when utilization is 100%. This rate should incentivize additional liquidity, and properly compensate JLP holders for the decrease in expected volumes.

Target Rate: Borrowing rate when the asset utilization is at equilibrium. This rate should remain attractive to traders, and also properly compensate JLP holders for locking up capital and associated delta risk.

Target Utilization: The equilibrium utilization rate. This level should be set such that enough idle liquidity exists for sufficient volume turnover.

Implementation

lower_slope =(target_rate - min_rate) / target_utilization

upper_slope = (max_rate - target_rate) / (1 - target_utilization)

if utilization target_utilization :

borrowing_rate = min_rate + lower_slope *utilization

else:

borrowing_rate = target_rate +upper_slope * (utilization - target_utilization)

Parameter Methodology

The main parameters to optimize and tune in this mechanism are Target Rate, Max Rate, and Target Utilization. Gauntlet will codify a methodology model to systematically and dynamically adjust parameters as conditions evolve.

Target and max rate are a function of asset volatility, an assumed risk premium, and historical realized utilization levels. The risk premium assumption between max and target rate will drive the slopes of the curve. A dual slope model has the nice side effect of parameterizing two different risk premiums, which significantly helps in reducing utilization volatility around its target.

In this approach, traders are paying a carry cost that’s a function of asset volatility and an assumed sharpe ratio to JLP holders. As asset volatility evolves, these rates will dynamically adjust. To address idiosyncrasies directly in the protocol, the borrowing rate parameters will adjust based on historical utilization to increase or decrease the target and max rate.

Target utilization is a parameter that should be dynamically managed, but ideally not changed often. Target utilization should reflect the optimal point that maximizes volume turnover & trading fees from idle liquidity and borrowing/carry fees from existing positions, in addition to risk sentiment of JLP holders.

Implementation

Below is a high level implementation of the dual slope borrowing rate methodology. For stable assets, we compute a weighted volatility measure using the risky assets weights.

1. For each market, define a target_utilization (currently 80%)
2. Define a target_util_risk_premium & max_util_risk_premium
3. Compute an asset_volatility measure
4. Compute a utilization_factor based on historical realized_utilization and target_utilization
5. Assign the rates as below:

target_rate = asset_volatility * target_util_risk_premium * utilization_factor

max_rate = asset_volatility * max_util_risk_premium * utilization_factor

Indicative Parameters

Asset Min Rate (APR) Target Rate (APR) Max Rate (APR) Target Utilization Lower Slope (APR) Upper Slope (APR)
SOL 0% 25% 250% 80% 31% 1125%
ETH 0% 20% 165% 80% 25% 725%
BTC 0% 23% 170% 80% 29% 735%
USDC 0% 15% 175% 80% 19% 800%
USDT 0% 15% 175% 80% 19% 800%

Example Calculation

Below is an example calculation for illustration purposes. Risk premiums may not be the actual parameter Gauntlet uses in production recommendations.

1. target_util = 80%
2. target_util_risk_premium = .2 & max_util_risk_premium = 2.5
  a. Ie for a 10% vol asset, this provides 2% and 25% return respectively
3. asset_volatility = 100%
4. utilization_factor = 1.1
5. target_rate= 100% * .2 *1.1 = 22%

max_rate= 100% * 2.5 *1.1 = 275%
7 Likes

A video to explain they key notes would be fantastic!

2 Likes

Appreciating the introduction of target utilization rates for borrow rates optimization! This advancement will boost efficiency for liquidity providers and aid in balancing demand and supply more effectively.

Here at Adrastea, we employ a similar methodology for our JLP and USDC vaults. Our USDC vault targets a 70% utilization rate, with rates increasing thereafter. We believe this approach is an effective way to incentivize market participants to maintain utilization at the target APY, akin to what Gauntlet suggests for borrow rates.

Thanks Gaunlet!

2 Likes

Love this idea. It introduces a yield curve into perps. Great proposal.

2 Likes

Thank you for the thorough summary and recommendation regarding the Borrowing Rate mechanism in Jupiter perpetuals. I appreciate the detailed analysis and the considerations brought forward by Gauntlet.

Summary and Acknowledgment

The proposal to transition to a Jump Rate model to mitigate liquidity risk and reduce utilization volatility in the Jupiter Liquidity Pool (JLP) is well-founded. The outlined goals—to ensure sufficient idle liquidity, set attractive borrowing rates, and incentivize additional liquidity when necessary—address the core issues effectively.

Goals

I fully support the objectives you’ve highlighted:

  1. Maintaining Idle Liquidity: Ensuring that enough liquidity is available for expected trading and potential redemptions by JLP holders is crucial.
  2. Attractive Borrowing Rates: Setting a borrowing rate that is appealing for traders while providing adequate compensation to JLP participants is essential for market stability.
  3. Incentivizing Additional Liquidity: Encouraging more liquidity when asset utilization exceeds target levels helps balance supply and demand.
  4. Appropriate Compensation for JLP: Ensuring JLP is adequately compensated during periods of high utilization is key for long-term sustainability.

Problem Analysis

The current linear borrowing rate mechanism presents challenges. The single gradient fails to adjust dynamically with utilization levels, leading to difficulties in targeting specific utilization rates and incentivizing liquidity efficiently. This static approach can result in prolonged elevated utilization levels if the maximum rate is set too low, or increased volatility if adjusted too high, both of which are undesirable.

Proposed Solution: Jump Rate Model

Adopting a Jump Rate model appears to be a prudent solution. This model can offer:

  • Dynamic Adjustments: Rates that change more significantly at higher utilization levels, thereby encouraging liquidity provision when it’s most needed.
  • Stability in Idle Liquidity: By reducing the volatility in utilization rates, the Jump Rate model can provide a more predictable environment for forward-looking trading.
  • Balanced Incentives: Better alignment of incentives for both traders and liquidity providers, ensuring that the system remains attractive and functional under varying market conditions.

Conclusion

Transitioning to a Jump Rate model aligns well with the objectives of maintaining stable and sufficient liquidity, providing attractive rates, and ensuring the efficient functioning of the Jupiter Liquidity Pool. I support this recommendation and look forward to seeing its positive impact on our platform.

Thank you again for the detailed proposal. I am confident that with these adjustments, we can enhance the resilience and attractiveness of Jupiter perpetuals.

Best regards, â‚żansky.

2 Likes