Where is the price oracle?

AFAIK Dfinity uses a price oracle to calculate conversion rate of ICP to Cycles.

Can someone reveal more details about this price oracle? Is it also a canister? If yes, then how can other application/canister access this info? If not, what is the mechanism that relay price info into the network?

Not sure who to ask, cc @ililic

AFAIK the mechanism to decide for the price of one ICP is through proposals and voting. Every x minutes there is a proposal regarding the market value of one ICP in SDR, people then vote on if this price is correct. If the vote is passed, the conversion rate is updated.

#ExchangeRate: All proposals provide information in “real time” about the market value of ICP, as measured by an International Monetary Fund (IMF) Special Drawing Right (SDR) , which allows the NNS to convert ICP to cycles (which power computation) at a rate that keeps their real-world cost constant. Because proposals on this topic are very frequent, they have a shorter voting period, and votes on this topic are not included in the voting history of the neuron.



Good to know. Do you also know how to access the latest ExchangeRate on IC?

1 Like

Currently, this is happening every 10 minutes, with the price coming from a single exchange (usually Coinbase, Binance, or Huobi). It would be good to have to have more information on:

  • Is this price spot, TWAP, or VWAP? On what pair?
  • How is that single exchange determined? Is it highest volume over the past 10 minute window?
  • Is 10 minutes fast enough to use as a true price oracle? During periods of high market volatility, this too slow. Can this frequency be increased?
  • How is this process running? I assume a single cronjob on one instance for now, but can it be decentralized?
1 Like

Does this price oracle process run in the IC network or outside?