Introduction to DVM
Monitoring and disputing values in Fetch Oracle.
Last updated
Monitoring and disputing values in Fetch Oracle.
Last updated
In order for the Fetch Oracle to provide accurate, quality data, the data submitted to the Oracle must be monitored, validated and — when the legitimacy of data is in question — disputed.
The easiest way to dispute a value submitted to the Fetch Oracle is to use the .
Each Disputer is responsible for the action they're taking.
Make sure to check FIRST, especially using the DVM, which feeds you are disputing and what sources you are using as truth!
Disputing data that is later deemed it was VALID by the community may lose you your dispute fee.
It's highly beneficial and recommended to check within the community of reporters which feeds and sources are being accepted as truth and what are the thresholds of tolerance for monitoring data submitted.
You can get more info on all the above at the official telegram group:
A DVM will automatically monitor values submitted to the Fetch Oracle.
The DVM is a CLI dashboard and text alerts app for disputable values reported to Fetch oracles. The DVM constantly monitors Fetch data submissions and compares them to the data available in Telliot-feeds feeds.
By default, DVM will monitor for PLS prices and dispute them if the percentage difference against its source is greater than 10%. (if initialized with -d
flag)
Once a disputable value is picked up by the DVM, it sends an alert to a specified Discord webhook.
The next set of pages in this section detail how to install, configure, run and maintain your own DVM.
The DVM has an Auto-Disputer. The Auto-Disputer is a complex event listener for any EVM chain, and it specifically listens for NewReport
events from Fetch Oracle that the user wants to monitor.
When the Auto-Disputer receives new NewReport
events, it parses the reported value from the log, then compares the reported value to the trusted value from the Fetch reporter reference implementation (which is Telliot).
In order to auto-dispute, users need to define what a "disputable value" is. To do this, users can set "thresholds" for feeds they want to monitor. Thresholds in the Auto-Disputer serve to set cutoffs between a healthy value and a disputable value. Users can pick from three types of thresholds: range, percentage, and equality.
Range: if the difference between the reported value and the Telliot value is greater than or equal to a set amount, dispute!
For example, if the reported value is 250, and the Telliot value is 1000, and the monitoring threshold is a range of 500, then the difference is 750 (it is >= to the range amount of 500). This means the value is disputable!
Therefore, a reported value of 501, in this case, would not be disputable.
The smaller the range, the more strict the threshold.
Percentage: if the difference between the Telliot value and the reported value is greater than or equal to a set percentage of the Telliot value, dispute!
For example, if the reported value is 250, and the Telliot value is 1,000, and the percentage threshold is 0.50 (50%), then the percent difference is 75% of the Telliot value (1,000), and the value is disputable! Therefore, a reported value of 750, in this case, would not be disputable.
The smaller the percentage, the more strict the threshold.
Equality: if there is any difference between the reported value and the Telliot value, send a dispute!
For example, if the reported value is "0xabc123", and the Telliot value is "0xabc1234", then the value is disputable!
However, to prevent false disputes due to checksummed addresses, the equality threshold sees "0xABC" and "0xabc" as equal.
Installation instructions can be found on the .