Doot Overview

Implementation, Interface, Mina L1 Smart Contracts, NPM package.

To begin, we should describe the distinctions between the different parts of "Doot" and how they are interconnected :

  • Implementation - The backbone of Doot. These are various CRON jobs that on regular intervals perform various important tasks to keep everything running smoothly and make the protocol autonomous.

    1. Fetches and Updates : A decent collection of data providers are called to get the price of an asset. These are first filtered and later aggregated to generate the final price which is published for use by anyone.

    2. Historical Prices : Every 30 minutes, the current price of each tracked asset is aggregated in a .JSON file which is later uploaded to IPFS. The file contains historical information relevant upto the past 24 Hrs.

    3. Mina L1 Contract : Every 2 hours a similar .JSON (as above) is generated which is first pinned to IPFS and finally the IPFS CID as well a Merkle Map Root is pushed on-chain. This Merkle Map contains asset->price information.

NOTE : At a lot of places we will see the price multiplied by a factor of 10**10. This normalization is done since Fields and UInt64 which are native to the Mina Protocol can't handle decimals.

Last updated