Liquidium LogoLiquidium
TechnicalCore Concepts

Interest Rate Model

How borrow and supply rates are calculated using the two-slope kink model

Utilization Rate

The utilization rate measures what percentage of supplied assets are currently borrowed:

utilization = total_debt / total_supply
  • Low utilization (e.g., 20%): Plenty of liquidity available, lower rates to encourage borrowing
  • High utilization (e.g., 95%): Most funds borrowed, higher rates to encourage repayment

The Kink Model

Interest rates follow a two-slope curve with a "kink" at the optimal utilization point:

Below Optimal Utilization

When utilization is below the optimal point (e.g., 92%), rates grow gradually:

borrow_rate = base_rate + (utilization / optimal) × slope_1

Above Optimal Utilization

When utilization exceeds the optimal point, rates accelerate sharply to incentivize repayments and new deposits:

borrow_rate = base_rate + slope_1 + ((utilization - optimal) / (1 - optimal)) × slope_2

Example Configuration

A typical pool configuration might look like:

ParameterValueDescription
Base Rate2%Minimum APY even at 0% utilization
Optimal Utilization92%The "kink" point
Slope 17%Linear APR increase from 0% to optimal utilization
Slope 2300%Linear APR increase from optimal utilization to 100% utilization
Reserve Factor10%Protocol share of interest, configurable per pool (e.g., 10%)

Rate Calculations

At 50% utilization:

borrow_rate = 2% + (50/92) × 7% = 5.8% APY

At 92% utilization (kink point):

borrow_rate = 2% + 7% = 9% APY

At 98% utilization:

borrow_rate = 2% + 7% + (6/8) × 300% = 234% APY

The steep slope above optimal utilization creates strong pressure to repay loans or add supply when liquidity becomes scarce.

Supply Rate

Suppliers earn a portion of the interest paid by borrowers:

supply_rate = borrow_rate × utilization × (1 - reserve_factor)

Example at 80% utilization:

borrow_rate = 10%
utilization = 80%
reserve_factor = 10%

supply_rate = 10% × 0.8 × 0.9 = 7.2% APY

Why the Difference?

  • Utilization factor: Only borrowed funds generate interest
  • Reserve factor: Protocol share of interest, configurable per pool (e.g., 10%)
  • Net to suppliers: Portion of borrower interest distributed to suppliers (e.g., 90%)

Index-Based Accrual

Rather than updating every user's balance continuously, the protocol uses indices that grow over time:

Borrow Index (Compounded)

new_borrow_index = old_borrow_index × (1 + borrow_rate / YEAR_SECS)^elapsed_seconds

Lending Index (Linear)

new_lending_index = old_lending_index × (1 + lending_rate × elapsed_seconds / YEAR_SECS)

The index approach means interest accrues in O(1) time regardless of how many users are in the pool. User balances are calculated on-demand as balance = shares × index.

Protocol Revenue

The difference between what borrowers pay and what suppliers earn becomes protocol revenue:

protocol_revenue = debt_interest - supply_interest

This revenue is captured as treasury shares that can be claimed by protocol governance.