icon | description |
---|---|
arrow-up-right |
How to deploy a Governor contract to use with Tally |
You can use Tally's open-source Governor deployer to get started.
#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.
{% hint style="info" %} The latest published release of the OpenZeppelin Contracts library can be downloaded by running:
$ npm install @openzeppelin/contracts
{% endhint %}
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:
{% content-ref url="../smart-contract-compatibility/openzeppelin-governor.md" %} openzeppelin-governor.md {% endcontent-ref %}
Tally offers an all-in-one guide explaining how to use Governor in the PDF below.
{% file src="../../../.gitbook/assets/Using Governor.pdf" %}