Skip to content
Contract · Governance

Timelock

Delay privileged actions. Required backing store for Governor DAOs and multisig-style admin controls.

All templates
Governance
Audited base
~2.1M gas
Ethereum
Post-deploy checklist
  1. Set minDelay thoughtfully (2 days is a common production floor)
  2. Grant PROPOSER to the Governor (or intended proposer) only
  3. Set EXECUTOR to the open role (address(0)) or a multisig — decide deliberately
  4. Renounce or transfer DEFAULT_ADMIN after wiring Governor
  5. Verify on explorer before pointing treasury ownership here
Configure & deploy

Minimum wait after a proposal is queued. 172800 = 2 days.

Addresses that can schedule operations. For a DAO, this is usually the Governor address (add after Governor deploy).

Who can execute after delay. Use address(0) for public execution, or a multisig for gated execution.

Use cases
  • Timelock DAO proposal execution
  • Delay privileged admin functions
  • Secure protocol upgrades
Timelock.solsolidity
// SPDX-License-Identifier: MIT
// Compatible with OpenZeppelin Contracts ^5.0 (Wizard / Contracts MCP patterns)
// Compiled with Solidity ^0.8.24 — Ethereum Toolset browser solc
pragma solidity ^0.8.24;

import "@openzeppelin/contracts/governance/TimelockController.sol";

// Timelock queue for Governor proposals or multi-sig-style delayed admin actions.
contract AppTimelock is TimelockController {
    constructor(uint256 minDelay, address[] memory proposers, address[] memory executors, address admin)
        TimelockController(minDelay, proposers, executors, admin)
    {}
}