What is On-Chain Voting?
On-chain voting is a governance mechanism where votes are cast as blockchain transactions, and approved proposals are automatically executed by smart contracts. This provides trustless governance where outcomes are enforced without relying on any intermediary.
How On-Chain Voting Works
1. Proposal Submission: A transaction creates the proposal on-chain, including executable code. 2. Voting Period: Token holders submit vote transactions (For/Against/Abstain). 3. Vote Counting: Smart contracts tally votes based on token balances at snapshot. 4. Timelock Queue: Passing proposals enter a timelock period before execution. 5. Execution: Anyone can trigger execution after timelock expires. The proposal's code runs automatically.On-Chain Voting Systems
Governor (OpenZeppelin): Standard framework used by Compound, Uniswap, and many others. Modular and battle-tested. Tally: Governance dashboard for Governor-based DAOs. Aragon: Full DAO stack with on-chain voting components. Moloch: Rage-quit enabled governance for investment DAOs.Advantages
Trustless Execution: No humans needed to implement approved changes Immutable Record: All votes permanently recorded on blockchain Credible Neutrality: Rules apply equally to all participants Atomic Proposals: Complex multi-step changes execute as one unitChallenges
Gas Costs: Every vote requires a transaction fee Participation Barriers: High gas discourages small holders Speed: Blockchain constraints limit voting throughput Complexity: Poorly coded proposals can cause issuesGovernor Bravo Standard
Most major protocols use Governor Bravo or compatible systems:
- Proposal threshold: Tokens needed to create proposal
- Voting delay: Time between proposal and voting start
- Voting period: Duration of voting window
- Timelock delay: Wait time before execution
Security Considerations
On-chain governance can be attacked through flash loan voting, governance manipulation, or malicious proposals. Timelocks, quorum requirements, and proposal thresholds provide defense layers.