The Core Idea
Vanna does not have a fixed interest rate. Borrowing costs adjust continuously based on a single input: how much of the pool is currently being borrowed. When a pool is mostly idle, borrowing is cheap - the protocol wants to attract borrowers. When a pool is nearly fully lent out, borrowing becomes very expensive - the protocol needs to incentivize repayment and keep liquidity available for withdrawals. This happens automatically. No governance votes, no manual updates. The rate responds to pool state in real time.Utilization - The Only Input
Every rate calculation starts with the pool’s utilization ratio: Utilization is a number between 0 and 1. Everything else is a function of this single value.The Rate Curve
Vanna uses a smooth polynomial curve - not a two-segment “kinked” model with a hard breakpoint. The borrow rate accelerates organically as utilization increases, with the steepest acceleration above 90%.Borrow APR
120%
80%
40%
0%
80%
gradual
steep
rise
rise
0%25%50%75%100%
Utilization →
Rate stays near-flat below 80% utilization, then accelerates sharply near 90–100%.
How the three terms work
The three terms -u, u^32, and u^64 - behave very differently depending on utilization:
There is no kink point - no arbitrary breakpoint where the rate suddenly jumps. Acceleration is organic: the high-exponent terms are near zero at low utilization, then rapidly dominate as utilization approaches 100%.
Approximate rate levels
The Self-Correcting Loop
This design means the pool naturally stabilizes without external intervention:1
Utilization rises
More borrowers draw from the pool. The borrow rate increases.
2
Borrowing becomes expensive
At high utilization, borrowing costs exceed returns for marginal strategies. Borrowers repay or hold off.
3
Utilization falls
Repayments reduce outstanding borrows. The rate decreases and liquidity becomes available again.
4
Equilibrium
The pool settles at the utilization where borrow demand and repayment pressure balance - typically in the 70–85% range.
Related
- Lending Pools - how utilization is computed from pool state
- vTokens - how borrow interest flows into LP yield
- Health Factor - what happens when borrowing costs erode account health
- Rate Model reference - the full function interface

