Hello everyone,
To improve the accuracy of Pyth’s WTI and Brent price feeds, we’re making changes to how these feeds are supported.
What’s Changing?
Until now, WTI and Brent price feeds were offered as rolling contracts. For example, WTI1M/USD would always reflect the price of the next expiring WTI futures contract.
However, because each publisher may roll from one contract to the next at slightly different times, this setup introduced minor noise in the aggregated price.
The Solution: Contract-Specific Price Feeds
To solve this and deliver more accurate prices, we’re moving to explicit contract-based feeds, each tied to a specific expiry date.
The following new feeds are now (or soon will be) available:
WTIQ5/USD— expires 22 July 2025WTIU5/USD— expires 20 August 2025WTIV5/USD— expires 22 September 2025 (will go live as volume grows)BRENTU5/USD— expires 31 July 2025BRENTV5/USD— expires 29 August 2025BRENTX5/USD— expires 30 September 2025 (will go live as volume grows)
We aim to always have the three next expiring contracts live at any given time.
Action Required
If you’re currently using any of the following feeds:
WTI1M/USD,WTI2M/USD,WTI3M/USDBRENT1M/USD,BRENT2M/USD,BRENT3M/USD
You will need to migrate to the new structure, as we plan to deprecate these rolling feeds on August 1st, 2025.
With the new model, you’ll need to manually rotate the price feed monthly if you want to continuously use the most liquid, next-expiring contract.
Example: WTI Feed Roll
- Until 22 July 2025 → use
WTIQ5/USD - Before market close on 22 July → switch to
WTIU5/USD - Continue this process monthly as each contract nears expiry.
We know the auto-rolling feeds offered a smoother UX. We plan to reintroduce synthetic rolling feeds in the future, but this will require some engineering work and may take time.
Meanwhile, if anything is unclear or you have questions, please let us know below.