Documentation
interest-rate-model

Interest Rate Model

Standard two-slope kink (Aave / Compound family). Implemented in AgamaInterestRateModel.sol (or inlined in ReserveLibrary).

Formulas

Lender yield:

Lender Yield = Borrow Rate × Utilization × (1 − Reserve Factor)

The Reserve Factor (10% in V1) is the cut the protocol takes from the interest paid by borrowers. Everything else flows to lenders proportional to utilization.

Borrow rate (two-slope kink):

u = totalBorrowed / totalLiquidity
 
if u ≤ OPTIMAL_UTIL:
    borrowRate = BASE_RATE + (u / OPTIMAL_UTIL) × SLOPE_1
else:
    excess     = (u − OPTIMAL_UTIL) / (1 − OPTIMAL_UTIL)
    borrowRate = BASE_RATE + SLOPE_1 + excess × SLOPE_2

The kink curve

  APY

55 ┤                                          ╱── 55%   u=95%
   │                                        ╱
   │                                      ╱
40 ┤                                    ●── 40%   u=90%
   │                                  ╱           ← SLOPE_2 (steep, 60%)
30 ┤                                ╱
   │                              ╱
20 ┤                            ╱
   │                          ╱
10 ┤                       ●── 10%          ← kink @ OPTIMAL_UTIL (80%)
 9 ┤                    ●── 9%    u=70%
 7 ┤                 ●── 7%       u=50%
 5 ┤             ●── 5%           u=30%     ← SLOPE_1 (gentle, 8%)
 2 ┤   ●─── 2%                                (BASE_RATE)
   ●──────────────────────────────────────▶  utilization
     0%    30%  50%   70%  80%   90%  95%   100%

Below 80% utilization, the gentle slope keeps borrowing affordable. Above 80%, the steep slope prices repayment pressure: utilization is discouraged from climbing further because it becomes expensive.

V1 parameters

ParameterValueNotes
BASE_RATE200 bps (2%)Minimum borrow APY
SLOPE_1800 bps (8%)0 → OPTIMAL_UTIL
SLOPE_26000 bps (60%)Above OPTIMAL_UTIL: steep to force repays
OPTIMAL_UTIL80%Kink point
reserveFactor1000 bps (10%)Protocol cut on borrow interest (flows to Collectors)

Reference values

UtilizationBorrow APYLender APY
30%5.00%1.35%
50%7.00%3.15%
70%9.00%5.67%
80%10.00%7.20%
90%40.00%32.40%
95%55.00%47.03%

Lender APY computed as Borrow APY × Utilization × (1 − 10%).

Looping viability

For Alice with AmFi senior at 16% yield:

Net APY(n loops) ≈ (16% × L(n)) − (borrowAPY × D(n))
 
where L(n) = 1 + 0.5 + 0.25 + … = 2 − 0.5^n   (with 50% LTV recommended)
      D(n) = 0.5 + 0.25 + 0.125 + … = 1 − 0.5^n
LoopsLeverage LDebt DNet APY (at 10% borrow)
11.500.5019.0%
21.750.7520.5%
31.8750.87521.2%
2.01.022.0%

At 70% LTV (max), terminal leverage = 3.33×, net APY ≈ 26.7% at 10% borrow APY.