Borrow Interest Rate
Velocity’s lending pools use a borrow interest rate model inspired by Aave . Each spot market defines:
- A minimum rate
R_min - An optimal rate
R_optat a target utilizationU* - A maximum rate
R_maxat full utilization
The borrow interest rate is a function of utilization (U), or how much capital in the pool is currently lent out.
Utilization Rate and Liquidity
- If U is high -> most of the pool is already lent out, so free liquidity is scarce; the protocol charges higher interest rates to incentivise repayment of debt and attract new deposits.
- If U is low -> most of the pool is sitting idle and liquidity is abundant; the protocol charges lower interest rates to encourage borrowing.
Multi-Kink Interest Rate Model
To balance capital efficiency with liquidity protection, Velocity uses a multi-kink model. This allows linear rates up to the optimal utilization point, and then introduces increasingly steeper rate hikes as utilization increases, especially in the 85–100% range.
This design allows for more aggressive max utilization rates while not adding too much rate volatility near optimal rate.
Formula
The interest rate function is defined as:
Graph
This graph demonstrates the multi-kink interest rate model as configured for the SOL market.

These values are subject to change, as each spot market defines its own parameters.
The latest values can be retrieved directly from the on-chain SpotMarketAccount data.
Summary Table
| Utilization (U) | Rate Curve Behavior |
|---|---|
| U ≤ U* | Linear ramp to R_opt |
| U* to 0.85 | Mild penalty rate slope(+50 bps) |
| 0.85 to 0.90 | Steeper slope (+100 bps) |
| 0.90 to 0.95 | Steeper still (+150 bps) |
| 0.95 to 0.99 | Aggressive slope (+200 bps) |
| 0.99 to 0.995 | Near-vertical slope (+250 bps) |
| 0.995 to 1.00 | Max slope (+250 bps) |
The multi-kink model and segment weights above are unchanged from the pre-fork Drift Protocol v2 codebase.