• © Goverland Inc. 2026
  • v1.0.3
  • Privacy Policy
  • Terms of Use
GearboxGearboxby0x031Dc29B7Ee499B402737F9d958F8A3057D5a2AAapeir99n.eth

[GIP-76] Modify Pools Interest rate curve to two-point model

Voting ended over 2 years agoSucceeded

[GIP-76] Modify Pools Interest rate curve to two-point model

Motivation

This proposal aims to change the interest rate curve (utilization curve) for lenders & borrowers. The same exact model is proposed to be used in v3 in the future (those can be considered this proposal as part of the transition to v3, the main proposals for which will be in subsequent GIPs).

The new mode should majorly improve user experience when it comes to sudden increases of rates. For example, previously, when a new Credit Account was opened or closed to utilization 1-tick, the rates would skyrocket or drop instantly. That is because the state of the curve was either cheap to borrow or insanely expensive to borrow. That made decision-making for both users confusing. With the new model, it introduces three states essentially: cheap to borrow, high but acceptable rate for borrowing, and insanely expensive to borrow.

Suggestion

As you know, interest rates in Gearbox Protocol are defined using a two-point piecewise linear function https://docs.gearbox.finance/lending-market/pools-and-apy#how-to-calculate-apy.

This function is actively used in DeFi (see Aave, Compound and other lending markets). However, like any solution, it has drawbacks. In Gearbox, the interest rates were calculated so that the utilization was close to the optimal utilization. This was successful for long periods of time (see https://dune.com/apeir99n/gearbox-protocol-dashboard), however, it also gave an undesirable sharp increase in APY when the whale withdrew a significant amount (~1M+). For such cases, it is desired to have a more gradual increase in the interest rate, since a sharp increase in the rate leads to all users of Credit Accounts receiving losses in their leverage farming strategies.

To overcome this drawback, it is proposed to consider a 2-point interest rate curve:

  1. If pool utilization is less than U_1, r(u) = r_0+ u/U_1 * (r_1-r_0), where r_0,r_1,U_1 are some constants
  2. If pool utilization is in the interval [U_1,U_2], then r(u)=r_1+(u-U_1)*(r_2-r_1)/(U_2-U_1), where r_2,U_2 are some constants
  3. If utilization is greater than U_2, then r(u)=r_2+(u-U_2)*(r_3-r_2)/(1-U_2), where r_3 is also a constant.

Such a curve model will make it possible to select parameters such that most of the time the pool is in the interval around [U_1-delta,U_2], thereby avoiding sharp jumps in the interest rate (in the interval [U_1,U_2] the interest rate grows faster than in the interval [0, U_1], but still not as aggressive as in the interval [U_2,1]).

Parameters

As part of the transition to the 2-point model, it is proposed to use the following parameters:

Asset pool r_0 r_1 r_2 r_3 U_1 U_2
USDC 0 1 1.25 100 70 90
DAI 0 1 1.25 100 70 90
FRAX 0 1 1.25 100 70 90
ETH 0 2 2.5 60 70 90
wstETH 0 2 2.5 60 70 90
WBTC 0 2 2.5 60 70 90

This will allow the target utilization value to be targeted at ~70%, while at the same time short-term increases in utilization up to 90% will not lead to a dramatic increase in interest rates.

Specification

  1. Deploy new two-point LinearInterestRateModel for USDC, DAI, FRAX v1 pools
  2. Deploy new two-point LinearInterestRateModel for ETH, WBTC, wstETH v1 pools
  3. Set new model as model for USDC pool with poolService.updateInterestRateModel() call
  4. Set new model as model for FRAX pool with poolService.updateInterestRateModel() call
  5. Set new model as model for DAI pool with poolService.updateInterestRateModel() call
  6. Set new model as model for WETH pool with poolService.updateInterestRateModel() call
  7. Set new model as model for wstETH pool with poolService.updateInterestRateModel() call
  8. Set new model as model for WBTC pool with poolService.updateInterestRateModel() call
  9. Update lower bound of yvWETH price feed
  10. Update lower bound of crvCVXETH price feed
  11. Update lower bound of crvUSDETHCRV price feed

ETA 18 oct 2023 15:00 CET

Voting

Simple Approve / Reject

Off-Chain Vote

Approve
217.45M GEAR99.3%
Reject
1.64M GEAR0.7%
Quorum:110%
Download mobile app to vote

Discussion

Gearbox[GIP-76] Modify Pools Interest rate curve to two-point model

Timeline

Oct 12, 2023Proposal created
Oct 12, 2023Proposal vote started
Oct 15, 2023Proposal vote ended
Nov 14, 2025Proposal updated