Interest Rates

Overview

Many lending platforms currently use static governance-controlled interest rate models to determine the rate of borrowing, the lending rate, and reserve requirements. These rates are generally functions of supply and demand, reacting only to market conditions within the protocol, remaining generally unaware of any external variables related to the risk profile or unique characteristics of the deposited assets in the market.

Such a system works well with robust and active parameterization, accommodating for a large swath of various assets. However, for validator-backed assets, certain inefficiencies can arise that lead to unideal outcomes for borrowers and lenders.

Ion's Interest Rate Module

Staking-sensitive Interest Rates

To minimize inefficiencies of lending rates for assets earning validator-correlated staking yield, Ion's interest rate curves are bounded relative to the current staking rate of the underlying collateral assets. Effectively, this enables borrowers who are looking to leverage on the yield of their staked assets to earn a more predictable rate while lenders can be assured that they are earning the most competitive yields possible, given the demand for the collateral asset.

Collateral-specific Interest Rates

Most lending markets currently dictate the cost of borrowing an asset based on the type of asset that is borrowed (i.e. If one deposits $USDC on Aave and borrows ETH, they will pay a different interest rate than if they were borrowing $WBTC). Since all collateral assets on Ion can only borrow ETH against their deposits, interest rates are instead priced by the type of collateral that is deposited, reflecting the risk profile of the underlying validator-backed asset.

Reserve Bolstering Mechanism

Each market on Ion has a characteristic piecewise linear curve that dictates the borrow and supply rate of participants in the market. It is bounded by the staking rate of the given asset. The spread between the borrow and supply rate is what we determine as the "reserve spread." This reserve spread is used to generate a risk premium that can be used by the protocol to shore up any shortfall events that may befall the market from exogenous black swan phenomena.

Interest Rate Math


Minimum Borrow Rate

minBaseRate: one of the two points that define the slope of the minimum borrow rate curve. The y-intercept of the minimum borrow rate curve. [per second]

minKinkRate: one of the two points that define the slope of the minimum borrow rate curve. [per second]

minAboveKinkSlope: the slope for the minimum borrow rate curve past the optimal utilization rate.

Adjusted Borrow Rate

adjBaseRate: one of the two points that define the slope of the adjusted borrow rate curve. The y-intercept of the adjusted borrow rate curve. [per-second]

adjKinkRate: one of the two points that define the slope of the adjusted borrow rate curve. The adjusted borrow rate at the optimal utilization rate. Calculated as the APY minus the adjProfitMargin. [per-second].

adjAboveKinkSlope: the slope for the adjusted borrow rate curve past the optimal utilization rate.

adjProfitMargin: the amount subtracted from the APY to determine the adjKinkRate. [per-second]

Globals

reserveFactor: The amount that determines how much of the borrow rate goes to the protocol to cover shortfall events.

Optimal Utilization: the utilization rate at which the collateralโ€™s adjBorrowRate equals the adjKinkRate and where the collateralโ€™s minBorrowRate equals the minKinkRate.

distributionFactor: part of calculating the utilization rate of a collateral. Defines how much of the total lender ETH supplied should be allocated to a collateral when considering the collateralโ€™s utilization rate.

APY: yield of the underlying collateral that is fed in by the YieldOracle to allow the borrow rate to be adjusted based on the underlying staking yield. Should be per-second value despite the name.

Generalized Below Kink Borrow Rate Formula

borrowRate=slopeโˆ—Uc+baseRateborrowRate = slope * U_c + baseRate

Collateral Specific Interest Rate Scales By Collateral Specific Utilization

Uc=totalDebttotalETHSupplyU_c = \frac{totalDebt}{totalETHSupply}

Adjusted Borrow Rate

adjBorrowRate=APYโˆ’adjProfitMarginโˆ’adjBaseRateUoptโˆ—UC+adjBaseRateadjBorrowRate = \frac{APY-adjProfitMargin-adjBaseRate}{U_{opt}}*U_C + adjBaseRate

Minimum Borrow Rate

minBorrowRate=minKinkRateโˆ’minBaseRateUoptโˆ—Uc+minBaseRateminBorrowRate = \frac{minKinkRate-minBaseRate}{U_{opt}}* U_c + minBaseRate

Current Borrow Rate

realBorrowRate=max(adjBorrowRate,minBorrowRate)realBorrowRate = max(adjBorrowRate, minBorrowRate)

Last updated