# Governance

## Contracts

The Governance module contains several important contracts:

* UbeToken: governance token; based on Uni
* RomulusDelgate:  This is a DAO governance contract similar to Compound Governance Alpha
* Timelock: based on the Uniswap timelock contract; ensures a minimum of 2 days must pass between the time an admin transaction is created and posted and the time that the transaction is executed.

A diff between Uni governance contracts and Ubeswap is available [here](https://gist.github.com/macalinao/03d181f7a2884a740db31e82450eb7a7/revisions).

## UbeToken

The UbeToken is the governance token of Ubeswap, used to vote on the direction of the protocol.&#x20;

The token is largely based on the Uni token; however, we have decomposed the contract into a series of contracts inherited from each other:

* [UbeToken](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/contracts/UbeToken.sol) -- the Ubeswap governance token.
* [VotingPower](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/contracts/voting/VotingPower.sol) -- keeps track of how much voting power an address has
* [VotingToken](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/contracts/voting/VotingToken.sol) -- a VotingPower that exposes a name, symbol, decimals, and balanceOf. Cannot be transferred.
* [TransferrableVotingToken](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/contracts/voting/TransferrableVotingToken.sol) -- a VotingToken that is fully ERC20-compliant and can be transferred.

We were careful to preserve whitespace on `VotingPower` and `TransferrableVotingToken`, as the code was copy/pasted from [Uni](https://github.com/Uniswap/governance/blob/master/contracts/Uni.sol).

## Deployment (New)

There are 6 steps to the deployment (these are the deployment steps of new tokenomics)

* [Deploying UBE Token](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/001_deploy_ube_token.ts)
* [Deploying UbeConvert ](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/002_deploy_ube_convert.ts)This contract is used for converting old UBE tokens to new UBE tokens
* [Deploying Governance](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/003_deploy_governance.ts)
* [Deplying New Stake](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/004_deploy_ube_stake.ts)
* [Deploying Vesting Contracts](https://github.com/Ubeswap/ubeswap-contracts-new/blob/main/deploy/005_deploy_new_ube_vestings.ts)  These contracts are vesting contracts for new tokenomics


---

# 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.ubeswap.org/code-contracts/overview/governance.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.
