# Kill switch (freeze & unfreeze)

Freezing is the vault's emergency brake. It stops signing at the scope you choose, immediately, without waiting for in-flight requests to complete.

## Freeze scopes

You can freeze at six levels of granularity:

| Scope | What it stops |
|---|---|
| Individual key | Signing with one specific key |
| Security group | Signing with all keys in a named key group |
| Individual user | All signing initiated by one user or Machine User |
| User group | All signing initiated by any member of a group |
| Venue | All signing for any key registered to that exchange |
| Global (all keys) | All signing across the entire system |

Choose the narrowest scope that contains the incident. A global freeze stops all trading operations system-wide.

## Freeze a specific key

1. On the **Offchain Keys** page, locate the key row.
2. Open the row actions menu (three-dot icon) and click **Freeze**.
3. The key's status updates to frozen and a freeze indicator appears in the row.

You can also click the freeze icon directly in the row without opening the menu.

![Per-key freeze confirmation dialog requiring the operator to type FREEZE KEY](/img/guide/kill-switch/freeze-key-modal.png)
*Freezing a single key requires typing FREEZE KEY to confirm, then a passkey assertion. The key is then blocked from signing until unfrozen.*

## Global freeze (all keys)

1. On the **Offchain Keys** page, click **Freeze All Keys** (top right, shown in red).
2. A confirmation modal opens. Type `FREEZE ALL KEYS` exactly in the text field.
3. The confirm button activates once the text matches. Click **Confirm**.
4. All keys are frozen. Signing requests that are not yet finalized receive a `blocked_by_freeze` terminal status.

![Freeze All Keys confirmation dialog requiring the operator to type FREEZE ALL KEYS](/img/guide/kill-switch/freeze-all-modal.png)
*The global kill switch requires typing FREEZE ALL KEYS, then a passkey assertion. Every key is frozen at once.*

:::warning\[Governance]
Freeze and unfreeze actions are governed by the Administrative Policy. Your group must have the `freeze_keys` or `unfreeze_keys` capability respectively. If the button is absent or disabled, contact your vault administrator.
:::

## What happens to in-flight requests

Freeze takes a shortcut path through the system and interrupts signing requests that are still being processed. Requests that have not yet received a final signed response are terminated with a `blocked_by_freeze` status in the audit log. Requests that have already completed are not affected.

## Unfreeze

When the incident is resolved, unfreeze using the same controls:

* **Individual key:** open the row actions menu and click **Unfreeze**, or click the freeze icon in the row.
* **All keys:** click **Unfreeze All Keys** (the button replaces Freeze All Keys when all keys are frozen). Type `UNFREEZE ALL KEYS` in the confirmation field and confirm.

Unfreeze requires the `unfreeze_keys` capability.

## Audit trail

Every freeze and unfreeze action is recorded in the audit log under the **Admin** tab with the acting user, timestamp, scope, and reason. Use these records for incident post-mortems and compliance reporting.
