Modern and flexible smart contracts to power your crypto governance.
AgoraGovernor
is the central hub that manages the entire onchain governance lifecycle, turning raw community input into enforceable actions. By melding flexible configuration, modular design, and secure execution, it ensures that decentralized decision-making remains robust, efficient, and adaptable as your protocol evolves.
Key Concepts:
AgoraGovernor
integrates with external voting modules, allowing you to blend or swap out different voting strategies as your community’s needs change. Whether you prefer traditional voting, approval-based selection, or optimistic fast-tracking, you are free to build your own voting module, or use one of Agora’s existing modules.
AgoraGovernor
coordinates the entire proposal lifecycle—creating, queuing, voting, and executing actions. It leverages the ProposalTypesConfigurator
contract to apply distinct rules, thresholds, and scopes for each proposal type. Need a separate approval process for critical upgrades or treasury disbursements? Define a specialized proposal type, and AgoraGovernor
ensures it follows the correct process from start to finish.
admin
and manager
roles, AgoraGovernor
carefully balances flexibility and security. This tiered approach ensures that common governance parameters (like voting delays or proposal thresholds) can be tuned over time by trusted parties or the timelock—without sacrificing the decentralized ethos at the heart of the protocol.
AgoraGovernor
introduces enforced waiting periods between proposal approval and execution. This buffer gives token holders and stakeholders time to review decisions, mitigating risk from rushed proposals or malicious governance attacks.
AgoraGovernor
calculates voting power snapshots and enforces quorum requirements and approval thresholds derived from ProposalTypesConfigurator
. This ensures that significant changes gain broad, verifiable community support before taking effect. Furthermore, the contract’s integration with voting modules lets you push beyond vanilla majority votes into richer, more nuanced consensus models.
AgoraGovernor
emits granular events. This provides a transparent, onchain record of governance activity, enabling the community, analysts, and auditors to track exactly who proposed what, how votes were cast, and which measures ultimately passed. This event-driven audit trail underpins governance legitimacy and community trust.
AgoraGovernor
ensures that only vetted governance actions make it to execution. This prevents unauthorized code paths, stops malicious modules in their tracks, and fosters a controlled environment where every executed action has a well-defined, community-approved origin.
AgoraGovernor
is built to accommodate these changes without heavy refactoring. Update your proposal types, approve new voting modules, or change governance parameters—all with minimal friction and maximum auditability.
ProposalTypesConfigurator
contract streamlines and secures how proposal types are defined and managed within the Agora governance operating system. A proposal type is more than just a label: it represents a distinct governance scope, including the rules, thresholds, and authorized modules associated with that category of proposals.
Key Concepts:
PERCENT_DIVISOR
for precise percentage-based calculations. These parameters ensure that the right proportion of token holders or delegates must support a proposal before it can pass. Additionally, the contract enforces input validation, preventing misconfiguration of these critical governance levers.
VotingModule
interface, you can tailor your logic to represent any decision-making approach—be it Quadratic Voting, Ranked-Choice, Retroactive Funding, or entirely novel schemes.IAgoraGovernor
interface and returning standard proposalData
and params
encodings, modules integrate smoothly with the existing governance flow, frontends, and tooling.VotingModule
abstract contract defines a consistent interface that every voting module must implement. This includes functions to:
_countVote
)_formatExecuteParams
)_onlyGovernor()
checks, so only the governor orchestrates module operations.
For/Against/Abstain Already Built-In:
The core AgoraGovernor
uses a Bravo counting mode by default, meaning each vote is categorized as For, Against, or Abstain. Modules can build on top of this standard classification or override counting logic to interpret votes differently.
VotingModule
interface, the sky’s the limit. Design new rules, encode custom parameters, and shape governance in new and custom ways. The governor contract’s flexibility ensures your creations slot in with the existing governance primitives