This documentation is a work in progress!
The protocol needs the live USD denominated price for all Kresko Assets and Collateral Assets. This task is performed by an oracle network. These oracle networks are the off-chain information source for price data to the protocol.
Oracle networks validate and transmit the aggregated price information from multiple reputable data sources to an on-chain contract where it can be consumed by the protocol.
Kresko expects oracles to post prices under the following scenarios:
Report prior to n seconds if the latest retrieved price differs from the current on-chain price by x%, where x is configurable (per asset and per blockchain). For instance, if the retrieved price deviates from the current price by greater than 0.5%, then a new price is expected to be posted.
If there is an unexpected interruption in trading of the asset in conditions such as a stock exchange closing outside of schedule or during a flash crash.
The protocol also needs a boolean value indicating whether the underlying assets market is open for a Kresko Asset. This information is validated and handled by a dedicated market status oracle that is configured separately for each asset.
When the market of the underlying asset for a Kresko Asset is closed, borrowing will be disabled. When the market re-opens, borrowing is automatically enabled.
Assets such as stocks, commodities, and ETFs typically trade on exchanges whose markets trade only during normal market hours. For instance, TSLA listed on NASDAQ trades between 9:30 am and 4 pm (Eastern Time) on weekdays only. It doesn’t trade on weekends or on market holidays.
For crypto assets, price feeds are generally available 24/7 throughout the year.