# Channel Manager Incident Runbook

Short runbook for PaymentChannelManager and GenericStateChannelManager: pause, unpause, and replace admin.

## When to pause

- Suspected bug or exploit in open/fund or state handling.
- Upgrade or migration (pause new activity while in-flight channels settle).
- Security incident: stop new channel opens and funds; existing channels can still close.

## How to pause

- **Who**: Current `admin` (or multisig that is admin).
- **Call**: `pause()` on the contract (PaymentChannelManager or GenericStateChannelManager).
- **Effect**: `openChannel` and `fundChannel` revert with "paused". `closeChannelCooperative`, `submitClose`, `challengeClose`, and `finalizeClose` remain callable so in-flight channels can settle.

## How to unpause

- **Who**: Current `admin`.
- **Call**: `unpause()`.
- **Effect**: New channels can be opened and funded again.

## How to replace admin

- **Who**: Current `admin`.
- **Call**: `setAdmin(newAdmin)` with the new address (e.g. new multisig).
- **Recommendation**: Use a multisig as `newAdmin`; avoid EOA for production.

## Contracts and addresses

- Document deployed addresses in [PAYMENT_CHANNELS_DEPLOYMENT.md](../deployment/PAYMENT_CHANNELS_DEPLOYMENT.md).
- Ensure only the intended multisig/EOA has admin before and after replacement.

## Monitoring

- Monitor `Paused`, `Unpaused`, and `AdminChanged` events.
- Alert on unexpected pause or admin change.
