Context
Oracles are a critical component of Mento’s stability mechanism on Celo. These price feeds enable the protocol to facilitate exchanges between Mento collateral and stable assets at accurate market prices. Furthermore, price data is essential for Mento V2’s circuit breaker architecture, which safeguards the protocol against potential manipulation attacks and extreme market volatility, protecting the reserve collateral.
As many of you know, Mento Labs currently 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. The operational complexity of maintaining these oracles has increased significantly with Mento V2’s expansion, which introduced more stable tokens and corresponding exchange pools.
Along the road, some initiatives were started to provide the opportunity for community members to operate oracle clients, reducing our operational burden and decreasing oracle operator centralization:
- CGP-57: Adding Di Wu as oracle provider
- CGP-67: Enabling T-Systems as an Oracle provider and deploy Oracle payments
- CGP-102: Adding RedStone as an Oracle provider
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.
Currently, Redstone delivers price data for seven feeds used by Mento V2:
- CELO/USD
- CELO/EUR
- CELO/BRL
- USDC/USD
- USDC/EUR
- USDC/BRL
- EUROC/EUR
While Chainlink delivers price data for the majority of Mento’s latest stable tokens launches:
- $PUSO
- $cCOP
- $cGHS
- $cGBP
- $cZAR
- $cCAD
- $cAUD
- $cCHF
- $cNGN
- $cJPY
Because of the above, we propose migrating Mento V2 rate feeds to be solely provided by Chainlink and Redstone.
This means concretely, removing all Mento-operated oracle addresses on-chain, leaving either Chainlink or Redstone as the sole price provider for each feed. We have conducted historical data comparisons between all Oracle providers across all pairs, confirming that the data provided by Chainlink and Redstone matches our expectations in terms of price quality as well as report frequency/uptime. For example, here are the plot comparison plots for CELO/USD and CELO/EUR across all three providers from early this year.
Since this proposal requires destroying and recreating some Mento Pools, we will also take this opportunity to review and optimize certain parameters, specifically spread and bucket sizes. A second forum post prior to submitting this proposal will provide more details on the concrete new values proposed.
Technical details
We propose the following split across providers:
-
Redstone to remain as the single oracle provider on all the pools that it currently reports to:
cUSD/CELO
cEUR/CELO
cREAL/CELO
cUSD/USDC
cEUR/USDC
cREAL/USDC
cUSD/axlUSDC
cEUR/axlUSDC
cREAL/axlUSDC
cEUR/axlEUROC
-
Chainlink 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).
The migration process for each rate feed will follow these steps:
- Remove all Mento Labs oracle addresses from sortedOracles (
sortedOracles.removeOracle
), except for Redstone - Add new Chainlink relayer addresses to pools previously operated by Mento Labs
- Destroy the associated pool (
BiPoolManager.destroyExchange
) - Recreate the pool with updated configuration:
- Set
minimumReports
to1
- Update
referenceRateResetFrequency
to6 minutes
(aligning with recent token launch parameters) - Optionally implement new values for
spread
andstablePoolResetSize
- Set
What’s next
We are excited to complete this migration, as it will enhance Mento Protocol’s decentralization while freeing up significant engineering resources. The current operational complexity of maintaining multiple Oracle clients requires substantial infrastructure and development effort.
A detailed list of transactions included in the proposal, along with comprehensive verification steps for the community, will be provided in a separate forum post before the proposal submission.
Follow-up posts and status updates will be posted in this thread, so stay tuned!