Price Sources
Last updated
Last updated
Mento Oracle Clients aggregate data from multiple configured centralized cryptocurrency exchanges. They then calculate a volume-weighted average market price across exchanges.
For the robustness of the protocol, it is important to choose reliable exchange rates. Researching which rates to use usually starts with getting an overview of what trading pairs for a given exchange rate exist. Time series characteristics like price stability, traded volume, and order book depth can often be analyzed via coinmarketcap.com or tradingview.com. It is also helpful to check for the stability of these measures over time and check for wash trading, which can usually be approximated by a market maker's opinion. If necessary, more extensive data can be bought from for example Tardis.
The oracle client uses a maximum deviation from the average parameter to determine which exchange rates to include in the volume-weighted mean calculation. The goal of researching a set of exchange rates is to have one with a low and stable deviation from its average over time.
New exchange rates or pairs for existing rates can be added with a PR in the celo-monorepo deployment helm charts:
If a new exchange is not yet supported by the oracle client, a new exchange adapter needs to be added like in this example PR. New currency pairs need to be added like in this example PR.
After adding the necessary features and configurations, the client can be tested by adjusting the developer price sources with the new price sources and running the application locally. A more technical documentation about running the client application locally can be found in the repository readme files.