An issue in the Epoch Manager smart contract resulted in the Mento Reserve receiving less CELO than intended during epoch reward distributions since the L2 migration earlier this year. While no user, validator, or cUSD funds were ever at risk, this bug caused the CELO portion of the Mento Reserve to fall below its expected reserve ratio. Critically, the Mento Reserve has remained over collateralized by a factor greater than 2, in addition to being collateralized 1:1 with other stablecoins.
During epoch reward processing, the Epoch Manager contract uses the cUSD/CELO exchange rate to determine how much CELO to send to the Mento Reserve when minting cUSD to pay validators (aka rpc node operators). A bug in this logic inverted the numerator and denominator, resulting in an undervaluation of CELO transfers to the reserve. Over time, this led to an accumulated shortfall of CELO in the reserve. All other reward and payment flows, including validator and governance distributions, functioned as intended.
To fully resolve the issue, this governance proposal will execute two main actions:
These actions require no user action and will not cause any network downtime.
Based on on-chain epoch data (up to date as of October 9, 2025), here’s what happened:
This proposal requests governance approval to transfer 4,152,769.047528 CELO from the CeloUnreleasedTreasury to the Mento Reserve to cover the calculated shortfall.
This proposal includes the following on-chain changes:
[
{
"contract": "Registry",
"function": "setAddressFor",
"args": [
"EpochManager",
"0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972"
],
"value": "0",
"description": "Registry: EpochManager -> 0xD533Ca259b330c7A88f74E000a3FaEa2d63B7972"
},
{
"contract": "CeloUnreleasedTreasury",
"function": "release",
"args": ["0x9380fA34Fd9e4Fd14c06305fd7B6199089eD4eb9", "4152769047528496500000000"],
"value": "0",
"description": "CeloUnreleasedTreasury: release 4152769.0475284965 CELO to 0x9380fA34Fd9e4Fd14c06305fd7B6199089eD4eb9"
},
{
"contract": "Registry",
"function": "setAddressFor",
"args": [
"EpochManager",
"0xF424B5e85B290b66aC20f8A9EAB75E25a526725E"
],
"value": "0",
"description": "Registry: EpochManager -> 0xF424B5e85B290b66aC20f8A9EAB75E25a526725E"
}
]
Verification of all epoch-level data is available in this Dune query: https://dune.com/queries/5847731