Links

Protocol math (Ethereum)

Interest rate models in use for EVM protocol

Utilisation

This current state of supply and demand for liquidity is measured with the utilisation rate, in other words, how much of the supplied liquidity is being borrowed (utilised) by borrowers. The higher the utilisation rate, the higher the interest rate in a lending market.
Ut = utilisation rate at time t Uoptimal = optimal utilisation rate Rv = variable borrow rate Rv0 = base variable borrow rate (interest when utilisation = 0%) Rslope1 = constant which determines the progression of the interest rate until Uoptimal Rslope2 = constant which determines the progression of the interest rate after Uoptimal
The protocol has built in incentives in the interest rate model. To be capitally efficient, it sets an optimal utilisation rate. Below this rate, the protocol will incentivise utilisation, above this rate and it will disincentivise utilisation.
Two different slopes are used to measure interest rates, one for when utilisation is below optimal, and one for when it is above the optimal rate.
When not enough borrowers are borrowing available liquidity, the interest rate will be calculated as such:
Rv=Rv0+(Ut÷Uoptimal)×Rslope1 R_v =R_{v0} + (U_t \div U_{optimal}) \times R_{slope1}
When too many borrowers are borrowing available liquidity, the interest rate will be calculated as such:
Rv=Rv0+Rslope1+(Ut−Uoptimal)÷(1−Uoptimal)×Rslope2R_v = R_{v0} + R_{slope1}+(U_t - U_{optimal})\div(1-U_{optimal})\times R_{slope2}
​

Protocol parameters

Honey Finance lending markets use the following parameters as default:
Optimal utilisation: 80% Borrow APR at Uoptimal: 40% Base borrow APR: 10% Rslope1 constant: 0.3 Rslope2 constant: 1
You can try these parameters out for yourself and test models here.