Pull oracles (like Pyth) excel at maximizing throughput and minimizing on-chain congestion because they shift the gas cost and execution burden to the end-user or a relayer. For example, Pyth's low-latency price updates are only written to the chain when a user's transaction demands them, avoiding constant, expensive state updates. This model can support thousands of price feeds across multiple chains (Solana, Sui, Aptos) without creating a perpetual gas burden for the network.
Pyth Pull vs Push Oracles: Scale
Introduction: The Scalability Imperative for Oracles
Choosing between pull and push oracle models is a foundational architectural decision that directly impacts your protocol's scalability, cost, and user experience.
Traditional push oracles (like Chainlink) take a different approach by having nodes proactively push data to on-chain contracts at regular intervals. This results in a trade-off: it provides predictable, always-available data for contracts like lending protocols (Aave, Compound) which need constant price freshness, but it inherently scales with the number of feeds and update frequency, leading to higher aggregate gas costs on the underlying blockchain.
The key trade-off: If your priority is high-frequency, low-latency data for a permissionless user base (e.g., a perps DEX on Solana), the pull model is superior. If you prioritize guaranteed data availability for core DeFi money legos that must operate autonomously (e.g., a money market's liquidation engine), the push model's reliability is critical. Your scalability requirement dictates the architecture.
TL;DR: Key Differentiators at a Glance
Architectural choices dictate scalability limits. Push oracles (like Chainlink) broadcast data to all subscribers, while Pyth's pull model requires consumers to fetch data on-demand.
Pyth Pull: Unbounded Data Consumer Scale
On-demand data retrieval: Consumers (dApps, smart contracts) pull price updates only when needed. This allows the network to support a theoretically unlimited number of data consumers without increasing on-chain load or costs for the oracle. This matters for mass-market dApps expecting millions of users or protocols with a vast array of derivative products.
Pyth Pull: Cost Efficiency at Scale
Pay-per-use fee model: Protocol pays only for the data it actually consumes via a pull transaction, not for continuous broadcasts. This creates predictable, linear scaling of oracle costs with user activity. This matters for high-frequency protocols (Perps DEXs like Hyperliquid, Drift) where cost-per-trade is a critical metric.
Traditional Push: Guaranteed Latency for Subscribers
Proactive data delivery: The oracle network pushes updates to a contract on every price change, guaranteeing all subscribed contracts have the latest data with minimal latency. This matters for latency-sensitive DeFi primitives (like money markets such as Aave or Compound) where liquidation systems must react to price movements in the same block.
Traditional Push: Simpler Integration for Core Feeds
Set-and-forget data streams: Once a feed is subscribed to, the protocol does not need to manage update fetching logic. This reduces integration complexity for a fixed set of core assets. This matters for established protocols with a stable set of price dependencies (e.g., stablecoin minting, basic lending) where development simplicity is prioritized.
Head-to-Head: Pyth Pull vs Push Oracle Specifications
Direct comparison of on-chain data delivery mechanisms, latency, and cost for protocol integration.
| Metric | Pyth Pull Oracle | Traditional Push Oracle |
|---|---|---|
Data Delivery Model | On-demand consumer pull | Scheduled publisher push |
Update Latency (On-Chain) | < 400 ms | ~1-12 blocks |
Gas Cost for Update | Consumer pays (~50K gas) | Publisher pays (varies) |
Price Feed Freshness | Per-request, sub-second | Fixed interval (e.g., 5-15s) |
On-Chain Data Storage | Ephemeral (per request) | Persistent (state variable) |
Consumer Control | High (initiates update) | Low (passive recipient) |
Ideal Use Case | Perp DEXs, Options, High-Frequency | Lending, Stablecoins, Standard DeFi |
Scalability & Performance Benchmarks
Direct comparison of scalability, latency, and cost for on-chain data delivery models.
| Metric | Pull Oracle (e.g., Chainlink) | Push Oracle (e.g., Pyth) |
|---|---|---|
Data Update Latency | ~1-5 minutes | < 400 ms |
On-Chain Update Cost | User-paid gas per request | Protocol-paid, subsidized |
Throughput (Updates/sec) | Limited by user request rate | ~1000+ price updates/sec |
Data Freshness Guarantee | No inherent guarantee | Sub-second for major assets |
On-Chain Footprint | Stores data per user contract | Single shared price feed |
Gas Efficiency for Users | High (pays for full update) | Low (reads from shared feed) |
Pyth Pull Oracle: Pros and Cons
Key strengths and trade-offs of Pyth's on-demand pull model versus traditional push oracles for scaling data delivery.
Pro: Unmatched Scalability & Cost Efficiency
On-demand data retrieval eliminates the need for continuous on-chain updates. This reduces gas costs by up to 90% for protocols with sporadic data needs (e.g., options platforms, limit orders). The system scales horizontally with user demand, not data feed count.
Pro: Granular Freshness & User Control
Users pull the latest price at execution time, guaranteeing freshness for their specific transaction. This is critical for high-frequency DeFi (e.g., perpetuals on Hyperliquid, margin calls) where stale data from a push oracle's update interval is unacceptable.
Con: Higher Latency & UX Complexity
Added user transaction: Each pull requires an extra on-chain call to the Pyth contract, adding ~100-500ms of latency and complicating the front-end flow. This is a poor fit for simple swaps or wallets where UX simplicity is paramount.
Con: Protocol Integration Overhead
Smart contracts must be explicitly designed to request and verify Pyth price updates. This adds development complexity compared to simply reading from a push oracle's latestAnswer(). Protocols like Aave or Compound, which need constant price availability, may find this model cumbersome.
Pyth Push Oracle: Pros and Cons
Evaluating the architectural trade-offs for high-throughput DeFi and institutional applications.
Push Model: Pro - Real-Time Data Guarantee
Automated, on-chain updates: Data is pushed to consuming contracts automatically upon new price publication. This eliminates stale data risks for critical applications like perpetuals (e.g., Synthetix, Drift Protocol) and money markets, where a missed update can mean liquidations.
Push Model: Con - Higher On-Chain Cost Burden
Publisher-pays gas model: The data provider (or a relayer) incurs the gas cost for every update on every supported chain. At scale, with 400+ price feeds across 50+ blockchains, this creates significant, recurring operational overhead compared to the user-pays pull model.
Pull Model: Pro - Cost Efficiency at Scale
User-initiated, pay-per-use: Contracts only pull data when needed, paying the gas cost themselves. This is optimal for less time-sensitive applications (e.g., weekly reward calculations, settlement) or protocols on high-gas chains like Ethereum mainnet, where minimizing fixed costs is critical.
Pull Model: Con - Latency & Staleness Risk
Update lag introduces risk: Relies on external actors (keepers, bots, or the protocol itself) to trigger pulls. During network congestion or low incentive periods, data can become stale, a major vulnerability for options pricing (e.g., Lyra) or fast-moving forex pairs.
Decision Framework: When to Use Which Model
Pyth Pull for DeFi
Verdict: The default for high-frequency, high-value applications. Strengths: Pull oracles provide sub-second price updates and on-demand data freshness, critical for perpetuals (e.g., Drift Protocol) and money markets (e.g., Solend) where stale data means immediate liquidation risk. The model scales with user demand, avoiding unnecessary on-chain bloat. Trade-offs: Requires protocols to manage update logic and gas costs. Best for chains with low-cost transactions (Solana, Avalanche) or L2s.
Pyth Push for DeFi
Verdict: Ideal for stable, periodic updates where cost predictability is key. Strengths: Fixed, predictable update costs simplify budgeting. Excellent for slower-moving assets, governance feeds, or benchmark rates (e.g., CPI data) where minute-level latency is acceptable. Simplifies contract logic as data is pushed automatically. Trade-offs: Cannot match the real-time latency of pull for fast-moving markets. May over-pay for data during low volatility periods.
Final Verdict and Strategic Recommendation
Choosing between Pyth's push and pull models is a strategic decision between guaranteed performance and flexible cost control.
Pyth's Pull Oracle excels at providing low-latency, on-demand price updates for high-frequency applications because it allows protocols to initiate updates precisely when needed. This model is ideal for perpetual DEXs like Hyperliquid or lending protocols requiring near-real-time liquidations, as it avoids the overhead of broadcasting unused data. The trade-off is that update costs are borne entirely by the application, which can become significant under high network congestion.
Pyth's Push Oracle takes a different approach by broadcasting price updates to all subscribers at predefined intervals, such as every 400ms on Solana. This results in predictable, amortized costs for data consumers and is optimal for protocols like MarginFi that require a constant, reliable feed for general operations. The trade-off is potential latency for time-sensitive actions, as you must wait for the next scheduled push or pay for an extra pull update.
The key trade-off is latency control versus cost predictability. If your priority is ultra-low latency and maximized capital efficiency for actions like liquidation protection, choose the Pull model and budget for variable gas costs. If you prioritize stable, predictable operating expenses and your application can tolerate sub-second update cycles, the Push model provides a robust and cost-effective foundation. For maximum resilience, a hybrid approach—using the push feed for baseline operations and triggering pulls for critical functions—is often the most strategic architecture.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.