# Commodity Prices

## Commodity Price Oracle

Lumia provides real-time commodity price feeds through an on-chain oracle system, allowing developers to access current market prices for various commodities including precious metals, energy products, and agricultural goods.

### Overview

The commodity price oracle provides real-time price data for:

* Precious Metals (XAU/Gold, XAG/Silver, XPT/Platinum)
* Energy (Brent Oil, Natural Gas)
* Agricultural (Wheat, Corn, Sugar, Milk, Barley)
* Industrial Metals (Copper, Aluminum)

### How to Use

#### Contract Details

**Mainnet**

* Oracle Contract Address: `0x146447574c02deB3B802A1d4c9447CB7648aA56D`
* Sender Address: `0x1ad5b38c108feca340398538e45c4e3abcce7401`

**Testnet**

* Oracle Contract Address: `0x146447574c02deB3B802A1d4c9447CB7648aA56D`
* Sender Address: `0x682e737dcd1d679cb0dbfd34b137038480d45ead`

#### Integration Example

Here's a simple example showing how to query commodity prices in your smart contracts:

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

interface IOracle {
    function readAsUint256ByKey(
        address sender,
        bytes32 key
    ) external view returns (int256);
}

contract CommodityPriceConsumer {
    IOracle public oracle;

    constructor(address _oracleAddress) {
        oracle = IOracle(_oracleAddress);
    }

    function getPrice(address senderAddress, bytes32 dataKey) external view returns (int256) {
        return oracle.readAsUint256ByKey(senderAddress, dataKey);
    }
}
```

#### Available Commodity Keys

Each commodity has a unique key for price queries. Here are the available commodities and their corresponding keys:

**Precious Metals**

* **Gold (XAU/USD)**
  * Mainnet Key: `0x1A4CF14646A65ED92B0F79291D4B537D4D634DAF4AE7BDEA7F95E16AFC106676`
  * Testnet Key: `0x8A8DF5C5476AD99D933701968710B3E18D16864A1D08F10916F09ED75E638DBB`
  * Data Source: investing.com/currencies/xau-usd
* **Silver (XAG/USD)**
  * Mainnet Key: `0xBB2F960A195C867A42E2AA5340AF4B3C62E789C0568FBBCE1925417E0FC62024`
  * Testnet Key: `0xF6743B90FD9E84F36C8E4D4D44A1642360BEFEBB48804CA013A613447930D311`
  * Data Source: investing.com/currencies/xag-usd

**Energy**

* **Brent Oil**
  * Mainnet Key: `0x08250CF04C3D466C046942A4C0968A955202155F43CADB5699065CC1CD966BA7`
  * Testnet Key: `0x694848F20CA37676DF8E14670A53CD521332673EAFEC2F6735D0D3064891BE82`
  * Data Source: investing.com/commodities/brent-oil
* **Natural Gas (NG)**
  * Mainnet Key: `0x598B52FA996FB56351A0B86CEFB0D12210D046DA2372044271F3495FC36081C9`
  * Testnet Key: `0x5AADF097C2159913CAA090D92F4947F7423FBC2404F6F6CDE21382E81B499198`
  * Data Source: investing.com/commodities/natural-gas

**Industrial Metals**

* **Copper (XCU)**
  * Mainnet Key: `0x3C66B438005B1823E9544AC4BCA1BF1F3F70E40F75EBCD0F6E2DB3E968EF46E5`
  * Testnet Key: `0xEB93D2CB02A06E6CE522A66C58A90300E2A41B1226EED095141AD0B8B759BCF7`
  * Data Source: fxempire.com/commodities/copper
* **Aluminum (ALU)**
  * Mainnet Key: `0xC746629AF536F44CA9EB4CEC98D18FE161700538200FABD786095A8D4894E0C2`
  * Testnet Key: `0xE5CE8F97E49B8C566DB4B97E61B0D89E6C08ED27D014A26C657D134C0A16199E`
  * Data Source: markets.businessinsider.com/commodities/aluminum-price

<details>

<summary>All keys available on Mainnet and Testnet</summary>

**💎 Precious Metals**

### Gold (XAU/USD)

* **Data Source:** investing.com/currencies/xau-usd
* **Mainnet Key:** `0x1A4CF14646A65ED92B0F79291D4B537D4D634DAF4AE7BDEA7F95E16AFC106676`
* **Testnet Key:** `0x8A8DF5C5476AD99D933701968710B3E18D16864A1D08F10916F09ED75E638DBB`

### Silver (XAG/USD)

* **Data Source:** investing.com/currencies/xag-usd
* **Mainnet Key:** `0xBB2F960A195C867A42E2AA5340AF4B3C62E789C0568FBBCE1925417E0FC62024`
* **Testnet Key:** `0xF6743B90FD9E84F36C8E4D4D44A1642360BEFEBB48804CA013A613447930D311`

### Platinum (XPT/USD)

* **Data Source:** investing.com/currencies/xpt-usd
* **Mainnet Key:** `0x6B3C26B2E54C43133545F29AD5EFA218C33B971ECFA3D416BBE124CCE36E3C23`
* **Testnet Key:** `0x7F37D17D21F56D6F66D6A24DEC201D9E71E687FD4532EADF0B0C5E97C486135B`

**⚡ Energy**

### Brent Oil

* **Data Source:** investing.com/commodities/brent-oil
* **Mainnet Key:** `0x08250CF04C3D466C046942A4C0968A955202155F43CADB5699065CC1CD966BA7`
* **Testnet Key:** `0x694848F20CA37676DF8E14670A53CD521332673EAFEC2F6735D0D3064891BE82`

### Crude Oil (CL1)

* **Data Source:** marketwatch.com/investing/future/cl.1
* **Mainnet Key:** `0x439A675FE33C23051E2204B402F68B3D91A1CAD75671D04508F74336BAF85C58`
* **Testnet Key:** `0x24507204DC7AFD2FE0DE6DE7E2332C2337C21CBC4EFCAF19B76AF78C2875E9A8`

### Natural Gas (NG)

* **Data Source:** investing.com/commodities/natural-gas
* **Mainnet Key:** `0x598B52FA996FB56351A0B86CEFB0D12210D046DA2372044271F3495FC36081C9`
* **Testnet Key:** `0x5AADF097C2159913CAA090D92F4947F7423FBC2404F6F6CDE21382E81B499198`

**🌾 Agricultural**

### Soybeans (S1)

* **Data Source:** marketwatch.com/investing/future/s.1
* **Mainnet Key:** `0xB9A774F78B3BBDD683742DDE0B16358520EDD8AB27E647957C86F8BE64F7714E`
* **Testnet Key:** `0x0580E41830824C4E6A5D33AE323333CAABD928DC86A460AB56BC4C671951ABDE`

### Sugar (SB1)

* **Data Source:** marketwatch.com/investing/future/sb.1
* **Mainnet Key:** `0x54E8C6E777BC98A2524B5796C806D60CF679F095A1E6EF7BD1115386504130AA`
* **Testnet Key:** `0x95EF16A79150121C34CF3CCCF617868B3CB328390645017CC8824184317258F5`

### Wheat

* **Data Source:** markets.businessinsider.com/commodities/wheat-price
* **Mainnet Key:** `0xD44B850488E674DB7B52C7BA53F62952AAA0F7736DDEC400EFC926125E6CE631`
* **Testnet Key:** `0x841CB2F3A7D406F8DA0C35D33EF75B568748D6E16572B5FAFBC9D0EA02903125`

### Milk

* **Data Source:** markets.businessinsider.com/commodities/milk-price
* **Mainnet Key:** `0xC8B9A93B99CAC793A3E9BC0D3F0C148E8BB74C2BA17ACF338AC9B68C4D3245A3`
* **Testnet Key:** `0x4B7629AE8E616818C1BE5893CBD393AC2F03F9C3C826891C7B33F481B65498BE`

### Corn (C1)

* **Data Source:** marketwatch.com/investing/future/c.1
* **Mainnet Key:** `0x1BFEC616411F9068149BDBB93E09A3382BD7CF1DD64087C2233904729DBD22BA`
* **Testnet Key:** `0xF00B0505C993C9E8D602A2F620F38F3C3372A964504EDF087798BB2DE2326810`

### Barley (NBLc1)

* **Data Source:** investing.com/commodities/ncdex-barley-futures
* **Mainnet Key:** `0x750C1DE2A1D628DFDC0D1B03CF4071B7CB7DBC83043DECC61F0297565074CABB`
* **Testnet Key:** `0x39C7337A5313B996E08A34446AB8A6A005830AC1BAED6AD1C529027528223222`
* **Note:** Price converted from INR to USD

### Hard Red Winter Wheat (HRN00)

* **Data Source:** marketwatch.com/investing/future/hrn00
* **Mainnet Key:** `0xB683174E54D13CD5CE8F3775A79CE55ECA20060D76A9FADA1962BFCA2D70E810`
* **Testnet Key:** `0x17FEB2E491F2D704607BD2CE00313564A732091B4844AE7C460532C2F1B1EEF3`

🏭 Industrial Metals

### Copper (XCU)

* **Data Source:** fxempire.com/commodities/copper
* **Mainnet Key:** `0x3C66B438005B1823E9544AC4BCA1BF1F3F70E40F75EBCD0F6E2DB3E968EF46E5`
* **Testnet Key:** `0xEB93D2CB02A06E6CE522A66C58A90300E2A41B1226EED095141AD0B8B759BCF7`

### Aluminum (ALU)

* **Data Source:** markets.businessinsider.com/commodities/aluminum-price
* **Mainnet Key:** `0xC746629AF536F44CA9EB4CEC98D18FE161700538200FABD786095A8D4894E0C2`
* **Testnet Key:** `0xE5CE8F97E49B8C566DB4B97E61B0D89E6C08ED27D014A26C657D134C0A16199E`

</details>

#### Testing the Oracle

You can test the oracle integration using the Neeedle UI:

**Mainnet:** [Neeedle UI Mainnet Link](https://neeedle.org/?abiUrl=https%3A%2F%2Fgithub.com%2Fhorizonx-tech%2Fchainsight-management-oracle%2Fblob%2Fmain%2Fabi%2FIOracle.json\&chainId=994873017\&contractAddress=0x146447574c02deB3B802A1d4c9447CB7648aA56D\&rpcUrl=https%3A%2F%2Fmainnet-rpc.lumia.org)

**Testnet:** [Neeedle UI Testnet Link](https://neeedle.org/?abiUrl=https%3A%2F%2Fgithub.com%2Fhorizonx-tech%2Fchainsight-management-oracle%2Fblob%2Fmain%2Fabi%2FIOracle.json\&chainId=1952959480\&contractAddress=0x146447574c02deB3B802A1d4c9447CB7648aA56D\&rpcUrl=https%3A%2F%2Ftestnet-rpc.lumia.org)

To test:

1. Connect your wallet to the appropriate network (Mainnet or Testnet)
2. Use the `readAsUint256ByKey()` function
3. Input the sender address and commodity key
4. Click "Read" to get the current price

#### Best Practices

1. **Error Handling**: Always implement proper error handling when interacting with the oracle
2. **Gas Optimization**: Cache oracle responses when possible instead of querying frequently
3. **Validation**: Verify returned prices are within expected ranges before using them
4. **Update Frequency**: Consider the update frequency of the price feeds when designing your application

#### Technical Considerations

* Price feeds are updated regularly but may have slight delays
* Check and confirm decimal places for each feed
* Prices are sourced from reliable market data providers
* The oracle contract is non-upgradeable for security

### Support

For technical support or questions about the commodity price oracle:

* Review the contract on [Explorer](https://explorer.lumia.org/address/0x146447574c02deB3B802A1d4c9447CB7648aA56D)


---

# 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.lumia.org/build/oracles/commodity-prices.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.
