Governance
Introduction
This document provides an overview of the governance system implemented in OpenLedger, referencing the OpenLedgerGovernor smart contract and the associated governance test suite. It is intended for auditors and stakeholders who require insight into the protocol’s on-chain governance mechanisms, parameters, and security considerations.
Governance Architecture
OpenLedger’s governance is based on the OpenZeppelin Governor framework, extended for advanced features and robust security. The core contract, OpenLedgerGovernor, manages proposal creation, voting, and execution, leveraging a timelock for secure and transparent upgrades.
Key Components
Governor Contract:
OpenLedgerGovernor(seecontracts/OpenLedgerGovernor.sol)Governance Token: GOpen (GOPEN) — see
gOpen.mdTimelock Controller: Enforces execution delays for approved proposals
Voting Power: Derived from GOpen token balances (ERC20Votes extension)
Test Suite: Comprehensive tests in
test/governance/
Governance Process
1. Proposal Creation
Any address holding at least the proposal threshold of GOpen tokens can create a proposal.
Proposal Threshold: 10,000 GOPEN
Proposals specify actions to be executed by the protocol if approved.
2. Voting
Voting Delay: 1 day after proposal creation before voting starts.
Voting Period: 1 weeks for token holders to cast votes.
Each GOpen token equals one vote; voting power can be delegated.
Votes are tracked and checkpointed for transparency.
3. Quorum and Approval
Quorum: 5% of total GOpen supply must participate for a proposal to be valid.
Proposals pass if they receive more "For" than "Against" votes and meet quorum.
4. Timelock and Execution
Timelock Delay: 1 week after proposal approval before execution.
Only proposals that pass all checks and delays are executed by the Timelock Controller.
Timelock ensures time for review and potential intervention before changes are applied.
5. Proposal States
Proposals transition through the following states:
Pending
Active
Canceled
Defeated
Succeeded
Queued
Expired
Executed
Security Features
Battle-tested Modules: Built on OpenZeppelin Governor, Timelock, and ERC20Votes.
Role-Based Access: Timelock roles (Proposer, Executor, Admin) are strictly managed.
Reentrancy Protection: Follows checks-effects-interactions pattern.
Test Coverage: All governance logic is covered by automated tests (see
test/governance/).
Governance Parameters
Voting Period
1 weeks
Duration for voting on proposals
Voting Delay
1 day
Delay before voting starts
Timelock Delay
1 week
Delay before execution after approval
Proposal Threshold
10,000 GOPEN
Minimum tokens to create a proposal
Quorum
5%
Minimum participation for proposal validity
Commands: Install, Compile, Test, Coverage, and Deploy
To work with OpenLedger governance contracts, use the following commands from the project root:
Test Coverage
The OpenLedgerGovernor.sol contract, which implements the core governance logic, is covered by a comprehensive automated test suite. As of the latest coverage report:
Statements: 100%
Branches: 100%
Functions: 100%
Lines: 100%
This demonstrates rigorous testing of the proposal lifecycle, parameter changes, role management, and edge cases for the governance system.
Testing and Auditability
The test/governance/ directory contains comprehensive tests for:
Proposal lifecycle (creation, voting, queuing, execution, cancellation)
Parameter changes (voting period, delay, threshold)
Social consensus proposals
Timelock and role management
Edge cases and failure scenarios
These tests ensure the correctness and resilience of the governance system.
References
contracts/OpenLedgerGovernor.sol— Core governance contracttest/governance/— Governance test suitedocs/gOpen.md— GOpen governance token detailsOpenZeppelin Governor documentation: https://docs.openzeppelin.com/contracts/5.x/governance
Contact
For security concerns or audit questions, contact: security@openledger.xyz
Last updated