Skip to content

Commit

Permalink
feat: add Mento spin-off and launch proposal (#443)
Browse files Browse the repository at this point in the history
* feat: add Mento spin-off and launch proposal

* fix: rename it to 138 because there's already a PR for 137

* fix: change wording on scope

* fix: typo and CGP number

* fix: fix list of owned contracts
  • Loading branch information
bowd authored May 23, 2024
1 parent 67c88c9 commit 9145036
Show file tree
Hide file tree
Showing 2 changed files with 325 additions and 0 deletions.
296 changes: 296 additions & 0 deletions CGPs/cgp-0139.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,296 @@
---
cgp: 139
title: Mento Spin-off and Launch of the MENTO token
date-created: 2024-05-23
author: "Bogdan Dumitru <[email protected]>, Roman Croessmann <[email protected]>, Markus Franke <[email protected]>, Oleksiy Novykov <[email protected]>"
status: DRAFT
discussions-to: https://forum.celo.org/t/mento-spin-off-and-launch-of-the-mento-token/7747
governance-proposal-id:
date-executed:
---

## Summary

This proposal aims to spin-off Mento Governance and launch a MENTO token to further support the development of the
Mento Protocol. The MENTO token breakdown, which includes an airdrop to the Celo Community Treasury, CELO holders,
and early Mento stablecoin users, is included. If this proposal passes, Mento Governance will be established.
In the future, a follow-up proposal will be submitted to hand over the control of all Mento smart contracts
from Celo Governance to Mento Governance.

## Motivation

In recent years, Mento has cemented its role as the largest Celo-native project, with four stablecoins issued
and over 2.4M active users, as of March 2024. To further propel Mento towards its vision of onboarding a billion
Web3 users through adopting digital assets worldwide, it is essential to further evolve the Mento Protocol and
establish an ecosystem of Mento builders, dApps, and service providers.

This CGP proposes to launch the MENTO token and separate Mento Governance to accelerate the development and
increase the resilience of the Mento Protocol. This transition will allow Mento stakeholders to focus even
more on its development and create pathways toward self-sustainability. The community discussion around the
launch of a Mento-specific governance token was kicked off in Nov. 2023 (link 3), and the topic has already
been discussed in previous community calls.

If Celo Governance votes in favor of this proposal, the MENTO token will be deployed and distributed to
stakeholders of the Celo and Mento ecosystems.

## High-Level Design Components

1. MENTO Token: An ERC-20 token on Celo is the core of the system. It can be locked in exchange for
veMENTO to participate in voting on Mento Governance proposals.
2. veMENTO locker: A locking contract where users can lock their MENTO tokens, in exchange for Mento
Governance tokens (veMENTO).
3. Governor: A contract that allows any user to create new Mento Governance proposals.
4. Governance Executor: The main governance contract serves two functions:
- Executing queued proposals that have passed governance voting
- Community treasury that stores the governance allocation for future initiatives. It is time-locked
to allow the Mento Watchdog Multisig to veto proposals that are deemed malicious. It will also hold
Mento Community Treasury funds.
- Emission Contract: A contract that emits MENTO tokens from its allocation to the Mento Governance
Executor on a predefined schedule. It follows an exponential decay function, which means that new
emissions will get smaller and smaller until the entire allocation has been emitted around the year 2060.
5. Governance Factory: The smart contract that deploys the entire governance system with all relevant contracts.
It is used only once to set up the system and can’t be used again after governance exists.
6. Watchdog Multisig: a multisig that consists of technical community members responsible for making sure that
the execution code of the proposals matches their description (described further in this proposal below).
7. Proxy Admin: An admin contract owned by the Mento Governance Executor that can upgrade the following contracts in the system:
- Mento Governance Executor
- Mento Governor
- Mento Token
- Emissions contract
- veMENTO Locking

## Governance Scope

The Mento Protocol consists of the following elements:

- A suite of Smart Contracts deployed on the Celo Mainnet:
- StableTokenXXXProxy (for all Mento Stables)
- ReserveProxy
- BrokerProxy
- BiPoolManagerProxy
- BreakerBoxProxy
- MedianDeltaBreaker
- ValueDeltaBreaker
- Reserve funds which are held on Celo, Ethereum, and Bitcoin blockchains in a variety of ways:
- Custodians;
- Multi-signature wallets;
- LP tokens on Reserve positions in various pools;
- ReserveSpenderMultisig rights

Mento Governance will receive control over all of the pieces mentioned above as part of the governance transition process.
This proposal will only create the token and governance system, so we can test it before we fully transition.

## Initial Token distribution

MENTO token will have a maximum total supply of 1,000,000,000 (one billion) tokens.
Overall distribution was defined by the Mento Community and will be as follows:

- 45% for: Mento Community Treasury (5% upfront, 40% emissions over a schedule)
- 30% for: Mento Labs Team, Investors, Future Hires, and Advisors
- 10% for: Mento Liquidity Support
- 5% for: Airdrop to Celo and Mento Stable Asset users
- 5% for: Airdrop to Celo Community Treasury
- 5% for: Mento Reserve Safety fund

### Mento Community Treasury

Purpose: The Mento community can spend tokens from the treasury to foster the Mento Platform’s development.
The tokens can be spent on grants, liquidity incentivization programs, etc. The decision to spend tokens from
the Treasury is always subject to Governance. To incorporate the will of the community the
Mento Protocol Foundation will be set up.

Distribution: 450M tokens (45% of total supply) with 50M available at Genesis Block. The tokens will be
emitted to the Treasury via exponential decay with a half-life of 10 years.

Voting rights: No

### Mento Labs Team, Investors, Future Hires, Advisors

Purpose: Reward core contributors, investors, and advisors. Get the best talent to contribute to the Mento Protocol in the future.

Distribution: 300M tokens (30% of total supply). Existing Mento Labs employees, investors, and advisors will receive their MENTO tokens split into two parts:

1. veMENTO portion (25% of the allocation)
To seed voting power to the team and investors, 25% of the allocation will be distributed as veMENTO locked for
1 year starting at the token distribution event. The allocation will allow team members to vote from day one using delegation.
However, the beneficiary will only get full control of the lock after their cliff period has passed.
2. MENTO portion (75% of the allocation) 75% as MENTO with a 1-year delay and 3 years linear vesting starting
at the token distribution event. This means the plan will kick in 1 year later, and linearly unlock for the subsequent years.

Voting rights: Yes, with the veMENTO portion.

### Mento Liquidity Support

Purpose: The purpose of the Mento Liquidity Support is to support the Mento ecosystem through funding mission-aligned initiatives.
The focus of this allocation is to support the liquidity of the MENTO token and the Mento Platform stablecoins.

Distribution: 100M (10% of fully diluted supply)

Voting rights: No

### Initial Airdrop to CELO holders and Mento stable assets users

Purpose: Reward existing community members and users for their past contributions to developing and using Mento stable assets and the Celo ecosystem.

Distribution: 50M tokens (5% of the fully diluted supply). Eligible address owners can claim their allocation,
which they will receive as a veMENTO locked for 2 years with linear unlock. Further details about the eligibility criteria are provided below.

Voting rights: Yes.

### Airdrop to Celo Community Treasury

Purpose: Long-term incentive alignment between the Celo and Mento communities.

Distribution: 50M (5% of fully diluted supply) with a 2-year delay followed by a 6-year linear vesting period via Hedgey 5 token vesting platform.

Voting rights: No

### Mento Reserve Safety Fund

Purpose: An allocation to the Mento Reserve will be used as stablecoin collateral in the worst-case scenario of a loss-of-value
in primary collateral (USDC, DAI, etc.) through credit default events, hacks, etc.

Distribution: 50M (5% of fully diluted supply)

Voting rights: No

## Transferability

The MENTO token will be non-transferable at the genesis block (token and governance deployment block).
Holders can claim their allocation, lock it as veMENTO, and participate in governance, but not transfer the token.
At some point in the future, when certain milestones to be decided by the community are reached,
the transferability of the token can be turned on through a Mento governance proposal.

## What’s in it for CELO stakeholders

Having been incubated primarily by the Celo ecosystem, Mento recognizes this support and aims to reward CELO stakeholders
to keep them involved and continue to have a strong relationship with Celo.

A total of 100M (10% of the total supply) Mento Tokens, equivalent to 16.67% of the initial supply, is allocated for
Celo stakeholders between the Celo Community Treasury allocation and the CELO holders and cStables user airdrop.

### Airdrop to Celo Community Treasury

At Genesis, 50M MENTO will be allocated to the Celo Community Treasury (unlocking over 8 years).
This allocation aims to provide the Celo ecosystem with long-term upside and influence in the Mento Protocol.
It can also be used to support cStable and other Mento stable token utilities further on the Celo network.

### CELO Holders and cStables user airdrop eligibility criteria

The distribution of the MENTO token will start with an airdrop to CELO holders and early cStable users.
Mento recognizes that their early support has been pivotal for the protocol, and these users are well-suited to govern it,
given the history of Mento Improvement Proposals that have been voted on in Celo Governance.

50M MENTO will be distributed in the initial airdrop to users based on the following criteria:

- Staked at least $10 (US dollars) worth of CELO (amount based on avg. over 16 monthly snapshots,
taken between November 15th, 2022, and February 15th, 2024);
- Held more than $10 (US dollars) worth of any of Mento’s decentralized stable assets (amount based on avg. over 16 monthly snapshots,
taken between November 15th, 2022, and February 15th, 2024);
- Transacted in any of Mento’s decentralized stable assets with a volume greater than $100 (US dollars)
(volume calculated as the cumulative sum over the 16 monthly snapshots between November 15th, 2022, and February 15th, 2024).

Claimable amounts are concave (think square root) in the balances of locked CELO and Mento stablecoins, as well as the Mento stablecoin volumes:

- 50% allocated to locked CELO holders
- 50% allocated to Mento stablecoin holders

The airdrop period will last for 8 weeks. After it finishes, an unclaimed part of community allocation will be returned to Mento Treasury for future airdrops.

## Watchdog

At the start, the Mento protocol will establish a watchdog group to oversee the protocol’s governance process and ensure technical
parts of the governance proposals (execution code) match what’s written in the proposal.

The group is controlled by a 3 out of 9 SAFE multi-signature wallet (multisig) with a special right to veto
(meaning to cancel the execution of) any governance proposal within 48 hours after it passes.

The following criteria are considered for the first proposal of watchdog members. A watchdog committee member should:

- be mission-aligned with Mento Protocol and Celo community;
- be an active contributor to one of the projects in the Celo ecosystem;
- have a technical background, given that the one and only responsibility is to review the proposal’s execution code.

List of proposed members of the Mento watchdog committee:

- Bogdan Dumitru (CTO, Mento Labs).
- Bayo Sodimu (Head of Engineering, Mento Labs).
- Phillip Paetz (Software Engineer, Mento Labs).
- Baransel Tekin (Software Engineer, Mento Labs).
- Luuk Weber (Founder, Kolektivo Labs).
- Martin Chrzanowski (Software Engineer, cLabs).
- Martin Volpe (Software Engineer, cLabs).
- Silas Boyd-Wiziker (CTO, Valora).
- Marek Olszewski (CTO, cLabs).

The watchdog multisig was deployed with address 0xE6951C4176aaB41097C6f5fE11e9c515B7108acd.

## Proposal details

### Mento Protocol Governance Creation

The spin-off and Governance transition plan will be executed in two steps:

1. This proposal spins up the MENTO token, governance, locking, and airdrop contracts.
2. A follow-up proposal will come later, and governance rights will be transferred over the above-mentioned contracts.

This allows the system to spin up and allows us to test governance in isolation before executing the full transfer.

The governance spin-off, which is the subject of this proposal, happens through the factory contract, which can be found [here](https://github.com/mento-protocol/mento-core/blob/develop/contracts/governance/GovernanceFactory.sol).

Through the `createGovernance` method, the factory contract does the following:

1. Deploys an OpenZeppelin ProxyAdmin.
2. Deploys the Mento Token 2 which during construction mints the initial allocation following the distribution above.
3. Deploys the Emissions contract which will be responsible for the minting of the MENTO tokens to the Treasury according to the minting schedule.
4. Deploys the Airdrop contract 3 which community members will be able to redeem against.
5. Deploys the Locking contract which will be used to lock MENTO for veMENTO to participate in the Governance.
6. Deploys the OpenZeppelin TimelockController which will manage the timelock for the Governance proposals and ultimately act as the ProxyAdmin controller and treasury for the protocol.
7. Deploys the MentoGovernor, an instance of OpenZeppelin’s Governor configured for our needs. It will use the TimelockController from step (6).
8. Sets ownership of all the contracts deployed in steps 1-5 to the TimelockController from step (6).

### Mento Protocol Foundation Setup

To support the on-chain Mento Protocol DAO a Mento Protocol Foundation is being established which is supposed to support Mento ecosystem
growth - a foundation that is helping to execute the will of the community. To finance this foundation during times in which the MENTO
token is non-transferable, this proposal suggests that a loan of 800k USD and a maturity of 1 year is provided by the Mento Reserve to
the Mento Protocol Foundation. The loan amount is to be financed from the BTC and ETH part of the Mento Reserve and will be used to cover
entity setup costs, legal costs as well as early foundation expenses required for fostering Mento ecosystem growth. It is expected that
the foundation will receive funding from the Mento Community Fund going forward to repay the loan and to cover future expenses.

## Verification

The whole deployment code has been audited, intent can be verified by reading the code. There is a single function call in the proposal:

**createGovernance**:

- watchdogMultisig\_: address == 0xE6951C4176aaB41097C6f5fE11e9c515B7108acd
- airgrabRoot: bytes32 can be verified here: https://github.com/mento-protocol/mento-deployment/blob/main/data/airgrab.celo.root.json
- fractalSigner: address can be verified here: https://docs.developer.fractal.id/legacy-integrations/fractal-credentials-api#environments
- allocationParams: MentoAllocationParams: should match the allocation description in the proposal.

There are additional parameters that are staticially defined in the GovernanceFactory contract:

```
// Airgrab configuration
uint32 public constant AIRGRAB_LOCK_SLOPE = 104; // Slope duration for the airgrabbed tokens in weeks
uint32 public constant AIRGRAB_LOCK_CLIFF = 0; // Cliff duration for the airgrabbed tokens in weeks
uint256 public constant AIRGRAB_DURATION = 10 weeks;
uint256 public constant FRACTAL_MAX_AGE = 180 days; // Maximum age of the kyc for the airgrab
uint256 public airgrabEnds;
// Governance Timelock configuration
uint256 public constant GOVERNANCE_TIMELOCK_DELAY = 2 days;
// Governor configuration
uint256 public constant GOVERNOR_VOTING_DELAY = 0; // Delay time in blocks between proposal creation and the start of voting.
uint256 public constant GOVERNOR_VOTING_PERIOD = 120_960; // Voting period in blocks for the governor (7 days in blocks CELO)
uint256 public constant GOVERNOR_PROPOSAL_THRESHOLD = 10_000e18;
uint256 public constant GOVERNOR_QUORUM = 2; // Quorum percentage for the governor
```

## Risk

This proposal doesn't change anything in the Celo Protocol, it just seeds Mento Protocol Governance, therefore it currently poses no risk.
After the proposal passes and the airdrop starts, we will do more testing to ensure that the governance system works as intended and reaches
equilibrium before transfering Mento Protocol ownership as described in the Governance scope section.
29 changes: 29 additions & 0 deletions CGPs/cgp-0139/mainnet.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[
{
"contract": "GovernanceFactory",
"address": "0xee6CE2dbe788dFC38b8F583Da86cB9caf2C8cF5A",
"function": "createGovernance",
"args": [
"0xE6951C4176aaB41097C6f5fE11e9c515B7108acd",
"0x1c598bb5ad0b99c0f07235c1bd7327884bf9a74c9454c3d2a937fbe8336d071b",
"0xacD08d6714ADba531beFF582e6FD5DA1AFD6bc65",
[
"50",
"50",
[
"0x655133d8E90F8190ed5c1F0f3710F602800C0150",
"0xA74Ac93de1A209957E62391B01E09161277a9ffC",
"0x3468D23A0B1aB3Ab9A537813166A8f7ff1947014",
"0x87647780180B8f55980C7D3fFeFe08a9B29e9aE1"
],
[
"300",
"100",
"50",
"50"
]
]
],
"value": "0"
}
]

0 comments on commit 9145036

Please sign in to comment.