Signers and proposers
Roles at a glance
- Proposers (Safe owners): Queue transactions in Canon Guard using action builders
- Signers (Safe owners): Approve the exact Safe transaction hash onchain (Safe
approveHash) - Executors: Any Safe Owner in normal mode; only the emergency caller in emergency mode
The normal flow
- A Safe owner proposes by queuing an action builder (Canon Guard checks ownership via the Safe)
- Safe owners approve the Safe transaction hash onchain (Canon Guard later reads these approvals from the Safe)
- After the delay (and before expiry), anyone can execute. Canon Guard sorts approved owners and builds approved‑hash signatures for the Safe
The emergency flow
- Queuing and approving remain the same (Safe owners)
- Execution is restricted: Only the emergency caller can execute (including no‑action and cancel)
Permissions
- Queue: Safe owner (
isSafeOwner) - Approve: Safe owner onchain (
approveHashon the Safe) - Execute: Anyone (normal) / emergency caller (emergency)
- Cancel: Proposer (normal, no approvals present) / emergency caller (emergency)
For reference, see contracts/CanonGuard.sol and contracts/EmergencyModeHook.sol.