# Creating a new governance

## Prerequisites

* A token that supports voting (e.g. [UBE](https://github.com/Ubeswap/ubeswap-governance/blob/master/contracts/UbeToken.sol))
* Optionally, another token that will also have voting power
* Node and Yarn installed

## Deploying the smart contracts

First, reserve a name on Nomspace for your Timelock.&#x20;

Second, fill in the parameters for deploying your Romulus contracts

```
# Fill in empty keys
cp .env.example .env
```

Finally, deploy the contracts with

```
yarn build && yarn deploy
```

## Adding your new Governance to the interface

Create a PR on <https://github.com/Ubeswap/romulus/blob/master/src/pages/romulus/index.tsx> to add your newly deployed smart contracts to the interface.

## Optional: Redeploy the smart contracts

If you are unhappy with the parameters you deployed the Romulus smart contracts with, updating any of the parameters should generate a new address. If a new address is not generated, try updating the `SALT` key in the `.env` file.
