Skip to main content
Utilization tells you how close the pool is to its position-open capacity. Because the metric is denominated against the same maxNetExposure ceiling the protocol uses to gate position opens, hedged longs and shorts in the same (pair, maturity) bucket offset each other — a perfectly hedged book reads near-zero utilization regardless of how large the gross open interest is.

Utilization Formula

The result is expressed in basis points (bps), where 10,000 bps = 100% (position-open cap reached). Utilization itself is Computed — derived at query time by PoolVault.riskCapacityUtilization().
If maxNetExposure returns 0 (e.g. empty vault) and sumAbsBucketExposure is non-zero, utilization returns type(uint256).max so the withdrawal gate trips. When both are zero, utilization is 0.

Maximum Utilization Cap

The protocol enforces a configurable cap on utilization: When an LP attempts to withdraw, the vault checks whether the resulting utilization would exceed maxRiskCapacityBps. If it would, the withdrawal is blocked.
The utilization cap is a hard constraint. If the pool’s utilization is already at or above 80%, no withdrawals are possible until positions close (or hedging opens) and utilization decreases.

Maximum Withdrawable Amount

The vault computes the maximum USDC that can be withdrawn without breaching the cap. Inverting the utilization formula and solving for the minimum retained assets gives:
If the computed value is negative (utilization already exceeds the cap), maxWithdrawable returns 0.

Worked Examples

Well under the cap — withdrawals are unrestricted.
Gross open interest is identical to the one-sided case, but the bucket netting credits the hedge — utilization reads orders of magnitude lower.

Why Cap Utilization?

The cap serves four purposes:
1

Prevent bank-run dynamics

Without a cap, LPs could race to withdraw during adverse conditions, leaving the pool unable to honor its obligations. The cap ensures an orderly withdrawal process.
2

Ensure settlement liquidity

Matured positions must be settled with USDC payouts to profitable traders. The reserve ensures funds are always available.
3

Absorb potential bad debt

If a position’s losses exceed its locked margin, the pool absorbs the shortfall. A minimum reserve provides a buffer for these events.
4

Bound risk capacity

The bucket-aggregated net exposure is also what gates new position opens via the RiskManager. Using the same denominator for the withdrawal cap means LP withdrawals can never push the pool past the protocol’s risk-capacity ceiling.

Dynamic Utilization Changes

Utilization changes with every position operation:

Disabling the Utilization Cap

Setting maxRiskCapacityBps to 0 disables the restriction entirely.
Disabling the cap removes a critical safety mechanism. It is only appropriate for controlled testing environments. On the M2 Sepolia deployment, the cap is set to the default of 8,000 bps (80%).

Querying Utilization Onchain

ERC-4626 Vault

How the vault operates and tracks exposure.

Deposit & Withdraw

Step-by-step guide for LP operations.

Pool Exposure Caps

How the risk manager limits pool-level exposure.