Skip to content

Circuit Breaker, Pausing, and Liquidity Stress

The circuit breaker is a velocity control on outflows. It limits how fast capital can leave through wrapper withdraw paths, protecting against exploit-velocity drains and flash-driven extraction.

The circuit breaker is not a permanent lock on user exits. Once capacity replenishes, withdrawals resume at normal pace.

The CircuitBreaker.sol contract uses a dual-buffer rate limiter:

Both buffers are checked via checkAndRecordOutflow on wrapper withdraw calls. If limits are exceeded, the withdrawal reverts.

Both exits via redeem (divest) and exits via withdraw (withdrawFT) flow through the wrapper and are subject to circuit breaker checks. If limits are exceeded, the call reverts and can be retried as capacity replenishes.

Admin can pause deposits. Exits remain available even when paused, see Roles and Permissions for details.

Pausing is a defensive measure for scenarios like:

  • Suspected exploit in progress
  • Oracle instability
  • Strategy-layer concerns requiring investigation

Scenario: strategy cannot provide full requested liquidity immediately (e.g., high Aave utilization).

Expected behavior:

The capital still exists, it’s lent out and recoverable as upstream liquidity normalizes.

Scenario: large share of investors attempt exits simultaneously, triggering circuit breaker limits.

Expected behavior:

Circuit breaker + strategy liquidity combined

Section titled “Circuit breaker + strategy liquidity combined”

In a scenario where both circuit breaker limits and strategy liquidity are constrained: