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. This modular, battle-tested system of DAO smart contracts givens tokenholders control of a DAO on-chain.
A typical Governor DAO uses three contracts: a token contract, a Governor contract, and a timelock contract.

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.
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.
Check out our guide to ensure your OpenZeppelin Governor is compatible with the Tally platform:
Last modified 25d ago