Context
Smart contract vulnerabilities discovered post-deployment require immediate action. Without a pause mechanism, funds are at risk during the fix window.
Current Limitation/Problem
There is no emergency pause mechanism for smart contracts. If a vulnerability is discovered, there is no way to halt operations while a fix is deployed.
Expected Outcome
An emergency pause mechanism for all critical contracts (Soroban + EVM) with multi-sig governance, automatic unpause timeout, and transparent audit logging.
Acceptance Criteria
- Inherit OpenZeppelin Pausable (EVM) and implement equivalent for Soroban
- Pause/unpause functions restricted to multi-sig governance
- Critical functions check
whenNotPaused modifier
- Automatic unpause after configurable timeout (max 72 hours)
- Emergency pause by single guardian (with timelock for unpause)
- Events: Paused, Unpaused, PauseProposed, PauseGuardianChanged
- Dashboard showing current pause state per contract
- Pause state visible in contract explorer
- Test suite: all critical functions revert when paused
- Documentation: pause/unpause procedure for operators
Technical Scope
contracts/evm/security/Pausable.sol - EVM pause mechanism
contracts/soroban/security/src/ - Soroban pause implementation
- Guardian role management with multi-sig
backend/src/services/contracts/pause-manager.ts - backend integration
- Frontend:
/admin/contracts - pause state dashboard
- Edge cases: partial pause (some functions), guardian key compromise, cross-chain pause sync
Context
Smart contract vulnerabilities discovered post-deployment require immediate action. Without a pause mechanism, funds are at risk during the fix window.
Current Limitation/Problem
There is no emergency pause mechanism for smart contracts. If a vulnerability is discovered, there is no way to halt operations while a fix is deployed.
Expected Outcome
An emergency pause mechanism for all critical contracts (Soroban + EVM) with multi-sig governance, automatic unpause timeout, and transparent audit logging.
Acceptance Criteria
whenNotPausedmodifierTechnical Scope
contracts/evm/security/Pausable.sol- EVM pause mechanismcontracts/soroban/security/src/- Soroban pause implementationbackend/src/services/contracts/pause-manager.ts- backend integration/admin/contracts- pause state dashboard