# 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.
