Paboxo

Interest rates

A two-slope curve, and why it bends where it does.

The borrow rate is a function of utilisation — how much of the supplied USDG is currently borrowed.

utilisation = totalBorrowAssets / totalSupplyAssets

The curve

Two slopes meeting at a kink. Live testnet values:

Base rate, at 0% utilisation0.5%
Rate at the kink8%
Kink (optimal utilisation)80%
Max rate100%
Max utilisation90%

Below the kink the rate climbs gently from 0.5% to 8%. Above it, the curve turns sharply: from 8% at 80% utilisation to 100% at 90%, and flat at 100% beyond that.

Why the bend

A lending market has one lever to keep withdrawals possible, and it is price. Below the kink there is plenty of idle liquidity and no reason to discourage borrowing. Above it, every additional borrow eats into the buffer that lets lenders exit — so the rate rises fast enough that borrowers repay and suppliers arrive.

The steepness is not a fee. It is the mechanism that makes the pool self-correcting without anyone intervening.

What lenders receive

supply rate = borrow rate × utilisation × (1 − reserve factor)

Two things follow. A high borrow rate at low utilisation earns lenders little, because few borrowers are paying it. And the reserve factor is a real deduction — reading it as zero when it is not overstates the supply APY.

Accrual

Interest accrues into the debt continuously, and is written to storage when accrueInterest() is called — which happens automatically on supply, borrow, repay and withdraw. There is no separate action to take and no compounding schedule to track.

Rates are per market

The curve is configured per market on the interest rate model, keyed by the market's router address. All three markets currently share the same numbers, but nothing requires that — a riskier market can be given a steeper curve independently.

On this page