Skip to main content

Overview

Notional charges hourly interest on borrowed USDC using a utilization-based rate curve. Borrow interest settlement runs every hour at XX:00:00 UTC.

Pool Utilization

Borrowing costs adjust dynamically based on pool utilization to balance trader demand with LP yield and withdrawal safety. At runtime, the protocol computes utilization from the liquidity pool state and enforces an 80% hard cap. New borrows and withdrawals that would push utilization above that threshold are rejected.

Interest Rate Formula

The annual borrow APR combines a fixed 4% base rate with a utilization-dependent premium: U denotes current pool utilization, expressed as a decimal between 0 and 0.80.
  • Phase 1 (U ≤ 65%): premium = 0.04 × (U / 0.65)
  • Phase 2 (65% < U < 80%): premium = 0.04 + 3.467 × (U - 0.65)
Total annual borrow APR:
borrowApr = min(0.04 + premium, 0.60)
The hourly borrow rate is derived by dividing annual APR by 8760.

Rate Curve Examples

UtilizationPremiumTotal Annual RateHourly Rate
0%0%4%0.000456%
32.5%2%6%0.000685%
65%4%8%0.000913%
70%21.3%25.3%0.00289%
75%38.7%42.7%0.00487%
80%56%60%0.00685%

Borrower Interest

All borrowers pay the same flat utilization-based rate for a given hour. There is currently no borrower-specific risk multiplier layered on top of the utilization curve.

Calculation

For each borrower:
hourlyInterest = debt × (annualBorrowApr / 8760)
The backend currently accrues interest against persisted USDC debt tracked by the protocol.

Example

At 75% utilization:
  • Annual borrow APR = 42.7%
  • Hourly borrow rate ≈ 0.00487%
  • A borrower with 10,000 USDC of debt would pay about 10,000 × 0.0000487 = 0.487 USDC for that hour

LP Yield

Borrow interest collected from borrowers is allocated to LPs through the protocol’s LP index accounting. Operationally, the backend:
  • computes borrower debits for the hour
  • sums total interest charged
  • converts that total into an LP index delta
  • applies the accrual atomically in the hourly interest-settlement event
The current implementation records totalInterestCharged and totalInterestPaid as equal values for settlement accounting. This page intentionally does not describe a protocol fee haircut because that is not what the current backend applies in hourly interest settlement.

Funding Payments

Perpetual funding is processed separately from borrow interest.
  • Borrow interest: handled by the hourly interest settlement engine
  • Funding: handled by the funding settlement engine using venue funding events and rates
That means a given hour may include both borrow-interest changes and funding changes at the account level, but they do not come from one combined settlement path.