Oracles are a critical component of Mento's stability mechanism on Celo, enabling the protocol to facilitate exchanges between Mento collateral and stable assets at accurate market prices. These price feeds are essential for Mento V2's circuit breaker architecture, which safeguards the protocol against potential manipulation attacks and extreme market volatility.
Currently, Mento Labs operates several oracle clients that provide price data to SortedOracles. This arrangement was necessary at the protocol's launch, as no external oracle providers were available when Celo mainnet went live. However, the operational complexity of maintaining these oracles has increased significantly with Mento V2's expansion, which introduced more stable tokens and corresponding exchange pools.
The Oracle landscape on Celo has improved significantly since then, and Chainlink and Redstone now provide high-quality feeds that all projects across the network can use. Redstone has been an oracle provider to the Mento protocol since late 2023, and Chainlink has been used on the majority of Mento's latest stable token launches, such as $cCOP, $PUSO, $cZAR, etc.
This proposal outlines the migration of Mento V2's oracle infrastructure to external providers Chainlink and Redstone. This migration will enhance the protocol's decentralization while reducing operational complexity and maintenance burden. In addition, since this proposal requires destroying and recreating most of the existing Mento Pools, we will also take this opportunity to review and optimize certain parameters, specifically spread and bucket sizes on some of them.
Although the contract operations involved in this proposal are relatively straightforward, the complete migration would exceed the current 30M block gas limit. To address this technical constraint, we will split the migration into two sequential on-chain proposals:
The first proposal will focus on removing the current whitelisted addresses from SortedOracles. This initial step contains the majority of the migration transactions.
The second proposal will complete the migration by whitelisting the new Chainlink relayers, configuring report expiry times, and recreating the pools with the new parameters.
The proposal includes the following key changes:
Redstone to remain as the single oracle provider on all the pools that it currently reports to:
cUSD/CELOcEUR/CELOcREAL/CELOcUSD/USDCcEUR/USDCcREAL/USDCcUSD/axlUSDCcEUR/axlUSDCcREAL/axlUSDCcEUR/axlEUROCChainlink to become the single oracle provider for the rest of the rate feeds that Mento Labs' oracle clients currently provide:
CELO/eXOF
CELO/cKES
EUROC/XOF
EUR/XOF
USDT/USD
KES/USD
In addition to remaining as the oracle providers for the pools which are already chainlink operated (e.g. cUSD/PUSO, cUSD/cCOP, cUSD/cJPY, etc).
Migration Process for each existing ratefeed:
Part 1
Part 2
minimumReports to 1referenceRateResetFrequency to 6 minutesspread and stablePoolResetSizePlease refer to the forum post for a detailed description of the proposed changes.
Please refer to the forum post for a detailed description of verification steps
This migration comes with inherent risks related to data quality, uptime considerations, and potential technical difficulties. However, we have conducted extensive historical data analysis comparing all oracle providers, which confirms that Chainlink and Redstone's data quality and report frequency/uptime meet our requirements. Additionally, Mento V2's on-chain circuit breaker architecture provides an additional layer of protection against price discrepancies.