How to Dispute
Last updated
Was this helpful?
Last updated
Was this helpful?
Note that before beginning a dispute, the proper amount of TRB tokens must be approved to the contract to cover the .
On chains other than Ethereum Mainnet you'll have to manually call the approve
function using the network's as the spender. If a block explorer doesn't exist for your chain yet use Remix:
First you'll need to monitor the transactions that reporters submit on chain and identify a data report that you'd like to dispute. You can do that using our , the the directly.
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 beginDispute
function Input the queryId
(with a 0x at the beginning), and input the timestamp
. Finally, click write and confirm the transaction.
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:
To dispute a value, go to the governance contract and run:
To get the current dispute fee:
To get the number of openDisputes on an ID:
To open a dispute on a previously disputed value (challenge the result of the vote), simply run beginDispute
with 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:
Next, locate the correct depending on which chain the data resides on.
Approve the governance contract for the dispute fee (1/10th of the stake amount). Locate the . Call the approve
function using the network's as the spender.
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.