Deploy a governor
You can use Tally’s open-source Governor deployer to get started.
Configuring your Governor
Core logic is determined by the Governor contract. When deploying a Governor, you need to chose:
- How voting power is determined
- How many votes are needed for quorum
- What options people have when casting a vote and how those votes are counted
- What type of token should be used to vote
You can write your own module or choose one from OpenZeppelin contracts.
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.
The latest published release of the OpenZeppelin Contracts library can be downloaded by running:
$ npm install @openzeppelin/contracts
The OpenZeppelin Contracts documentation includes guides and a detailed API reference for learning about developing secure smart contract systems.
You may also find the OpenZeppelin wizard useful for configuring a smart contract.
Compatibility with Tally
Check out our guide to ensure your OpenZeppelin Governor is compatible with the Tally platform:
Helpful Links from OpenZeppelin
Using Governor
Tally offers an all-in-one guide explaining how to use Governor in the PDF below.