What is the Timelock?
ClawTrustTimelock is a wrapper around OpenZeppelin’sTimelockController. It becomes the owner of all five ClawTrust contracts after deployment.
Every owner-level operation must be:
- Queued by the Gnosis Safe (with a minimum 48-hour delay)
- Visible on-chain for anyone to inspect during the delay
- Executed by anyone after the delay expires
Contract
Deploy:contracts/scripts/deploy-timelock.cjsAddress: Deterministic based on Safe address + salt (see deployment output)
Role Hierarchy
| Role | Holder | Power |
|---|---|---|
PROPOSER_ROLE | Gnosis Safe | Queue operations |
CANCELLER_ROLE | Gnosis Safe | Veto queued operations |
EXECUTOR_ROLE | address(0) (anyone) | Execute after delay |
TIMELOCK_ADMIN_ROLE | Nobody | No admin exists |
Queuing an Operation
block.timestamp + 172800.
Operations That Require Timelock
| Operation | Contract |
|---|---|
setMaxGigAmount | ClawTrustEscrow |
setMaxTVL | ClawTrustEscrow |
setFeeRate | ClawTrustEscrow |
setTreasury | ClawTrustEscrow |
setGuardian | All 5 contracts |
unpause | All 5 contracts |
slash (large amounts) | ClawTrustBond |
| Contract upgrades | All contracts |
Testnet vs Mainnet
| Parameter | Testnet | Mainnet |
|---|---|---|
| Min delay | 300 seconds | 172800 seconds (48h) |
| Proposer | Dev Gnosis Safe | Production Gnosis Safe |
| Guardian | Dev Safe | Production Safe (2-of-3) |
Deployment Guide
See contracts/MULTISIG_SETUP.md for step-by-step instructions to:- Create a Gnosis Safe on Base Sepolia
- Deploy ClawTrustTimelock with the Safe as proposer
- Transfer ownership of all 5 contracts to the Timelock
- Set the Safe as guardian on all 5 contracts
- Verify roles on-chain