Oracles
Last updated
Last updated
These pages describe the technical details of Oracles on Mento. For an introduction to Oracles and how they work on Mento, please see Oracles in the Protocol Concepts section.
Mento Oracles consist of two technical parts: An on-chain smart contract and off-chain clients. In the following pages, you will learn about these two components as well as about the research behind choosing price sources for the oracles to report.
Each oracle rate, internally called rate feed, is uniquely identified by a rateFeedID
. It is used when adding oracle rates to the SortedOracle smart contract by calling the addOracle
function in a Celo governance proposal:
For CELO/cStable
rate feeds, the unique identifier is the address of the stable token. Since this doesn't work for more than one pair including the same stable token, which was not initially planned, a new formula is used to create unique rate feed identifiers for rate feeds other than CELO/cStable
.
These identifiers can be derived using the following formula:
For example, USDCUSD
inserted gives the following formula:
An example can be found in this Celo Governance Proposal.