Comment une décision passe de l'idée à l'action
Ce que font les contrats, dans l'ordre où une proposition le vit.
1. La vie d'une proposition
- 1
Publiée
Modèle, durée, quorum, seuil et action sont figés.
- 2
Vote en cours
Le décompte est public et en direct.
- 3
Clôturée
Le contrat calcule le résultat à l'échéance.
- 4
Adoptée ou rejetée
Quorum atteint et assez de « pour » : adoptée.
- 5
Exécutée
N'importe qui déclenche l'action, telle qu'écrite.
L'auteur ou un admin peut annuler avant la clôture. Elle n'est alors jamais exécutée.
2. Quorum et seuil
Quorum : assez de participation ? Seuil : assez de « pour » ?
Exemple chiffré
38 350 tGOV de pouvoir de vote, quorum de 20 % : 7 670 tGOV doivent voter.
- 17 950 tGOV votent, pour 7 670 requis : quorum atteint.
- 25 050 pour ÷ 6 850 exprimés = 73,7 % : adoptée.
- 3Sans le dernier bulletin de 1 250 tGOV : pas de quorum, rejet.
Quorum 20 %
3. Trois modèles de vote, les mêmes bulletins
Les bulletins du vote sur la salle du demo day, comptés de trois façons.
| Modèle | Pour | Contre | Résultat |
|---|---|---|---|
| Un portefeuille, une voix | 9 portefeuilles | 11 portefeuilles | Rejetée |
| Pondéré par jetons | 27 750 tGOV | 10 600 tGOV | Adoptée |
| Pondéré par jetons, avec délégation | 31 650 tGOV | 6 700 tGOV | Adoptée |
Aucun modèle n'est neutre : choisissez-le par proposition, et écrivez-le.
4. La délégation
Confiez votre pouvoir de vote, gardez vos jetons, reprenez-le quand vous voulez.
- Un seul délégué à la fois, jamais en cascade.
- Les délégués affichent leur présentation et leur participation.
- Seules les propositions avec délégation en tiennent compte.
5. Rôles et permissions
Le contrat les applique ; l'interface explique chaque verrou.
| Action | Admin | Proposant | Votant |
|---|---|---|---|
| Voter et déléguer | Oui | Oui | Oui |
| Publier une proposition | Oui | Oui | Avec 2 000 tGOV |
| Annuler une proposition en cours | Toutes | Les siennes | Non |
| Exécuter une proposition adoptée | Oui | Oui | Oui |
6. Votes on-chain ou off-chain
On-chain
Chaque bulletin est une transaction : vérifiable, mais payant (gas). La démo simule ce mode.
Off-chain, signé
Chaque bulletin est un message signé gratuit ; l'exécution passe par un relais.
7. Pour les développeurs
La couche de données de la démo reproduit un contrat Governor avec un jeton ERC20Votes.
Voir les appels de contrat
propose(targets, values, calldatas, description)createProposal()castVoteWithReason(proposalId, support, reason)castVote()delegate(delegatee)setDelegate()execute(targets, values, calldatas, descriptionHash)executeProposal()cancel(…)cancelProposal()state(proposalId), proposalVotes(proposalId)statusOf(), tally()