Skip to main content

Interest rates

Sward's rates aren't set by anyone. Each reserve prices borrowing from a single input, its utilization: the share of supplied liquidity currently lent out.

The kinked curve

The borrow rate follows two straight lines that meet at the reserve's optimal utilization:

u ≤ optimal: rate = base + slope1 × (u / optimal)
u > optimal: rate = base + slope1 + slope2 × (u − optimal) / (1 − optimal)

Below the kink, rates rise gently as demand grows. Past it, slope2 takes over and rates climb steeply. That steep section is deliberate: expensive borrowing near full utilization encourages repayments and attracts suppliers, keeping some liquidity available for withdrawals.

Suppliers earn the borrow interest, scaled by utilization and reduced by the reserve factor:

supplyRate = borrowRate × u × (1 − reserveFactor)

Feel it, don't just read it

Try the rate model

Borrow APY
3.56%
Supply APY
2.23%
Kept by treasury
10%

Past the optimal point the second slope takes over and borrowing gets expensive fast. That price pressure is what pulls utilization back toward the target.

APY, not APR

Interest on Sward accrues every second and compounds. All rates in the app and in these docs are quoted as APY, the annualised result of that compounding. A simple APR would understate a borrower's true yearly cost, so we don't use it anywhere.

Where the parameters live

Each reserve's base rate, slopes, optimal point, and reserve factor are on-chain and readable via the data provider. The app's reserve pages draw the live curve with a marker at current utilization, and every supply and borrow drawer previews how your own transaction will move the rate.