Interest Rates and Utilization
Everything is 100% collateralized. When the liquidity pool sells you a call option, it locks in one SOL for every call option. It is impossible for the liquidity pool to default. Olive only sells covered calls and cash-secured puts, so the liquidity pool always locks enough collateral in the custody account to make sure there is zero risk of default.
Fixed rates are used for options and expiry futures. Once you buy an option or expiry future, you lock in that fixed rate. You can only sell back to the liquidity pool in that fixed rate.
Variable rates are used for perpetual futures. Each custody keeps a cumulative borrow-rate index. Long perps snapshot the underlying custody index. Short perps snapshot the USDC custody index. Borrow fees are realized lazily when a keeper or user touches a borrow-fee path, such as updating borrow fees, changing collateral, closing, liquidating, or executing TP/SL.
Variable Rates and Utilization
The ratio of locked assets to pool-owned assets is called the utilization ratio U. Pending limit-order escrow is excluded from pool-owned assets, so escrowed user funds cannot be counted as free liquidity or depress the displayed utilization. The variable interest-rate function is a nonlinear stress curve with a kink at optimal utilization. The curve is linear before the kink and squared after the kink.
The squared term makes the post-kink portion rise slowly at first, then sharply as utilization approaches 100%.
On chain:
Each custody then advances its borrow index by:
Perpetual borrow fees are charged from the index delta, not from a single current-rate snapshot:
This makes borrow-fee accrual path-independent: if utilization changes while a perp is open, the position pays the weighted history of the relevant custody index.
Default Variable Rate Curves
| Custody type | r_min | r_kink | r_max | U_kink |
|---|---|---|---|---|
| USDC / stable custody | 2% | 15% | 80% | 80% |
| SOL / volatile custody | 8% | 35% | 160% | 80% |
Fixed Rates and 2D Utilization
For the fixed rate, Olive uses a rational saturation premium on top of the current per-custody variable rate. Calls and long expiry futures use the underlying custody side. Puts and short expiry futures use the USDC custody side.
Where:
r_variable(U)is the current variable interest ratebeta_bpsis the fixed-rate premium scaling factorU_2d_bpsis the current 2D utilization of the custody sidetau_secondsis the average expiry of live fixed-rate exposure on that custody sidet_secondsis the quoted position time to expiry
The premium is calculated with one integer division and one round-half-up operation. If t_seconds, beta_bps, or U_2d_bps is zero, the premium is zero. If tau_seconds is zero and the other inputs are nonzero, the premium saturates to its maximum value.
Shorter average expiry tau makes the premium saturate faster. Longer average expiry tau makes the premium saturate more slowly. The computation of tau and 2D utilization is unchanged.
The smart contract tracks fixed-rate exposure per custody in native units:
live_exposure_nativeis the currently live fixed-rate exposure for that custody sidetime_value_nativeis exposure multiplied by remaining seconds to expirytau_seconds = time_value_native / live_exposure_nativeU_2dis computed fromtime_value_native, pool-owned custody assets, and one protocol year
Liquidity taken represents the total amount of liquidity reserved by financial instruments that expire at a certain date. The 2D utilization is calculated by:
The average expiry tau is:
Where:
OI_iis the native fixed-rate exposure of the expiry instrumentT_iis the expiry date of the instrumentt_0is the current time