Pyth Core upgrade July 31, 2026. Every Core user will need an API Key. Learn more →
Feed updates
Equity.US.SKHYV/USDremovedCrypto.NEX/USDremovedCrypto.HWUSD/USDC.RRremovedCrypto.USDU/USDremovedCrypto.SHYPE/HYPE.RRremovedCrypto.GOLD/USDremovedCrypto.4/USDremovedCrypto.WVLP/USDT.RRremovedCrypto.THBILL/USDC.RRremovedCrypto.BUCKET.USDB/USDremovedCrypto.WHLP/USDC.RRremovedCrypto.VKHYPE/KHYPE.RRremovedCrypto.URANUS/USDremovedCrypto.UP/USDremoved
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.