# Internal Oracles (/docs/builders/mainnet-internal-oracles)

## Oracle Addresses

| Contract    | Address                                                                                                                                                                                                                                                 |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| RISExOracle | <span className="inline-flex items-center">[`0x8fC4D0Cf74cdF595254cB763d4C05D38Df0e9503`](https://explorer.risechain.com/address/0x8fC4D0Cf74cdF595254cB763d4C05D38Df0e9503)<CopyAddress address="0x8fC4D0Cf74cdF595254cB763d4C05D38Df0e9503" /></span> |
| RISExStork  | <span className="inline-flex items-center">[`0x76A559C716c5B93b9d743e08D9E9f23f96a4f975`](https://explorer.risechain.com/address/0x76A559C716c5B93b9d743e08D9E9f23f96a4f975)<CopyAddress address="0x76A559C716c5B93b9d743e08D9E9f23f96a4f975" /></span> |

See [Deployments](/docs/risex/contracts/deployments) for the full list of RISEx mainnet contracts.

## Usage

Read index/mark prices for a market directly from `RISExOracle`:

```solidity
interface IRISExOracle {
    function getIndexPrice(uint16 marketId) external view returns (uint256);
    function getMarkPrice(uint16 marketId) external view returns (uint256);
}

IRISExOracle oracle = IRISExOracle(0x8fC4D0Cf74cdF595254cB763d4C05D38Df0e9503);
uint256 btcIndex = oracle.getIndexPrice(1); // marketId 1 = BTC/USDC
```

See [Market Specifications](/docs/risex/trading/markets) for `marketId` per symbol, and the [RISExOracle ABI](/docs/risex/contracts/contract-abi/risex-oracle) for the full interface.
