> For the complete documentation index, see [llms.txt](https://docs.aftermath.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aftermath.finance/perpetuals/architecture/market-specifications/24-5-commodity-markets.md).

# 24/5 Commodity Markets

Commodity-referenced perpetuals track raw spot commodity prices via oracle feeds that reflect real-world exchange pricing. Because the underlying commodity markets are not open around the clock, these perpetuals follow the trading session schedule of the relevant exchange.

### Instrument Specifications

| Market      | Ticker         | Description                                                                                                                                                             | Settlement | Max Leverage | MMR    | Liq. Leverage | Margin Mode | Oracle                                                                        |
| ----------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------ | ------ | ------------- | ----------- | ----------------------------------------------------------------------------- |
| Silver      | XAG/USD:USDC   | Tracks the value of 1 troy ounce of silver.                                                                                                                             | USDC       | 10×          | 5%     | 20×           | Isolated    | [Stork (XAG)](https://data.stork.network/assets/XAGUSD)                       |
| WTI         | WTI/USD:USDC   | Tracks the price of West Texas Intermediate crude oil. See Oracle Roll section below.                                                                                   | USDC       | 3×           | 16.67% | 6×            | Isolated    | [Pyth (WTI)](https://pythdata.app/explore/Commodities.WTIJ6%2FUSD)            |
| Natural Gas | NG/USD:USDC    | Tracks the price of Henry Hub natural gas. See Oracle Roll section below.                                                                                               | USDC       | 3×           | 16.67% | 6×            | Isolated    | [Pyth (NATGAS)](https://pythdata.app/explore/Commodities.NGDJ6%2FUSD)         |
| AF100       | AF100/USD:USDC | Tracks a modified market-cap index of 100 of the largest, most actively traded non-financial equities listed on a premier U.S. exchange. See Oracle Roll section below. | USDC       | 10×          | 5%     | 20×           | Isolated    | [Pyth (NMM6)](https://insights.pyth.network/price-feeds/Equity.US.NMM6%2FUSD) |

**MMR** (Maintenance Margin Ratio) is the minimum margin a position must hold before liquidation; **Liq. Leverage** = 1 / MMR. Liquidations are partial — only the amount needed to restore the position to max initial leverage is closed. See [Margin](/perpetuals/architecture/margin.md) and [Liquidations](/perpetuals/architecture/liquidations.md). Parameters are governance-configurable with an on-chain time delay.

### Session Hours

| Parameter                  | Value                                                                                                                                                                                      |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **External Session Hours** | Sunday 6:00 PM ET to Friday 5:00 PM ET                                                                                                                                                     |
| **Internal Session Hours** | Daily maintenance window: Monday–Thursday, 5:00–6:00 PM ET (market paused). Trading also follows [CME holiday closures](https://www.cmegroup.com/tools-information/holiday-calendar.html). |

### Oracle Roll (WTI)

WTI crude oil perpetuals are priced from dated futures contracts (e.g., CLJ6 for March 2026, CLK6 for April 2026). When a front-month contract approaches expiry, a discrete oracle switch from one feed to another would create a predictable price cliff that is trivially front-runnable.

Aftermath solves this with a continuous linear blend computed on-chain every block:

#### Blend Formula

$$
P\_{blended} = w\_{front\_month} ⋅
P\_{front\_month} + w\_{next\_month} ⋅ P\_{next\_month}
$$

Where w₁ + w₂ = 1 always. The weights are determined by d, the number of calendar days until front-month expiry:

* If d > 10: w₁ = 1.0 (100% front month, no blending yet)
* If d ≤ 3: w₁ = 0.0 (100% next month, roll complete)
* Otherwise: w₁ = (d − 3) / (10 − 3); i.e., linear interpolation over 7 days

The roll window begins 10 days before expiry and completes 3 days before expiry. This provides a smooth, continuous transition with no front-runnable price discontinuity.

#### Key Properties

* Computed **on-chain** every transaction
* Eliminates the front-running opportunity present in discrete oracle switches
* Both raw Pyth feeds are visible on-chain for anyone to verify
* WTI futures roll monthly; the blend activates automatically each cycle

#### Active Pyth Feeds

The oracle consumes two Pyth Network feeds simultaneously:

* Front month: the nearest-expiry WTI futures contract (e.g., CLJ6/USD for March 2026)
* Next month: the following contract (e.g., CLK6/USD for April 2026)

After each roll completes (d ≤ 3), the next-month contract becomes the new front month, and a new next-month feed is activated for the subsequent expiry. Contract symbols follow CME convention: F=Jan, G=Feb, H=Mar, J=Apr, K=May, M=Jun, N=Jul, Q=Aug, U=Sep, V=Oct, X=Nov, Z=Dec.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.aftermath.finance/perpetuals/architecture/market-specifications/24-5-commodity-markets.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
