Revert monetary policy of llamalend markets to original Semilog policy and hike max rates to 70%

Thanks to @xm3van for writing this proposal. LlamaRisk has a methodology to optimize LlamaLend Semilog markets, which will be published soon and applied toward further LlamaLend market optimizations.

Useful Links

Abstract

The recent market downturn resulted in several LlamaLend markets following the Secondary Monetary Policy (i.e. tBTC, wBTC, wETH, wstETH, wETH2) to produce unacceptably low rates at maximum utilization. The consequence of this was that lenders have been trapped, unable to withdraw their supplied crvUSD as borrowers are insufficiently incentivized to repay their loans (and, likewise, lenders are not sufficiently incentivized to step in). The recommended changes are to revert from the Secondary Monetary Policy to the previous Semilog Monetary Policy.

Motivation

In LlamaLend Markets, the Secondary Monetary Policy is designed to adjust interest rates for borrowers based on the utilization of the lending market and the rates of the crvUSD minting market. The reference to crvUSD mint market rates can result in inorganic dynamics internal to the LlamaLend market.

The chart above depicts a 14-day wETH-Long LlamaLend market (CurveMon WETH-long2) referenced against the crvUSD Mint Market Rate for WETH (address: 0x4e59541306910aD6dC1daC0AC9dFB29bD9F15c67). The current parameters of the market are:

  • Target utilization = 85%
  • Rate ratio at 0% utilization = 0.35x
  • Rate ratio at 100% utilization = 3x

We can see that the rate of the Mint Market (orange) dropped in the preceding days from around 12.5% to below 5%. As the maximum utilization rate ratio is set to 3xβ€”meaning that the LlamaLend Borrow Rate is three times that of the Mint Market if the market hits 100% utilizationβ€”the wETH-Long LlamaLend market rates were too low (around 12%) to encourage borrowers to repay their borrowed positions during the latest market downturn. This led to a sustained period where lenders were effectively trapped, as no idle liquidity was available to allow withdrawals of their supplied crvUSD.

The markets affected by this were:

Specification

While the beta parameter in the Secondary Monetary Policy can be increased to lead to higher rates at maximum utilization, the Semilog Monetary Policy has been a more established and predictable Interest Rate Model.

Given the problem of insufficiently high rates to encourage the repayment of borrower debt and locked crvUSD for suppliers, we recommend reverting to the previous Interest Rate Contract with setting the maximum rate to 70% initiated at the launch of these markets:

Market Controller Address Monetary Policy Parameter Changes
wETH-long 0x23f5a668a9590130940ef55964ead9787976f2cc Semilog MP Min-Max Rate: 3% - 70%
wstETH-long 0x5756a035f276a8095a922931f224f4ed06149608 Semilog MP Min-Max Rate: 3% - 70%
wBTC-long 0xcad85b7fe52b1939dceebee9bcf0b2a5aa0ce617 Semilog MP Min-Max Rate: 2% - 70%
tBTC-long 0x413fd2511bad510947a91f5c6c79ebd8138c29fc Semilog MP Min-Max Rate: 0.10% - 70%
wETH-long2 0xaade9230aa9161880e13a38c83400d3d1995267b Semilog MP Min-Max Rate: 0.10% - 70%

These changes will lead the LlamaLend markets to follow the Semilog Monetary Policy, resulting in higher rates in the lending market. Upon execution of this vote, fully utilized markets will immediately have a new borrow rate of 70%. (Note that the wstETH market v1 is essentially unutilized and has no debt, hence its rate reduces following this vote).

Vote call data here:

 Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0x23F5a668A9590130940eF55964ead9787976f2CC
 β”œβ”€ Function: set_monetary_policy
 └─ Inputs: [('address', 'monetary_policy', '0x20a32CC24247fBAb1eC3c92a343D5787406BCbf9')]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0x20a32CC24247fBAb1eC3c92a343D5787406BCbf9
 β”œβ”€ Function: set_rates
 └─ Inputs: [('uint256', 'min_rate', 951293759), ('uint256', 'max_rate', 22196854388)]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0x5756A035F276a8095A922931F224F4ed06149608
 β”œβ”€ Function: set_monetary_policy
 └─ Inputs: [('address', 'monetary_policy', '0xc246Ee163DFC8Eb599542a915074549A66b216F6')]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0xc246Ee163DFC8Eb599542a915074549A66b216F6
 β”œβ”€ Function: set_rates
 └─ Inputs: [('uint256', 'min_rate', 951293759), ('uint256', 'max_rate', 22196854388)]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0xcaD85b7fe52B1939DCEebEe9bCf0b2a5Aa0cE617
 β”œβ”€ Function: set_monetary_policy
 └─ Inputs: [('address', 'monetary_policy', '0xE53C7e8857fAd35dF5a02a2899CaF5871A50bA95')]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0xE53C7e8857fAd35dF5a02a2899CaF5871A50bA95
 β”œβ”€ Function: set_rates
 └─ Inputs: [('uint256', 'min_rate', 634195839), ('uint256', 'max_rate', 22196854388)]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0x413FD2511BAD510947a91f5c6c79EBD8138C29Fc
 β”œβ”€ Function: set_monetary_policy
 └─ Inputs: [('address', 'monetary_policy', '0xde31c340545c8031843Bff5Eb42640009961aeEF')]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0xde31c340545c8031843Bff5Eb42640009961aeEF
 β”œβ”€ Function: set_rates
 └─ Inputs: [('uint256', 'min_rate', 31709791), ('uint256', 'max_rate', 22196854388)]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0xaade9230AA9161880E13a38C83400d3D1995267b
 β”œβ”€ Function: set_monetary_policy
 └─ Inputs: [('address', 'monetary_policy', '0xa6c73DC07E17Feda6925C2a4F44C166Fc18Fcf1F')]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0xa6c73DC07E17Feda6925C2a4F44C166Fc18Fcf1F
 β”œβ”€ Function: set_rates
 └─ Inputs: [('uint256', 'min_rate', 31709791), ('uint256', 'max_rate', 22196854388)]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0x1E0165DbD2019441aB7927C018701f3138114D71
 β”œβ”€ Function: set_monetary_policy
 └─ Inputs: [('address', 'monetary_policy', '0x112E37742015ECe4cEB4b576a9434940838eAf02')]

Call via agent (0x40907540d8a6C65c637785e8f8B742ae6b0b9968):
 β”œβ”€ To: 0x112E37742015ECe4cEB4b576a9434940838eAf02
 β”œβ”€ Function: set_rates
 └─ Inputs: [('uint256', 'min_rate', 31709791), ('uint256', 'max_rate', 22196854388)]

For

  • Borrowers will be incentivized to repay their positions, as the successful execution of this proposal will lead to increased rates following the new IRM parameters.
  • As borrowers repay, suppliers will benefit by being able to withdraw crvUSD from these markets.
  • Market dynamics will naturally adjust rates based on supply and demand.

Against

  • Rates in the specified markets will no longer be directly linked to crvUSD Mint Market rates.
  • Borrowers may experience an immediate rate adjustment upon the introduction of the Semilog Monetary Policy.

Vote

DAO vote 955 is in progress, viewable here.

3 Likes