Pyth Network Explained: Pull Oracles, Update Fees, and Stale-Price Risks

Pyth Network is a price-oracle system that lets smart contracts use financial market data. Its defining design choice is the pull model: an application fetches a signed price update off-chain and submits it to the blockchain when a transaction needs that data. This can avoid paying to refresh every feed on a fixed schedule, but it also means an application must handle update delivery, transaction costs, price freshness, and uncertainty deliberately.

For developers and users, a good integration should do more than return a number. It should use the correct feed, reject data that is too old, account for uncertainty, and behave safely when fresh data is unavailable. As of September 30, 2026, Pyth’s documentation also lists Pyth Core update fees at zero across supported networks; the blockchain transaction itself can still cost gas or network fees.

What does Pyth do?

Pyth Core provides price feeds that smart contracts can verify and consume. Pyth says its Core data is supplied by more than 120 first-party providers, including exchanges and market makers, and can be used across more than 100 blockchain ecosystems. A price feed has a unique identifier for a specific pair, such as BTC/USD. An application must select the intended feed ID and the correct Pyth contract for its chain.

A price is not simply a decimal string. Pyth represents it with an integer value, a power-of-ten exponent, a confidence interval, and a publish time. The exponent determines how to scale the integer. The confidence interval describes uncertainty around the reported aggregate; it is not a guarantee that the market price is contained within a particular range. Applications should preserve the feed’s numeric precision and decide how to use its confidence information.

How does a pull oracle work?

In a push-oracle pattern, an off-chain service periodically writes new prices to a blockchain whether or not an application is about to use them. In Pyth’s pull pattern, a caller obtains a recent update from Hermes and supplies it with the transaction that needs the price. The contract verifies and applies the update, then the application reads it.

  1. Choose the feed. Find the canonical feed ID and verify the asset pair and chain’s Pyth contract address.
  2. Fetch update data. Retrieve the requested feed update through Hermes, Pyth’s service for delivering price updates. The current documentation supports REST, streaming, and SDK approaches.
  3. Submit it with the application call. The contract accepts the update data, updates the on-chain state as needed, and reads the feed within the same transaction flow.
  4. Enforce validity rules. Check the feed ID and set a maximum acceptable age. Add application-specific checks for price bounds, confidence, trading status, or other relevant conditions.

This approach lets an application request updates when it needs them and can reduce the cost of maintaining continuously refreshed on-chain state. It also shifts operational responsibility to the caller and application. If the transaction omits update data, uses the wrong feed, or supplies data older than the contract’s threshold, the application may fail or must follow a carefully designed fallback.

What do Pyth update fees cost now?

There are two different costs to keep separate: a Pyth Core update fee and the blockchain’s transaction fee. Pyth’s current-fees documentation, checked September 30, 2026, says the Pyth Core update fee is zero across supported networks and that on mainnet EVM chains passing zero as msg.value is sufficient. It also says integrations that call getUpdateFee() can keep doing so; the method returns the authoritative fee for the chain.

Zero update fee does not mean a transaction is free. The caller still pays the network’s gas or transaction fee, and the final amount may depend on chain conditions and transaction complexity. On Solana, for example, an application posts a price-update account and includes the relevant Solana transaction costs; account handling can affect rent requirements. These costs are chain- and integration-specific, so estimate them in the target environment instead of reusing an old fee figure from a tutorial.

Documentation and sample code may still show an update-fee calculation because the interface supports it and fee policy can change. For a live integration, check the current fee page and the deployed contract behavior. Do not hard-code a historic fee or assume that the current zero setting applies forever.

How can stale prices cause problems?

A price can be correct for its publish time but no longer suitable for a transaction now. Markets may move between publication, fetching, inclusion, and execution. If a lending protocol uses an old collateral price, it could lend too much against collateral whose value has fallen. If a derivatives contract accepts a delayed update, a trader may have an advantage over the protocol by acting on newer off-chain information.

Pyth’s EVM integration provides getPriceNoOlderThan(), which returns a price only if it falls within the age threshold selected by the application. A stale value causes a revert rather than silently returning an old executable price. On Solana, the SDK similarly offers get_price_no_older_than with a maximum age and feed ID. Thresholds must fit the use case: a few seconds may be appropriate for a latency-sensitive market, while a slower workflow could tolerate a longer window. There is no universal safe age for every asset, chain, and product.

Test behavior when updates stop, the network is congested, or a transaction carries an update that becomes too old before execution. Decide whether the right response is to revert, pause only risk-increasing actions, or use a separately validated fallback. A fallback should not quietly convert a strict freshness requirement into acceptance of stale data.

Why check the confidence interval?

The aggregate price is an estimate, and the confidence interval communicates uncertainty around that estimate. During volatile or thinly observed markets, a wide interval may mean that the quoted point price is a poor basis for a precise trade or liquidation threshold. Pyth’s best-practices guidance discusses using the interval to account for uncertainty and warns that protocols should consider latency and market conditions.

Applications can set a maximum acceptable confidence-to-price ratio, use conservative bounds for risk checks, or pause selected actions when uncertainty is too high. The correct rule depends on the product: a stablecoin borrow limit, a spot swap, and a perpetuals mark price do not necessarily need the same treatment. Check the units and exponent before calculating a ratio, and test negative, zero, or unexpectedly large values.

How do you judge whether an integration is working well?

Evaluate observable behavior, not just whether a sample contract compiles. A reliable integration should consistently select the intended feed, reject stale updates at the chosen threshold, handle unavailable Hermes data, and account for transaction costs. It should also have monitoring for failed update requests, stale-price reverts, confidence widening, and sudden changes in update latency.

  • Verify identifiers and deployment. Compare the feed ID and contract address with Pyth’s current references for the target chain. Pyth Core was upgraded on August 26, 2026; its documentation recommends upgraded contract addresses for new integrations. Existing addresses were automatically upgraded in place on most chains, while Sui requires a manual migration.
  • Authenticate Hermes requests. Since the August 26, 2026 upgrade, Hermes requests require a Pyth API key. Confirm the endpoint, key handling, and operational limits in current Pyth instructions. Never expose a private API key in a public client or source repository.
  • Exercise failure cases. Simulate stale data, missing updates, wrong feed IDs, wide confidence intervals, delayed transactions, and insufficient gas. Confirm that the contract fails safely and that the user interface explains the reason.
  • Recheck current documentation. Contract addresses, supported feeds, API requirements, and fee policies can change. Review Pyth’s current pages when deploying or changing a chain integration.

When should a team choose another approach?

Pull updates are a strong fit when a protocol wants to pay for an update only when an on-chain action needs it, and can include update data in that action. They may be less convenient when many applications need a continuously refreshed on-chain value without caller-supplied update data. Pyth also documents push integrations and a Price Pusher service that can periodically bring updates on-chain according to configured conditions. These options can make reads simpler, but they introduce an update schedule and an operator or sponsor whose availability should be monitored.

Whichever integration pattern is selected, an oracle is only one part of a risk system. It cannot guarantee that an asset is liquid, that every venue agrees on a price, or that the application’s liquidation and fallback logic is sound. Treat freshness, confidence, market hours, and execution latency as product requirements. If the feed stops meeting those requirements, pause or constrain the affected action until the data path is healthy again.

Official Pyth references

Leave a Comment

Filecoin FVM Explained: Storage Deals, Smart Contracts, and Network Demand

Filecoin FVM Explained: Storage Deals, Smart Contracts, and Network Demand

Learn how Filecoin’s FVM and FEVM relate to storage deals, when to use direct deals or managed tools, and which metrics reveal real network demand.

Lido Explained: How stETH Rewards, Validator Concentration, and Withdrawal Queues Work

Lido Explained: How stETH Rewards, Validator Concentration, and Withdrawal Queues Work

Understand how Lido’s stETH rewards accrue, what validator concentration means, and how to choose between the withdrawal queue and selling stETH.

Rocket Pool Explained: Minipools, rETH Pricing, and Node-Operator Economics

Rocket Pool Explained: Minipools, rETH Pricing, and Node-Operator Economics

Understand how Rocket Pool minipools pair operator and pooled ETH, why rETH can trade away from its protocol exchange rate, and how to assess operator rewards, costs, and risks.

Sky Protocol Explained: How USDS Differs From DAI and Which Governance Changes Matter

Sky Protocol Explained: How USDS Differs From DAI and Which Governance Changes Matter

Understand how USDS differs from DAI, when conversion matters, how sUSDS fits in, and which Sky governance changes users should verify in 2026.

Jupiter Explained: Solana Swap Routing, Fees, Governance and Aggregator Risks

Jupiter Explained: Solana Swap Routing, Fees, Governance and Aggregator Risks

How Jupiter routes Solana swaps, what fees users may pay, how JUP governance works, and which execution and aggregator risks matter in 2026.

Ondo Finance Explained: Tokenized Treasuries, Redemption Limits, and Counterparty Risks

Ondo Finance Explained: Tokenized Treasuries, Redemption Limits, and Counterparty Risks

Learn how Ondo’s OUSG and USDY tokenized Treasury products work, what OUSG’s published instant-redemption limits mean, and which issuer, liquidity, fund, and blockchain risks to check.

Jito Explained: JitoSOL, MEV Tips, and How Revenue Can Reach JTO Holders

Jito Explained: JitoSOL, MEV Tips, and How Revenue Can Reach JTO Holders

Compare JitoSOL, native SOL staking, and JTO governance while tracing MEV tips, protocol fees, buybacks, and the risks that affect realized returns.

Wormhole Explained: Guardian Security, Cross-Chain Messages, and Bridge Risks

Wormhole Explained: Guardian Security, Cross-Chain Messages, and Bridge Risks

Learn how Wormhole Guardians, VAAs, and token routes work, what to verify before bridging, and which warning signs call for a different route.

Pyth Network Explained: Pull Oracles, Update Fees, and Stale-Price Risks

Pyth Network Explained: Pull Oracles, Update Fees, and Stale-Price Risks

Learn how Pyth’s pull-oracle model delivers price updates on demand, what update fees cost as of September 2026, and how to protect smart contracts from stale or uncertain prices.

Injective Explained: On-Chain Order Books, INJ Burns, and Bridge Risks

Injective Explained: On-Chain Order Books, INJ Burns, and Bridge Risks

Learn how Injective’s on-chain order books work, what INJ burns actually signal, and how to assess liquidity, trading activity, and bridge dependencies.