The Governance module contains several important contracts:
- UbeToken: governance token; based on Uni
- ReleaseUbe: non-transferrable token that releases Ube at an even rate over a period of 156 weeks. Based on Uni to keep track of voting power.
- 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.
Timelocks are a way to ensure that actions of protocol governance can be viewed ahead of time. We plan on launching a dashboard soon to allow users to view the actions of any of these timelocks.
- Community -- Receives a share of mined tokens. Used to fund community projects.
- Executive -- Controls most functions of Ubeswap; owner of most important contracts, notably:
- The protocol fee switch in UbeswapFactory
- The allocation of rewards between different liquidity mining pools (PoolManager)
- The allocation of ReleaseUbe
- CeloReserve -- Receives a share of mined tokens. Will be given to the Celo Reserve.
Currently, all Timelocks are admined by a wallet at
0x489AAc7Cb9A3B233e4a289Ec92284C8d83d49c6f. We plan on transitioning this as soon as possible to a multisig, then to a DAO.
The UbeToken is the governance token of Ubeswap, used to vote on the direction of the protocol. Currently the voting mechanism is not live-- we plan on shipping it and a portal some time in Q3.
The token is largely based on the Uni token; however, we have decomposed the contract into a series of contracts inherited from each other:
- VotingToken -- a VotingPower that exposes a name, symbol, decimals, and balanceOf. Cannot be transferred.
This decomposition was performed in order to easily allow ReleaseUbe to use the same logic without being transferrable.
We were careful to preserve whitespace on
TransferrableVotingToken, as the code was copy/pasted from Uni.
ReleaseUbe allows for early Ube team members and early supporters to vote on proposals while still preventing those team members from selling their tokens early.
ReleaseUbe's release schedule distributes 25.7M UBE under the following schedule:
- Start time: Thu Apr 22 2021 14:00:00 GMT+0000
- End time: Thu Apr 18 2024 14:00:00 GMT+0000 (52*3 weeks later)
The following contracts make up ReleaseUbe:
There are three steps to the deployment:
This script ends up sending tokens to the Operator for the Operator to later distribute to the farming pools.
The actual allocation of ReleaseUbe will be in a private file, but the holders of ReleaseUbe are viewable on-chain via block explorer.
ReleaseUbe will be allocated before the launch date, and after the launch date, only the Executive timelock can modify the allocation.