FeedProjects
Developers
Settings
๐ŸŽ‰ A new chapter begins: Boardroom has joined Agora
Learn more
protocol logo
Explore / Projects
Gearbox DAO

Proposals

Members

Information

Create Proposal

Gearbox DAO

ProposalsMembersInformation
Proposal
Back to Proposals
closedEnded 2 years ago ยท Snapshot (Offchain)

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

By 0x031D...D5a2AA

[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 poolr_0r_1r_2r_3U_1U_2
USDC011.251007090
DAI011.251007090
FRAX011.251007090
ETH022.5607090
wstETH022.5607090
WBTC022.5607090

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

Continue Reading
Connect Wallet to Add Note
0
Votes 101
VoterCast PowerVote & Rationale
0xeEEC...3665a3
54.429M

Approve

0xC4CA...43153B
33.333M

Approve

0x81E8...Fd2c08
29.455M

Approve

0xdAb4...40a38D
20.769M

Approve

0xb9b7...6CceeA
19.883M

Approve

SHOW MORE
VOTE POWER
0
Connect Wallet
Proposal Status
  • Thu October 12 2023, 06:18 pmVoting Period Starts
  • Sun October 15 2023, 06:18 pmEnd Voting Period
Current Results

1-Approve

217.449M

99.25%

2-Reject

1.64M

0.75%
Quorum 219.089M/200M
DocumentationBrandingContact Us
Home
This Project is Currently Disabled

If you would like to enable it, please checkout below.

Boardroom Subscription

Sign up for an individual subscription (access all projects on the platform)

Subscribe
Enable Project

Enable the entire project for every user

Enable Project
Contact Us