A push oracle is a type of blockchain oracle that operates on a publish-subscribe model, where the oracle service actively monitors for predefined conditions or data changes and automatically pushes the updated information onto the blockchain. This is in contrast to a pull oracle, where the smart contract must explicitly request data, incurring gas costs and latency. Push oracles are essential for event-driven smart contracts that require timely, automated execution, such as those for limit orders, liquidation triggers, or time-based payments. The oracle is responsible for covering the gas fees associated with the on-chain transaction to deliver the data.
Push Oracle
What is a Push Oracle?
A push oracle is a blockchain oracle that proactively initiates and delivers data updates to a smart contract on-chain, without the contract needing to request it.
The core mechanism involves an off-chain oracle node or network that listens to external data sources. When a specific condition is met—like a price reaching a certain threshold or a specific time elapsing—the oracle node constructs and broadcasts a transaction to the smart contract's predefined callback function. This function, often named fulfill or similar, contains the new data payload and executes the contract logic. Because the update is transaction-based, the data delivery and subsequent contract execution are atomic, ensuring consistency. This model shifts the operational cost and responsibility for data freshness from the end-user or contract to the oracle service provider.
Key use cases for push oracles include DeFi lending protocols that need instant price feeds to trigger liquidations, automated trading systems executing limit orders, and insurance contracts that payout based on verifiable real-world events. For example, a lending platform might integrate a push oracle to monitor ETH/USD price; if the collateral value falls below the required ratio, the oracle immediately pushes the latest price and calls the contract's liquidatePosition function. This automation is critical for maintaining protocol solvency without manual intervention.
While highly effective for automation, push oracles introduce design considerations. The smart contract must trust the oracle's signer address, making oracle security paramount. Contracts are also vulnerable to spam or manipulation if the oracle is compromised, as it can push erroneous data at will. Furthermore, the oracle's gas cost model must be sustainable, often requiring users to prepay fees or the service to operate on a subscription basis. These trade-offs are managed through reputation systems, decentralized oracle networks (DONs) like Chainlink's, and cryptoeconomic security models.
In architectural terms, a push oracle completes the data lifecycle by handling the entire flow: sourcing, validation, and on-chain delivery. This contrasts with hybrid models where an oracle may publish data to an on-chain cache (like a price feed contract) that other contracts can then pull from. The choice between push, pull, or a hybrid approach depends on the application's requirements for cost, latency, and trust assumptions. Push oracles represent the active, service-oriented paradigm for bringing off-chain data and events on-chain.
How a Push Oracle Works
A push oracle is a data feed system that proactively sends, or 'pushes,' verified off-chain data to a blockchain network when predefined conditions are met, enabling autonomous smart contract execution.
A push oracle operates on a publish-subscribe model, where smart contracts or external watch services subscribe to specific data events. Unlike a pull oracle that requires an on-chain request to fetch data, the push model is initiated by the oracle node itself. When a subscribed data point—such as a price reaching a certain threshold, a specific time elapsing, or a real-world event occurring—meets its trigger condition, the oracle node automatically constructs and broadcasts a transaction containing the new data to the blockchain. This transaction updates the oracle's on-chain data feed, which listening smart contracts can then consume.
The core architectural components enabling this are the off-chain oracle node and an on-chain registry or smart contract that acts as the data source. The oracle node monitors external APIs, data streams, or computation outputs. Upon detecting a trigger, it signs the data with its private key for verification, pays the necessary gas fees, and submits it. This design is fundamental for low-latency automation in DeFi protocols for liquidations, options expirations, and algorithmic trading, where contracts must react to market movements without manual intervention or waiting for a pull request.
Key advantages of the push oracle model include reduced on-chain latency for time-critical functions and lower gas costs for subscribers, as the oracle bears the cost of the update transaction. However, it requires the oracle to maintain a constant off-chain presence and manage gas funds, introducing operational overhead. Prominent examples include Chainlink Keepers for automated contract execution and specialized price feeds that update upon significant deviation (deviation thresholds). This contrasts with the request-response model, making push oracles ideal for event-driven, periodic, or condition-based data delivery in a trust-minimized manner.
Key Features of Push Oracles
Push oracles are a foundational data infrastructure that proactively deliver verified off-chain data to smart contracts, enabling autonomous execution. Their architecture is defined by several core components and operational principles.
Proactive Data Delivery
Unlike pull oracles that require a contract to request data, push oracles initiate the data transmission. They monitor predefined conditions (e.g., a price reaching a specific threshold) and automatically push the result to subscribing smart contracts. This enables event-driven execution for use cases like limit orders, liquidations, and dynamic NFT updates without manual intervention.
Decentralized Data Sourcing
To ensure data integrity and censorship resistance, push oracle networks aggregate data from multiple, independent data providers or node operators. Data is fetched from diverse sources (e.g., centralized exchanges, DEX aggregators, APIs) and aggregated through a consensus mechanism (like median or TWAP) to produce a single, tamper-resistant data point before it is pushed on-chain.
On-Chain Verification & Settlement
The final, aggregated data is cryptographically signed by the oracle network and submitted as a transaction to the blockchain. Smart contracts verify these signatures against a known set of oracle addresses or a decentralized oracle network's on-chain registry. This creates an immutable, verifiable record of the data point and the time it was delivered.
Subscription & Incentive Model
Contracts or users typically subscribe to a data feed by staking tokens or paying fees. Oracle node operators are incentivized to provide accurate data through reward payments and slashing mechanisms for malfeasance. This cryptoeconomic security model aligns the interests of data providers with the network's reliability.
Gas Efficiency for Subscribers
A key advantage for dApp developers is that the gas cost for the data delivery transaction is borne by the oracle network or its operators, not the subscribing contract. This makes push oracles highly efficient for contracts that need frequent data updates, as they avoid the gas overhead of initiating pull calls.
Use Case: Automated DeFi Protocols
Push oracles are critical for DeFi protocols requiring real-time, trust-minimized data to trigger actions.
- Lending Platforms: Automatically liquidate undercollateralized positions when asset prices drop.
- Derivatives & Options: Settle contracts autonomously based on expiry price feeds.
- Algorithmic Stablecoins: Adjust monetary policy parameters in response to market data.
Push Oracle vs. Pull Oracle
A comparison of the two fundamental architectural patterns for how smart contracts obtain external data.
| Feature | Push Oracle | Pull Oracle |
|---|---|---|
Data Request Initiator | Oracle Node | Smart Contract / User |
Transaction Flow | Oracle → Blockchain | Blockchain → Oracle → Blockchain |
Gas Cost Bearer | Oracle Operator | Requesting Contract / User |
Real-time Updates | ||
Subscription Model | ||
On-Chain Latency | < 1 sec (pre-submitted) | 3-30 sec (per request) |
Primary Use Case | Price Feeds, Keepers | On-demand Data, Verifiable Randomness |
Example Protocol | Chainlink Data Feeds | Chainlink Functions, VRF |
Examples of Push Oracles
Push oracles are proactive data feeds that broadcast information to smart contracts when predefined conditions are met. Here are key examples of their use in decentralized finance and beyond.
Price Feeds for Liquidations
A core DeFi use case where a push oracle monitors asset prices and automatically triggers a liquidation event when a user's collateral value falls below a health factor threshold. This is critical for lending protocols like Aave and Compound, which rely on oracles like Chainlink to push price updates to their contracts to ensure solvency.
Automated Options Settlement
In decentralized options platforms, a push oracle is used to verify and broadcast the price of an underlying asset at the exact time of expiry. This on-demand price push allows smart contracts to autonomously calculate payouts and settle options contracts without manual intervention.
Sports & Event Outcomes
Oracles push verified real-world event results on-chain. For example, a decentralized sports betting platform uses a push oracle to fetch and deliver the final score of a game from an authoritative data source. This triggers the smart contract to release winnings to the correct bettors.
Ecosystem Usage
A push oracle proactively delivers off-chain data to on-chain smart contracts, enabling automated execution based on real-world events. This section details its primary applications across DeFi, insurance, and gaming.
Dynamic NFT & Gaming Logic
Push oracles enable dynamic NFTs and on-chain games that react to real-world outcomes or external data. An oracle can push sports scores, election results, or weather data to update NFT metadata, unlock in-game features, or settle bets.
- Use Case: An NFT that changes its artwork based on the local weather.
- Gaming: A blockchain game where in-game assets gain power based on real-world stock market performance.
- Mechanism: Oracle calls a contract's
updateAttributes()orresolveBet()function with the final result.
Cross-Chain Messaging & Bridges
Push oracles act as relayers in cross-chain communication. They monitor events on a source chain (e.g., a token lock) and push a verified message with proof to a destination chain's bridge or messaging contract, triggering the minting of wrapped assets or execution of a remote function.
- Role: Acts as a decentralized message carrier between heterogeneous chains.
- Process: Listens → Proves → Pushes.
- Contrast: Unlike light client bridges, oracle-based bridges often trade some decentralization for implementation simplicity and speed.
Limit Order Execution
Decentralized exchanges (DEXs) use push oracles to enable limit orders, which are not natively possible on automated market maker (AMM) designs. An oracle monitors the market price of an asset pair and pushes a transaction to execute a swap only when the target price is reached on a reference market (like a centralized exchange).
- Problem Solved: AMMs only support spot trades at the current pool price.
- Solution: Oracle acts as an off-chain order book and execution keeper.
- Example: A user sets a limit order to buy ETH if its price falls below $3,000. The oracle watches and pushes the execution trigger.
Security Considerations
Push oracles introduce unique security vectors by actively initiating data delivery to smart contracts, shifting the risk profile from data availability to data integrity and system reliability.
Single Point of Failure
A push oracle's infrastructure—its data feed, relayer network, and update mechanism—can become a central point of failure. If the oracle node is compromised or goes offline, all dependent smart contracts may stop receiving critical updates, leading to stale data and potential protocol insolvency.
- Dependency Risk: Contracts cannot pull fresh data independently.
- Denial-of-Service (DoS): Targeted attacks on the oracle can cripple downstream applications.
Data Authenticity & Manipulation
The core security challenge is ensuring the data pushed on-chain is authentic and tamper-proof. Attackers may target the data source, the transmission channel, or the oracle's signing key.
- Source Compromise: Manipulation of the original API or data feed.
- Malicious Relayer: A compromised relayer could inject false data before it is signed and broadcast.
- Signature Key Theft: If the oracle's private key is stolen, an attacker can sign and push any data.
Update Frequency & Liveness
Security depends on update liveness—the guarantee that new data is delivered within a required time window. Failures can be catastrophic for time-sensitive contracts like lending protocols or derivatives.
- Stale Price Attacks: Outdated price data can be exploited for liquidation attacks or arbitrage.
- Gas Price Volatility: High network congestion can delay or prevent timely updates if gas strategies are inadequate.
- Heartbeat Mechanisms: Many push oracles implement heartbeats (regular updates) to prove liveness.
Economic Incentives & Centralization
The economic model of a push oracle creates security trade-offs. A centralized, staked model may have stronger slashing conditions for malfeasance but introduces validator centralization risk. A decentralized, permissionless model faces Sybil attack and data quality challenges.
- Staking and Slashing: Used to penalize bad actors, but requires careful parameterization.
- Oracle Extractable Value (OEV): The ability to profit by manipulating the timing or content of data updates.
Contract Integration Risks
The smart contract's integration pattern with the push oracle is a critical attack surface. Common vulnerabilities include:
- Unchecked Caller: Failing to verify the update originates from the authorized oracle address.
- Reentrancy on Update: A malicious callback during the data push transaction.
- Logic Flaws in Callback: Errors in the contract's custom
updatefunction can be exploited. - Front-running: Observing a pending oracle update in the mempool to take advantageous positions.
Common Misconceptions
Clarifying widespread misunderstandings about the architecture, security, and operational model of Push Oracle (formerly EPNS), a leading decentralized communication protocol for Web3.
No, Push Oracle is fundamentally a decentralized communication protocol that enables secure, cross-chain messaging between smart contracts, dApps, and users. While its most visible application is push notifications, the core protocol is a generic messaging layer. It allows any smart contract or dApp to send payload-carrying messages to wallet addresses or other contracts on various blockchains. This enables a wide range of use cases beyond alerts, including decentralized governance updates, on-chain event triggers, and cross-chain state synchronization. The notification service is a primary consumer application built on top of this underlying protocol.
Evolution of the Pattern
The push oracle model represents a fundamental architectural shift in how blockchains receive external data, evolving from basic on-demand queries to proactive, event-driven data delivery.
A push oracle is a blockchain oracle that proactively broadcasts or "pushes" external data and computations onto a network without requiring a user or smart contract to first request it. This model contrasts with the traditional pull oracle, where data is fetched on-demand. The evolution towards push oracles was driven by the need for real-time data feeds—such as price oracles for DeFi—and automated event execution, where off-chain triggers (like a specific time or market condition) initiate on-chain actions. This proactive delivery is essential for applications requiring constant data freshness or guaranteed execution, like liquidation engines or scheduled payments.
The technical implementation of a push oracle typically involves a decentralized network of node operators running oracle client software. These nodes subscribe to specific data sources or watch for predefined off-chain events. When a new data point is available or an event condition is met, the nodes independently fetch, aggregate, and reach consensus on the value. They then broadcast a signed data transaction to the blockchain, often targeting a specific smart contract designed to receive and store this data. Key innovations enabling reliable push oracles include cryptoeconomic security models (staking and slashing), decentralized data aggregation methods, and gas-efficient broadcasting mechanisms to manage on-chain costs.
Prominent examples of the push oracle pattern include Chainlink Data Feeds, which continuously update price reference data on-chain, and the Chainlink Automation network, which uses a push model to trigger smart contract functions based on time or custom logic. The evolution of this pattern has unlocked critical DeFi primitives like decentralized lending and derivatives, which rely on sub-second price updates for loan collateralization and liquidation. Beyond finance, push oracles enable verifiable randomness functions (VRF) for NFTs and gaming, and cross-chain messaging where a message on one chain triggers an action on another, forming the backbone of interoperable applications.
Frequently Asked Questions
Common technical questions about the Push Oracle, a decentralized data feed system for blockchain applications.
A Push Oracle is a decentralized oracle network that proactively pushes verified off-chain data to on-chain smart contracts when predefined conditions are met, without requiring the contract to initiate a request. It works by having a network of node operators continuously monitor specified data sources. When a new data point, such as a price feed update, is available and meets consensus, the oracle automatically submits a transaction to update the data on the blockchain. This is in contrast to a pull oracle, where the smart contract must actively request the data, incurring gas costs and latency. Push oracles are ideal for applications like perpetual DEXs or lending protocols that require frequent, low-latency price updates to maintain accurate collateralization ratios.
Get In Touch
today.
Our experts will offer a free quote and a 30min call to discuss your project.