pause(), which any single signer can invoke, emergencyLock() requires all three registered signers to sign simultaneously.
When to Use
- Suspected key compromise of one or more signers
- Active exploit targeting the vault
- Protocol-wide emergency requiring immediate fund freeze
pause() instead — a single signer can do it and it is reversible with M-of-N.
How It Works
The contract enforces exact signer identity in order:pubkey1must matchsigner1Hashpubkey2must matchsigner2Hashpubkey3must matchsigner3Hash
Triggering in the App
All signers sign
Each signer must connect their wallet and add their signature. The app collects all three signatures before broadcasting.
Recovery
Recovery requires deploying a new vault. Locked funds remain safely in the UTXO. Contact the signer group to coordinate a new deployment and fund migration via a new vault’sspend() path using the old vault’s signers on the original vault’s UTXOs.
