# Contracts Overview

The Fetch contracts are modular, each serving their own functions. Together, they comprise the core functionality of the Fetch Oracle system.

### Oracle <a href="#oracle" id="oracle"></a>

The **Oracle** contract handles staking, reporting, and reading data. Accounts stake FETCH to the Oracle to become data reporters. Users then read data feeds from this contract.

This contract also handles slashing reporter stakes and removing data when called by the Governance contract.

### AutoPay <a href="#autopay" id="autopay"></a>

The **AutoPay** contract handles payments to reporters for submitting data. Users can set up and fund a schedule for reporting rewards (tips) using this contract, or just add a one time tip.

### Governance

The **Governance** contract handles creating, voting on, and executing disputes on the Oracle contract.

After a dispute is resolved, this contract sends the dispute fee and slashed stake to the appropriate parties.

### Token

The **Token** contract is tasked with handling the functionality of the FETCH token and also handles minting time-based rewards to the Oracle contract on PulseChain.


---

# 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/the-basics/contracts-overview.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.
