Pyth Core upgrade completed successfully on August 26, 2026. Hermes now requires an API Key. Get yours →
Feed updates
Crypto.CARDS/USDwent liveCrypto.AI/NVDAwent liveEquity.US.SIMO/USDwent liveCommodities.Index.TGAS1M/USDaddedEquity.TW.2454/TWDaddedEquity.TW.3231/TWDaddedEquity.TW.2382/TWDaddedEquity.TW.2317/TWDaddedEquity.TW.2330/TWDaddedEquity.US.GTLB/USDaddedEquity.US.PATH/USDaddedCommodities.LCQ6/UScremovedCommodities.BRENTF7/USDwent liveEquity.Index.SAMSUNG/USDwent live
View all
Developer Hub

Why Update Prices

Understand why Pyth pull-oracle integrations must refresh on-chain prices

Pyth uses a pull oracle model. Unlike traditional push oracles that automatically update prices on-chain at regular intervals, Pyth requires users to explicitly update the on-chain price before reading it.

This design offers several advantages:

  • Lower costs: You only pay for price updates when you need them
  • Lower latency: You can fetch the latest price update directly from Pyth's low-latency oracle network and submit it on-chain immediately
  • Flexibility: Different applications can update prices at different frequencies based on their needs

In the pull integration pattern, your contract must:

  1. Accept priceUpdate data from the caller (fetched from Hermes)
  2. Call updatePriceFeeds() to submit this data on-chain before reading prices
  3. Pay a small fee for each update (calculated via getUpdateFee())

If you don't update the price or if the on-chain price becomes too stale, calls to getPriceNoOlderThan() will revert with a StalePrice error. See how to fetch price updates for more details on obtaining price updates.