Deploy a Governor
How to deploy a Governor contract to use with Tally
To be compatible with the Tally app we recommend you use OpenZeppelin's Governor contract. OpenZeppelin offers a modular system of Governor contracts which accommodates different requirements using Solidity inheritance. The design of OpenZeppelin Governor requires minimal use of storage and results in more gas efficient operation.
Core logic is determined by the Governor contract. When deploying a Governor, you need to chose:
- 1.how voting power is determined
- 2.how many votes are needed for quorum
- 3.what options people have when casting a vote and how those votes are counted
- 4.what type of token should be used to vote
These parameters must be set for the Governor contract:
- votingDelay: how long after a proposal is created that voting power is fixed (a larger delay gives users time to unstake tokens)
- votingPeriod: how long a proposal remains open to vote
A proposal threshold can also be set, which restricts proposal creation to accounts with enough voting power.
Check out our guide to ensure your OpenZeppelin Governor is compatible with the Tally platform: