Deploy a Governor
How to deploy a Governor contract to use with Tally
Last updated
How to deploy a Governor contract to use with Tally
Last updated
To be compatible with the Tally app, we recommend you use OpenZeppelin's Governor contract. This modular, battle-tested system of DAO smart contracts givens tokenholders control of a DAO onchain.
A typical Governor DAO uses three contracts: a token contract, a Governor contract, and a timelock contract.
Helpful Links from OpenZeppelin
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.
Check out our guide to ensure your OpenZeppelin Governor is compatible with the Tally platform:
OpenZeppelin GovernorTally offers an all-in-one guide explaining how to use Governor in the PDF below.