How to Dispute
- In order to dispute you'll need to collect the queryId and time from the data in the transaction log.
- Connect your wallet with the button “connect to web3”. Under the
beginDisputefunction Input the
queryId(with a 0x at the beginning), and input the
timestamp. Finally, click write and confirm the transaction.
The dispute fee amount is variable depending on the reporter stake amount. The getDisputeFee function can be read from the Tellor governance contract on each chain. A full list of contracts can be found here.
Here is some additional explanation of how disputes work on a contract level:
Every time a new value is submitted to the oracle contract, the following event is emitted:
bytes32 indexed _queryId,
uint256 indexed _time,
address indexed _reporter
To dispute a value, go to the governance contract and run:
* @dev Helps initialize a dispute by assigning it a disputeId
* @param _queryId being disputed
* @param _timestamp being disputed
function beginDispute(bytes32 _queryId, uint256 _timestamp) external;
To get the current dispute fee:
* @dev Get the latest dispute fee
function getDisputeFee() public view returns (uint256);
To get the number of openDisputes on an ID:
* @dev Returns the number of open disputes for a specific query ID
* @param _queryId is the ID of a specific data feed
* @return uint256 of the number of open disputes for the query ID
function getOpenDisputesOnId(bytes32 _queryId)
To open a dispute on a previously disputed value (challenge the result of the vote), simply run
beginDisputewith the same parameters (same timestamp/queryID). Note that the disputeFee will need to be doubled from the previous round, and the new round must begin after the previous vote is tallied, but before it is executed (24 hour window).
To determine whether a given value has already been disputed:
* @dev Returns whether a given value is disputed
* @param _queryId unique ID of the data feed
* @param _timestamp timestamp of the value
* @return bool whether the value is disputed
function isInDispute(bytes32 _queryId, uint256 _timestamp);