# Deploy a governor

You can use Tally's open-source [Governor deployer](https://github.com/withtally/gov-deployer) to get started.&#x20;

## Configuring your Governor

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

You can write your own module or choose one from [OpenZeppelin contracts](https://docs.openzeppelin.com/contracts/4.x/).

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](https://docs.openzeppelin.com/contracts/4.x/) includes guides and a detailed API reference for learning about developing secure smart contract systems.

You may also find the [OpenZeppelin wizard](https://wizard.openzeppelin.com/) useful for configuring a smart contract.

## Compatibility with Tally

Check out our guide to ensure your OpenZeppelin Governor is compatible with the Tally platform:

{% content-ref url="/pages/5tYAOIn7G2VAgQyJKX9f" %}
[OpenZeppelin Governor](/set-up-and-technical-documentation/deploying-daos/smart-contract-compatibility/openzeppelin-governor.md)
{% endcontent-ref %}

#### *Helpful Links from OpenZeppelin*

* [Developing smart contracts](https://docs.openzeppelin.com/learn/developing-smart-contracts)
* [Deploying and interacting with smart contracts](https://docs.openzeppelin.com/learn/deploying-and-interacting)

### Using Governor

Tally offers an all-in-one guide explaining how to use Governor in the PDF below.

{% file src="/files/uMaSky1ESicLjDPkI3mO" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tally.xyz/set-up-and-technical-documentation/deploying-daos/deploy-a-dao-with-token-voting.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
