> For the complete documentation index, see [llms.txt](https://docs.mangrove.exchange/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mangrove.exchange/dev/protocol/technical-references/periphery-contracts/mgvoracle.md).

# MgvOracle

As described in the section Governance -> Global Variables, Mangrove governance can configure Mangrove to use a separate Monitor Contract as a gas price and density oracle.

The `MgvOracle` contract is a simple contract that implements the Monitor interface and can be deployed by Mangrove governance to serve as a Monitor Contract. It serves as a bridge to an off-chain oracle for gas price and density. When deployed, this contract is configured with the address of a specified permissioned sender that is allowed to call the external functions to update the values for gas price and density that the oracle reports to Mangrove.

```solidity
function setGasPrice(uint gasPrice) external
function setDensity96X32(uint density96X32) external
```

A method is also provided for governance to change the permissioned sender.

```solidity
function setMutator(address mutator_) external
```

### Source Code

The [`MgvOracle` source](https://github.com/mangrovedao/mangrove-core/blob/2ae172805fd8b309c30b2dc877dba66245abbb3e/src/periphery/MgvOracle.sol) is available.
