# Disputing

{% hint style="success" %}
The easiest way to dispute data submitted to Fetch Oracle is to use the [Fetch Dashboard](https://testnet.fetchoracle.com/#/how-to-dispute).&#x20;
{% endhint %}

{% hint style="warning" %}
Before beginning a dispute, the proper amount of FETCH **tokens must be approved** to the contract to cover the dispute fee.  If you use the Fetch Dashboard for the dispute, the token approval is preformed as part of the in-app process.
{% endhint %}

{% hint style="warning" %} <mark style="color:red;">**Each Disputer is responsible for the data they're challenging**</mark><mark style="color:red;">.</mark>

Make sure to check FIRST, especially using the DVM, which feed 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:

<https://t.me/fetchoracle>
{% endhint %}

For the DVM to dispute, you need to use the `-d` option. You also need to specify an account that will be used to pay the dispute fee and initiate the dispute.

```bash
cli -d -w 120 -a myacct1
```

The command above would start the DVM in dispute mode, with the specified account monitoring the chain every 120s.\
\
If you don't specify an account with the `-a` option, type 'n' when asked if you want to '*run alerts only*?' and select one of your accounts from the list.

{% hint style="warning" %}
You can not dispute if you have not set an account to use when starting the DVM
{% endhint %}

DVM will start with the message *"...Now with auto-disputing!..."* when in dispute mode.

{% hint style="info" %}
There will be no changes appearing in the terminal window until there's a new report submitted to Fetch. After that, some calculations may appear and a table with detailed info on the report will take place.
{% endhint %}

### Dispute Mechanism <a href="#dispute-mechanism" id="dispute-mechanism"></a>

Any party can challenge data submissions of any reporters when a value is placed on-chain. A challenger must submit a dispute fee to each challenge. Once a challenge is submitted, 1 stake of the reporter challenged is set aside for the duration of the dispute period.

FETCH holders vote on the validity of the reported value. All FETCH holders have an incentive to maintain an honest Oracle and can vote on the dispute.&#x20;

A proper submission is one that corresponds to a valid query around the time of the submission of the value. The subjectivity of the validity is a feature and corresponds to “correct” being up to the interpretation of the Fetch community.

<https://t.me/fetchoracle>

### Why Disputing Is Important <a href="#why-its-important" id="why-its-important"></a>

The security of Fetch comes through a minimum deposit of FETCH tokens that acts as a bond or stake in order for reporters to participate in providing data.&#x20;

The reporters risk losing these stakes if they submit data that is successfully disputed.

### What This Means For Getting Data <a href="#what-this-means-for-getting-data" id="what-this-means-for-getting-data"></a>

On a blockchain, security and time can not be separated. You can't have instant finality and still be secure. This is particularly true for oracle data.

Fetch Oracle data values can be used as soon as the data is placed on-chain, however *the longer a user waits once the data is submitted on chain, the more probable it is to remain,* and therefore be secure thanks to the economic incentives to dispute invalid information.&#x20;

Values are able to be disputed and taken off-chain for the same time frame as the reporter lock (12 hours).

## Dispute Using the Fetch Dashboard

The easiest way to dispute data submitted to the Fetch Oracle is to use the [Dispute](https://testnet.fetchoracle.com/#/how-to-dispute) feature in the Fetch Dashboard. &#x20;

This will manage approving the tokens for the governance contract to spend to cover the fees, transfer the correct fee, and call the required function appropriate for the current state of the dispute.

## Dispute Fees

The dispute fee amount is variable depending on the current minimum stake amount. The `getDisputeFee` function can be read from the Fetch governance contract.&#x20;

{% hint style="info" %}
The `disputeFee` starts at 1/10th of the `stakeAmount`, and doubles with each voting round or with each open dispute on a given QueryID. The dispute fee is capped at the stakeAmount.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fetchoracle.com/votes-and-disputes/disputing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
