Core invariant
Each whitelisted yield source can have exactly one pairedEMERGENCY_EXIT strategy. Arming it transitions that strategy to RUNNING, acquires an emergency lock keyed by target_address, and starts withdrawal intents for that source. While the lock is held, user-defined strategies with the same action_config.target_address stop publishing conflicting intents. Strategies targeting other yield sources continue.
When to use it
Use Emergency Exit when a single yield source needs liquidity drained because of protocol risk, oracle issues, market dislocation, or operational concerns. Do not use it for broad vault shutdown. Use onchain pause or keeper pause when every operation should stop.Prerequisites
- Yield source is whitelisted for the vault.
- Active merkle withdrawal hook and proof exist for that source.
- OMS session key and Strategy Engine are healthy.
- Operator has manage permission.
- Vault kill switch is not blocking strategy execution.
Arm flow
- Open Pause → Emergency Exit.
- Select a yield-source row.
- Review allocation, APY/TVL where available, paired strategy state, and blocked strategies.
- Type the required confirmation suffix from the yield-source address.
- Set max slippage in bps. Default is 50 bps (0.5%).
- Add an optional reason. The reason remains visible in lock banners and audit context.
- Click Arm emergency exit.
- Monitor Intent History for withdrawal intents, fills, gas, and errors.
Stop flow
Click Stop emergency exit on the source. This transitions the paired strategy toIDLE and releases the lock. User-defined strategies targeting that address resume on their next tick. Already-published OMS withdrawal intents continue to their terminal state.
Strategy Canvas behavior
When one or more emergency locks are active, Strategy Canvas shows an emergency banner. Controls for user-defined strategies that target a locked address are disabled with a tooltip.EMERGENCY_EXIT strategies are system-managed, hidden from normal authoring by default, and read-only when inspected.
