Proposte e votazioni
Contratti Governor
Proposte e votazioni è una lezione Web3 & DApp Development Fundamentals gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Web3 & DApp Development Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Web3 & DApp Development Fundamentals include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
The Governance Lifecycle
On-chain governance follows a clear lifecycle: propose, vote, queue, execute.
Each stage is handled by a Governor smart contract that enforces the rules automatically.
The Governor Contract
OpenZeppelin's Governor is the standard framework for DAO voting. It manages proposals, tallies votes, and triggers execution.
It is modular: you plug in a vote-counting strategy, a token, and timing parameters.
contract MyGovernor is
Governor,
GovernorVotes,
GovernorVotesQuorumFraction,
GovernorTimelockControl
{ /* ... */ }Creating a Proposal
A proposal bundles the actions to execute: target contracts, call data, and values, plus a human-readable description.
governor.propose(
[targetContract], // addresses
[0], // ETH values
[callData], // encoded function calls
"Increase reward rate to 5%"
);The Voting Delay
After a proposal is created, a voting delay passes before voting opens.
This gives members time to review and lets the snapshot block settle so balances are fixed.
votingDelay = 1 block // wait before voting
votingPeriod = 50400 blocks // ~1 week of votingCasting Votes
During the voting period, members cast votes weighted by their delegated power at the snapshot block.
Standard options are For, Against, and Abstain.
governor.castVote(proposalId, 1);
// 0 = Against, 1 = For, 2 = AbstainVote Counting and Quorum
When voting ends, the Governor tallies the weighted votes. A proposal succeeds only if it has more For than Against votes and meets the quorum.
Abstain votes typically count toward quorum but not toward the For/Against decision.
Proposal States
A proposal moves through defined states:
- Pending — waiting for voting delay
- Active — voting open
- Defeated or Succeeded
- Queued then Executed
Queuing a Successful Proposal
A succeeded proposal is usually queued in a timelock before it can run.
This delay (covered next lesson) is a safety buffer letting users react before the change takes effect.
governor.queue(targets, values, calldatas, descHash);Execution
After the timelock delay, anyone can call execute to carry out the proposal's actions on-chain.
The Governor (or its timelock) holds the permissions needed to make the changes.
governor.execute(targets, values, calldatas, descHash);
// the approved actions now runGas Costs and Off-Chain Voting
On-chain voting costs gas per vote. To save costs, many DAOs deliberate and signal off-chain (Snapshot) and only push final, binding actions on-chain.
This hybrid keeps participation cheap while preserving trustless execution.
Putting It Together
Governor contracts standardize the propose-vote-queue-execute flow. Voting delays, periods, quorum, and proposal states make governance predictable and secure.
Next we focus on timelocks, the safety layer before execution.
Quick Check
Test your understanding of the governance flow.
Recap: Proposals and Voting
You learned that:
- Governance follows propose, vote, queue, execute
- The Governor contract enforces the rules
- A voting delay and period structure the timeline
- Success needs a majority For plus quorum
- Proposals pass through defined states
Next: timelocks and safe execution.
Impara Web3 & DApp Development Fundamentals con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 29
- Lezioni
- 105
Domande Frequenti
La lezione «Proposte e votazioni» è gratuita?
Sì — il testo completo di «Proposte e votazioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Web3 & DApp Development Fundamentals, passa a CoddyKit PRO. Il corso Web3 & DApp Development Fundamentals include 4 lezioni in totale.
Cosa imparerò in «Proposte e votazioni»?
Contratti Governor Eserciti Web3 & DApp Development Fundamentals con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Web3 & DApp Development Fundamentals?
Non è richiesta alcuna esperienza precedente. Web3 & DApp Development Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Proposte e votazioni»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Web3 & DApp Development Fundamentals?
Sì. Ogni lezione Web3 & DApp Development Fundamentals include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Che cos'è una DAO
- Token di governance
- Proposte e votazioni
- Timelock ed esecuzione