# Finalize Mento Governance Transition and return Celo to the Community

**URL:** <https://forum.celo.org/t/finalize-mento-governance-transition-and-return-celo-to-the-community/9526>\
**Category:** Governance\
**Tags:** mento, technical\
**Created:** [November 27, 2024, 11:15am UTC](https://forum.celo.org/t/finalize-mento-governance-transition-and-return-celo-to-the-community/9526 "2024-11-27T11:15:35Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![bowd](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.celo.org/bowd/32/368_2.png) [@bowd](https://forum.celo.org/u/bowd)\
**Post date:** [November 27, 2024, 11:15am UTC](https://forum.celo.org/t/finalize-mento-governance-transition-and-return-celo-to-the-community/9526/1 "2024-11-27T11:15:35Z")

</div>

Hello everyone!

It’s been a while. We wanted to take our time and do this right and we’re now ready to finalise the Mento Governance transition. It was ratified in [CGP#180 “Mento Spin-off and Launch of the MENTO token”](https://mondo.celo.org/governance/cgp-139), when the Celo Community approved the transfer of governance over the Mento Protocol (smart contract, reserve, etc.) from CELO to MENTO token holders, and through the on-chain proposal gave birth to the MENTO Token and the Mento Governance infrastructure.  
Since then we’ve been running tests to ensure that everything works as expected, and recently passed our first Mento Governance Proposal!  
This CGP finalizez the ownership transition of all Mento Protocol contracts to Mento Governance and the return of 82,406,987 CELO to the community fund, as previously agreed in [CGP#79](https://mondo.celo.org/governance/cgp-79).

Completing this handover will initiate the next phase of the Mento protocol. It will enable Mento Governance to operate independently, reducing the governance burden on Celo Governance while simultaneously enabling Mento to accelerate its growth. The increased pace of launching new Mento stablecoins and rising adoption of Mento will see many opportunities for existing and new Celo stakeholders to benefit from and participate in the Mento protocol.

As with previous proposals, the Celo community will have the opportunity to verify these transactions. In preparation for the upcoming CGP, we have done the following:

- Tested the proposal on Alfajores
- Simulated the proposal on a fork of Celo Mainnet, in addition to running tests against the fork

The transactions that will be in the upcoming CGP will be broken down into the following sections, noted here with transaction indices in brackets:

1. **Return of CELO to the Celo Community (0-10)**
2. **Configure secondary Reserve addresses (11-13)**
3. **Transfer Ownership of Mento Stable Tokens contracts (14-28)**
4. **Transfer Ownership of Mento V2 contracts (29-40)**
5. **Transfer Ownership of legacy Mento V1 contracts (41-48)**
6. **Transfer Ownership of the Mento Governance Factory (49)**

Before we dive deep into each section and transaction, we recommend you have `celocli` set up to follow along. For the tech savvy, you can find everything we are describing here in our [deployment tooling repository](https://github.com/mento-protocol/mento-deployment/blob/main/script/upgrades/eXOF/eXOF.sol) as code. For verifying that addresses included in the proposal are correct, please refer to the Appendix at the bottom for some handy tips.

## 1. **Return of CELO to the Celo Community**

This includes all the transactions related to returning the 82,406,987 CELO to the Celo community. In order to achieve this, the CELO will be transferred to a new Custody Reserve contract, which will enable the community to control the timing of future CELO withdrawals. In addition, 20M CELO will be withdrawn from the contract in this CGP and sent to Celo Governance, according to the 20/62 split suggested by the CeloPG Stewards based on anticipated ecosystem spending.

**TX#0 - initialize the Custody Reserve Proxy.** This proxy contract was [deployed and verified](https://celoscan.io/address/0x9d65E69aC940dCB469fd7C46368C1e094250a400) ahead of this proposal. Immediately after, ownership of the proxy contract was [transferred to governance](https://celoscan.io/tx/0x45cd445b3f88e57ffdf8d9d2787550c487d93f2cfc204c5c2bc2757f1957d087).

- Verify the new custody **ReserveProxy** address
- Verify the **ReserveProxy** implementation address
  - Should be the implementation address of the [current Reserve contract](https://celoscan.io/address/0x9380fA34Fd9e4Fd14c06305fd7B6199089eD4eb9)

- Verify the initialization parameters for the new custody reserve proxy are correct:
  - **registryAddress** : well-known registry address
  - **\_tobinTaxStalenessThreshold:** not relevant \*\*\*\*for the custody reserve, but uses the same value as the main Reserve
  - **\_spendingRatioForCelo:** 100%, spender can fully drain the reserve. The number is a **Fixidity** float – a number with 24 decimals, i.e. 1 is written as 1e24
  - **\_frozenGold:** set to zero
  - **\_frozenDays:** set to zero
  - **\_assetAllocationSymbols:** not relevant for the custody reserve, but set to `cGLD` as in the main Reserve
  - **\_assetAllocationWeights:** not relevant for the custody reserve, but set to `100%` , as a Fixidity float
  - **\_tobinTax** and **\_tobinTaxReserveRatio:** 0 in both cases, disabled
  - **\_collateralAssets:** the CELO token address
  - **\_collateralAssetDailySpendingRatios** 100%, same logic as **\_spendingRatioForCelo** above

**TX#1 - add spender to the new custody reserve.** The address that is allowed to spend money from the reserve contract.

- Verify the **custody**  **ReserveProxy** address
- Verify the arguments:
  - **spender:** Celo Governance address

**TX#2 - add other reserve address to the new custody reserve.** The address where CELO can be sent after the spender initiates a transfer.

- Verify the **custody**  **ReserveProxy** address
- Verify the arguments:
  - **reserveAddress:** Celo Governance address

**TX3 - add spender to the main reserve.** To temporarily allow governance to pull funds from the existing reserve contract.

- Verify the custody **ReserveProxy** address
- Verify the arguments:
  - **spender:** Celo Governance address

**TX#4 - add other reserve address to the main reserve.** To be able to transfer CELO from the main reserve to the new custody reserve.

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **reserveAddress:** the custody reserve address

**TX#5 - set 100% CELO spending ratio on the main reserve.** To be able to transfer most of the CELO from the main reserve on a single transaction.

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **\_collateralAssets:** an array of addresses. In this case, the CELO token address
  - **collateralAssetDailySpendingRatios:** an array of Fixidity floats. In this case, 1e24 for 100%

**TX#6 - transfer ~82.4M CELO from the main reserve to the custody reserve.**

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **collateralAsset:** the CELO token address
  - **to:** the custody reserve address
  - **value:** the full return amount as per the CGP, `82,406,987` CELO

**TX#7 - transfer 20M CELO from the custody reserve to Celo governance, a** s per the agreed initial 20M/62M split.

- Verify the **custody ReserveProxy** address
- Verify the arguments:
  - **collateralAsset:** the CELO token address
  - **to:** the Celo governance address
  - **value:** `20M` CELO

**TX8 - remove Celo governance spender from the main reserve** , after temporarily adding it in TX#3.

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **spender:** Celo Governance address

**TX#9 - remove custody reserve as other reserve address from the main reserve** , after temporarily adding it in TX#4.

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **reserveAddress:** the custody reserve address
  - **index:** index of the address in the _otherReserveAddresses_ array\*\*.\*\* Should be the length of the array as the address was just added a few txs above.

**TX#10 - transfer ownership of the custody reserve to Mento Governance** , so that the Mento community can provide assistance to the Celo community in case of an emergency.

- Verify the **custody**  **ReserveProxy** address
- Verify the arguments:
  - **recipient:** the Mento Governance address (TimeLockController proxy contract).

## 2. C **onfigure secondary Reserve addresses**

This includes removing the old Anchorage custodian addresses which were previously configured as “other reserve address” on the main reserve contract, and replacing them with the Mento Reserve Foundation multisig instead.

**TX#11 - remove first Anchorage address as “_other reserve address_” on the main reserve** :

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **reserveAddress:** the first Anchorage custodian address
  - **index:** index of the address in the _otherReserveAddresses_ array\*\*.\*\* In this case 0, to remove from the front of the array\*\*.\*\*

**TX#12 - remove second Anchorage address as “_other reserve address_” on the main reserve:**

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **reserveAddress:** the second Anchorage custodian address
  - **index:** index of the address in the _otherReserveAddresses_ array\*\*.\*\* In this case 0, to remove from the front of the array\*\*.\*\*

**TX#13 - add the Mento Reserve Foundation multisig address as “_other reserve address_” on the main reserve:**

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **reserveAddress:** the Mento Labs multisig address

## 3. **Ownership transfer of Mento Stable Tokens contracts**

All Stable Token contracts are behind Celo legacy proxies so the following transactions are grouped two by two: for each token we call `_transferOwnership` on the Proxy and `transferOwnership` on the implementation.

**TX#14, TX#15 - Transfer ownership of the cUSD proxy and token contract**

- Verify the **StableTokenProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#16, TX#17 - Transfer ownership of the cEUR proxy and token contract**

- Verify the **StableTokenEURProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#18, TX#19 - Transfer ownership of the cBRL proxy and token contract**

- Verify the **StableTokenBRLProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#20, TX#21 - Transfer ownership of the eXOF proxy and token contract**

- Verify the **StableTokenXOFProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#22, TX#23 - Transfer ownership of the cKES proxy and token contract**

- Verify the **StableTokenKESProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#24, TX#25 - Transfer ownership of the PUSO proxy and token contract**

- Verify the **StableTokenPHPProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#26, TX#27 - Transfer ownership of the cCOP proxy and token contract**

- Verify the **StableTokenCOPProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#28 - transfer ownership of the shared StableTokenV2 implementation contract**

- Verify the **StableTokenV2** implementation address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

## 4. **Transfer Ownership of Mento V2 contracts**

**TX#29, TX#30 - Transfer ownership of the BrokerProxy contract**

- Verify the **BrokerProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#31 - Transfer ownership of the Broker contract**

- Verify the **Broker** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#32, TX#33 - Transfer ownership of the BiPoolManagerProxy contract**

- Verify the **BiPoolManagerProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#34 - Transfer ownership of the BiPoolManager contract**

- Verify the **BiPoolManager** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#35, TX#36 - Transfer ownership of the ReserveProxy contract**

- Verify the **ReserveProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#37 - Transfer ownership of the Reserve contract**

- Verify the **Reserve** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#38 - Transfer ownership of the BreakerBox contract**

- Verify the **BreakerBox** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#39 - Transfer ownership of the MedianDeltaBreaker contract**

- Verify the **MedianDeltaBreaker** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#40 - Transfer ownership of the ValueDeltaBreaker contract**

- Verify the **ValueDeltaBreaker** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

## 5. **Transfer Ownership of legacy Mento V1 contracts**

**TX#41, TX#42 - Transfer ownership of the ExchangeProxy contract**

- Verify the **ExchangeProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#43, TX#44 - Transfer ownership of the ExchangeEURProxy contract**

- Verify the **ExchangeEURProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#45, TX#46 - Transfer ownership of the ExchangeBRLProxy contract**

- Verify the **ExchangeBRLProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

**TX#47, TX#48 - Transfer ownership of the GrandaMentoProxy contract**

- Verify the **GrandaMentoProxy** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

## **6. Transfer Ownership of the Mento Governance Factory**

**TX#49 - Transfer ownership of the GovernanceFactory contract**

- Verify the **GovernanceFactory** address
- Verify the arguments:
  - **newOwner:** the Mento Governance address

## Appendix: Verifying an address

Verifying that an address in the CGP is correct requires a few different strategies depending on what that address is (see the [mento docs](https://docs.mento.org/mento/protocol-concepts/governance/verification) for some additional information). Here are common situations:

- Is it a Mento contract/Mento Labs address?
  - You can check check the contract addresses, as well as EOAs and MultiSigs from Mento Labs in the docs: [Addresses - Mento Protocol](https://docs.mento.org/mento/developers/deployments/addresses)
    - You can also query the Registry contract on the target network
    - For contracts, bytecode verification can be done by following the instructions here: [Verification | Mento Protocol](https://docs.mento.org/mento/developers/deployments/verification)

- Is it a Core Celo contract?
  - Yes:
    - Core contracts such as CELO Token ( **GoldToken** ) or **Governance** can be verified in the Celo Registry

---

<div class="post-metadata">

**Author:** ![bowd](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.celo.org/bowd/32/368_2.png) [@bowd](https://forum.celo.org/u/bowd)\
**Post date:** [November 29, 2024, 1:00pm UTC](https://forum.celo.org/t/finalize-mento-governance-transition-and-return-celo-to-the-community/9526/2 "2024-11-29T13:00:08Z")

</div>

> [@bowd](#):
>
> **TX#13 - add the Mento Reserve Foundation multisig address as “_other reserve address_” on the main reserve:**
> 
> - Verify the **ReserveProxy** address
> - Verify the arguments:
> - **reserveAddress:** the Mento Labs multisig address

There’s a typo here, it’s not the `Mento Labs multisig` but the Mento Reserve multisig, it can be verified at [reserve.mento.org](http://reserve.mento.org) as one of the additional Reserve addresses.

---

<div class="post-metadata">

**Author:** ![0xj4an-work](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.celo.org/0xj4an-work/32/9565_2.png) [@0xj4an-work](https://forum.celo.org/u/0xj4an-work)\
**Post date:** [November 30, 2024, 6:04am UTC](https://forum.celo.org/t/finalize-mento-governance-transition-and-return-celo-to-the-community/9526/3 "2024-11-30T06:04:30Z")

</div>

# GM Celo Community 💛

Mento Proposal is alive on Celo Mondo for vote, don’t miss the opportunity to cast your vote.

## 📃 Summary of the proposal

- **Proposal Number:** 196
- **Proposal Tittle:** Enabling MENTO Governance
- **Celo Mondo Link:** [Here](https://mondo.celo.org/governance/cgp-156)
- **Stage:** Voting 🗳
- **Stage Ends in:** Wednesday, December 4th 2024, 16:32 UTC

---

<div class="post-metadata">

**Author:** ![n-mlabs](https://avatars.discourse-cdn.com/v4/letter/n/ec9cab/32.png) [@n-mlabs](https://forum.celo.org/u/n-mlabs)\
**Post date:** [July 2, 2025, 1:04pm UTC](https://forum.celo.org/t/finalize-mento-governance-transition-and-return-celo-to-the-community/9526/4 "2025-07-02T13:04:04Z")

</div>

Hello everyone,

We want to revive this old thread as we are getting ready to re-submit the governance proposal to transition Mento into its own governance. Since the last time we submitted the proposal on-chain, we have taken steps to further increase the decentralization of the Mento protocol, for example by giving the Celo community a [50M veMENTO allocation](https://forum.celo.org/t/empowering-the-celo-community-with-mento-governance-rights/10122) which can already be used for voting in future Mento governance proposals, as well as further distributing MENTO tokens to other community members.

We look forward to your support in the upcoming on-chain CGP and remain available to the community in case of any questions or points of discussion.

---

<div class="post-metadata">

**Author:** ![n-mlabs](https://avatars.discourse-cdn.com/v4/letter/n/ec9cab/32.png) [@n-mlabs](https://forum.celo.org/u/n-mlabs)\
**Post date:** [July 9, 2025, 11:21am UTC](https://forum.celo.org/t/finalize-mento-governance-transition-and-return-celo-to-the-community/9526/5 "2025-07-09T11:21:31Z")

</div>

Hey all! The [Mento Governance transition CGP](https://mondo.celo.org/governance/cgp-156) voting phase ends in about 5 hours from now. We appreciate all the votes so far!

I wanted to share the updated verification steps of the proposal, since a few transactions were added to the original CGP upon re-submission, including the ownership transfer of recently launched tokens (cGHS, cGBP, cAUD, cCAD, cZAR, cCHF, cNGN, and cJPY) as well as the sorted oracles contract ownership.

Please find the updated verification steps on the following Notion page:

> **[The AI workspace that works for you. | Notion](https://www.notion.so/mentolabs/CGP-156-Verification-Steps-22ba2148cc5c80d3b31cceb63de18154)**
>
> A tool that connects everyday work into one space. It gives you and your teams AI tools—search, writing, note-taking—inside an all-in-one, flexible workspace.
