Mar 14, 2024 ⋅ 19 min read
Blockchain applications often use data from the external world. However, the design of these systems restricts them from natively interacting with external data without help. As a solution, blockchains rely on oracles to act as middlemen that aggregate external data and make it available for onchain application use.
Typically, oracle networks incentivize nodes to find certain information, come to a consensus on a value for particular data points, and publish such values to blockchains in set time periods. However, this “push” model can be indirect, expensive, and hard to scale. Pyth Network addresses these issues by fostering a network of primary source (first-party) data providers and coordinating a “pull” model. This model reduces latency, scales quickly, and lowers network costs by offloading update fees to data consumers (applications and developers).
Pyth (PYTH) is an oracle network that aims to offer accurate prices for cryptocurrencies, equities, foreign exchange pairs, ETFs, and commodities. It offers three core products:
The robustness of Pyth’s data is largely due to its contributing publisher network, which comprises nearly 100 data providers from global exchanges, trading firms, market makers, institutions, and DeFi. A few notable providers include Jane Street, Chicago Trading Company (CTC), Binance, Raydium, Osmosis, Galaxy, and 0x. Pyth is focused on making financial market data available to developers on an expanding list of blockchain networks (50+ blockchains as of writing).
Website / X (Twitter) / Discord
In addition to bridging data between blockchains and the outside world, oracles strive to overcome the oracle problem. The oracle problem refers to ensuring secure, authenticated, and trustworthy external data, while also considering the potential failures of external sources.
Addressing the oracle problem typically involves:
The oracle problem is often addressed via a push or pull model. Most oracles use a third-party push model. In this model, oracle nodes are third parties that fetch data from either primary sources (i.e., exchanges) or secondary sources (i.e., data aggregators like CoinGecko and Kaiko). For instance, Chainlink’s primary price feed oracle nodes fetch data from secondary sources. Push oracles push price updates to individual blockchains at set intervals, paying gas costs for every onchain update. Adding price feeds or decreasing latency between onchain updates incurs more costs for the oracle network, impeding its ability to scale. Additionally, fetching data requires multiple trust assumptions: the primary source is correct and stable; the secondary source is correct and stable; and the oracle network is stable.
Pyth Network confronts the shortcomings of the third-party push model with its pull model. Through its provider network of first-party data sources, Pyth addresses the two downstream trust assumptions of third-party data reliability. In Pyth’s pull model, data is provided directly by in-network exchanges, market makers, and DeFi protocols, like Jane Street, Binance, and Raydium. These entities are incentivized to behave honestly and to provide robust data to maintain a good reputation and avoid being banned by the protocol.
The remaining benefits hinge on offloading costs to the end consumer, where price feeds are updated on-demand instead of according to set time intervals. Hence, consumers initiate price updates, pulling the updates onchain in the same DeFi transaction (i.e., swapping assets, settling a perpetual swap, etc.). By offloading costs to users where updates are demand-based, Pyth redirects these costs and scales efficiently, as seen in its frequent updates on 451 price feeds.
Pyth runs two instances of its protocol: one on the Solana mainnet and the other on the Pythnet appchain. Pyth on Solana only serves data to protocols on Solana; Pyth on Pythnet serves data to protocols on all other blockchains. Three core entities interact with each other to facilitate oracle updates on Pyth Network in both instances:
Data publishers are validators on Pythnet. Previously, the Pyth Data Association was responsible for delegating an adequate stake to the validators; however, with the launch of governance, this will now be managed by PYTH holders. As of writing, there are no proposals to change the dynamics of validator stake, which are currently all weighted equally. As the first-party suppliers of Pyth data, publishers are compensated by a small fee charged as a part of the entire DeFi transaction initiated by consumers.
The Pyth Oracle Program is the aggregation algorithm that combines data submitted by publishers and produces an aggregate price and confidence interval for respective price feeds at the time of calculation. It’s also responsible for maintaining the price feeds, storing individual inputs from publishers, and performing additional computations like a moving average. Applications and developers are the consumers who request to update price feeds to read the information produced by the Oracle Program.
Price feeds are represented as two Solana accounts: product and price accounts. Product accounts store metadata about the price feed, like ticker symbol, asset type, corresponding price account, etc. Price accounts contain the names of the authorized data providers, the prices and confidence intervals each provider submits, exponential moving averages, etc. Both accounts are maintained by the Oracle Program, which also contains a third account that essentially just lists product accounts. This setup enables applications to catalog the full list of price feeds offered by Pyth.
Price updates are submitted by publishers every 400 ms (the length of a time slot on Solana). Each update triggers frequent price and confidence interval aggregation updates to be used downstream in applications. (Because the Oracle Program stores the individual data values submitted by each publisher, publishers can be held accountable for poor performance or malicious actions.) Solana’s low costs enable Pyth — or any oracle — to run an efficient push model where developers simply pass the relevant price feed to their application, deserialize the data, and read/integrate the already published value.
Of note: By the end of Q2, Pyth plans to fully migrate its Solana push oracle to a new Solana pull oracle. Through development channels, the Pyth team has noted that the Pyth pull oracle is live on devnet.
The Pythnet appchain is a Proof-of-Authority fork of Solana’s mainnet that acts as a computational base layer for processing and aggregating data provided by Pyth’s network of data publishers. The resulting price feeds on Pythnet are accessible to over 50 blockchains — excluding Solana, which has price feeds published directly to the blockchain. Because Pythnet is a fork of Solana, Pyth’s oracle framework on Solana and Pythnet are relatively similar with a few distinctions.
The push model on Solana described above (with accounts and the Oracle Program) is similar to Pythnet. However, Pythnet is not the destination chain and does not charge publishers for submitting prices. Hence, while data publishers push data to Pythnet to be aggregated and serialized into accounts via the Oracle Program, this data is then broadcast to other blockchains via Wormhole’s cross-chain messaging protocol. Consumers then incur the costs on destination chains while initiating the data transfers with normal DeFi transactions that rely on oracle data — hence, pulling the data updates.
Cross-Chain Messaging
After data is published and aggregated on Pythnet, it is not immediately routed through Wormhole. Instead, Pyth routes its data through a message buffer and hashes it into a Merkle tree. Doing so ensures users can choose which updates are included in single transactions. It also keeps costs low for users and allows data updates to include arbitrary calculations. After every aggregation update, the aggregation program adds a message to the message buffer. For every slot, Pythnet validators read the messages and create a Merkle tree, sending a message containing the Merkle root of all the prices to the Wormhole contract on Pythnet.
Wormhole Guardians (Wormhole nodes) then read the Merkle root message, create a Verifiable Action Approval (VAA), and broadcast price updates to the relevant blockchains. VAAs ensure that data is transferred reliably and securely. The VAAs include signatures from the Wormhole Guardians. These signatures confirm that the Guardians have witnessed and validated the information contained in the message, in this case, the Merkle root of the prices. The signed VAA is a verifiable and secure way to confirm that data transferred from Pythnet to the destination blockchain is accurate and has been authenticated by a trusted party (the Wormhole Guardians).
Hermes is a web API that abstracts the update initiation process for developers. Without a service like Hermes, developers must manually compile an updated payload with the desired price feeds and use the Wormhole-verified Merkle root to get the corresponding data and Merkle proofs from Pythnet. Hermes introduces the ability for developers to simply query the web service to access oracle prices. Hermes enables data consumers to retrieve the latest prices pulling from REST or Websocket APIs.
Hermes is permissionless, enabling any third party to build a simplified access point to the Pyth Network. Because it is operationally difficult to run, the Pyth Data Association maintains a public version. However, other companies, like Triton, P2P, Liquify, and EXTR also offer their own hosted versions of Hermes. A growing list of node providers offering Hermes can be found here.
Pyth’s ecosystem token PYTH has a maximum supply of 10 billion PYTH. After its first unlock in May 2024, its distribution will reflect the following breakdown:
The PYTH token is an SPL token on Solana (equivalent to an ERC-20 on Ethereum). The core utility of PYTH is governance. PYTH holders can guide protocol development by staking the asset and voting on Pyth Improvement Proposals (PIPs). As of writing, the only proposals voted on or being voted on include the Pythian Council elections and the ratification of the Pyth DAO Constitution. Typical subject matters that governance encompasses and can modify include:
Pyth DAO consists of the Pythian Council and the Price Feed Council. Both councils hold elections every six months to rotate members of the councils. Additionally, members who participate less than one-third of the time are excluded from reelection. This system ensures active members play a part in the process and that members stay aligned with Pyth’s goals. Both councils are responsible for the voting and implementation of certain Operational PIPs.
After discussions on Pyth’s forum on Discord, PYTH holders can vote on proposals when they reach the “Voting Phase” via the governance portal on Realms, which currently requires proposers to hold 25 million PYTH to create a proposal.
Pyth DAO has two types of PIPs: Constitutional and Operational. Constitutional PIPs involve protocol updates, determining structure, and guiding the administration of the Pyth DAO. They require greater than 67% support for implementation. Operational PIPs involve elections and the management of the treasury, Pythian Council, and Price Feed Council. Voting on these PIPs can be delegated to Council members and require greater than 50% support for implementation.
Pyth is one of the most used protocols on Solana. Its oracle transactions accounted for an average of 20% of all transactions on Solana during February 2024. In this same time period, Pyth data providers paid $225,000 in fees on Solana. Pyth oracles secure 95% of the value on the blockchain. Pyth also secures over 90% of the value on 9 other blockchains and over 50% on 16 others, as of January 2024.
Pyth has become one of the most widely used oracle protocols across an array of blockchains, thanks to its ability to scale feeds on Pythnet. Instead of adding new feeds to destination chains, it simply adds new feeds to Pythnet, which can be used by Pyth’s oracle contract on each destination chain it supports. Hence, Pyth can simply build an oracle contract for whatever chain it plans to expand to. With its growing support for many blockchains, various projects have adopted Pyth’s oracle network. A couple of notable projects are listed below.
Synthetix
Synthetix is a decentralized liquidity provisioning protocol that enables the creation of synthetic assets, known as Synths, which track the value of crypto and real-world assets like currencies, commodities, and stocks. Synthetix allows users to gain exposure to various assets without actually holding them, thereby broadening investment opportunities and enhancing liquidity in the crypto market. A crucial component of Synthetix's functionality is its integration with Pyth Network oracles. These oracles provide high-fidelity, real-time price feeds that are essential for maintaining the accuracy of the Synths' values.
Helium
Helium is a decentralized wireless Internet of Things (IoT) network. It incorporates token-economic incentives encouraging network participants to deploy wireless devices that provide mobile network coverage. Helium utilizes Pyth Network oracles to provide precise onchain market prices for Helium's native token, HNT. These values are essential for a range of network activities, including the conversion of burned HNT into Data Credits (DC) and accurately measuring treasury allocations. Though Helium is not DeFi, using Pyth oracles in Helium’s decentralized connectivity platform highlights the importance of precise data in managing the economics of even DePIN protocols.
Eclipse
Eclipse recently raised $50 million in a Series A round to launch the first Layer-2 blockchain that will use the SVM (Solana Virtual Machine) for execution and Celestia for data availability, all while deriving security from Ethereum as a settlement layer. The launch of Eclipse should attract liquidity from Ethereum users and route them to Solana-based decentralized applications across the Layer-2. As Solana’s leading oracle, Pyth will support many of the applications expanding to and launching on Eclipse.
The oracle landscape is a competitive sector that has been dominated by Chainlink. Though Chronicle Protocol created the first onchain oracle in 2017 for MakerDAO, it did not launch a public oracle network until late 2023. It currently only offers feeds on two blockchains, though it plans to expand. Chainlink captured market share in the developing years of DeFi, launching a variety of oracle-based products that serve a broad spectrum of markets. As of writing, only three protocols secure more value than Pyth Network: Chainlink, Chronicle, and WINkLink — these top four protocols account for 90–95% of the TVS among oracles. That said, Pyth secures value on the largest number of blockchains. Chainlink is Pyth’s largest competitor in both the diversity of blockchains covered and value secured.
Critics have referred to Chainlink as a “black box” given the opaqueness of where oracle nodes source their data. Sources are not identified onchain nor on the websites of Chainlink oracle nodes. In contrast, each data point on Pyth Network can be traced back to the public keys of individual publishers by copying the transaction hash from Pyth’s Price Feed web page to any Solana block explorer. While data on Chainlink can also be traced back to Chainlink oracle nodes, Pyth data providers are first-party sources. Unlike Chainlink’s data, Pyth’s published data was sourced internally from their operations as an exchange, trading firm, market maker, etc. However, provider public keys are not publicly linked with their identity, which adds a layer of trust in how Pyth (which permissioned publishers originally) manages its publisher network.
While Pyth is singularly focused on traditional finance and crypto price feeds, Chainlink has several offerings. These include an interoperability protocol (CCIP), Proof of Reserve feeds, and developer tooling (VRFs, API functions, and automation services), in addition to its market data feeds. Hence, Pyth’s primary product challenges Chainlink’s leading market data feed product — though Pyth also offers a random number generator through Pyth Entropy. The following is a comparison of the aspects of Pyth’s and Chainlink’s market data feeds:
Data source
Pull v. Push Model
Usage
Both systems offer advantages and disadvantages in market data feeds. Pyth’s model is better equipped to scale the number of price feeds and maintain high update frequency. However, Pyth’s ability to maintain high-fidelity data depends on the assumption that the costs of reputation and collusion outweigh any profitable, malicious actions that could benefit publishers. And its network stability relies on Wormhole's uptime. Conversely, Chainlink’s model requires less trust in original data sources and between the oracle network and supported blockchains, given it pulls from secondary aggregation sources and publishes directly to destination chains. However, scaling data feeds and reaching a wider breadth of blockchains is more costly. Regardless, as crypto continues to grow, new protocols will have many options and tradeoffs/risks to consider in implementing different oracle price feeds.
Pyth Network is a novel protocol that has changed the oracle landscape. It fosters a network of first-party data publishers and implements a pull-based oracle that offloads fees to oracle users. With this design, Pyth cuts costs for the oracle network, increases price update frequency, and secures direct market data based directly on primary data sources. Since launching, Pyth has grown to serve the largest number of blockchains and accounts for the fourth-largest amount of total value secured ($5.5 billion as of March 2024). As it grows its publisher network, Pyth is well-positioned to achieve its mission of making all of the world’s financial market data available to Web3.
——
Let us know what you loved about the report, what may be missing, or share any other feedback by filling out this short form. All responses are subject to our Privacy Policy and Terms of Service.
This report was commissioned by Pyth Data Association. All content was produced independently by the author(s) and does not necessarily reflect the opinions of Messari, Inc. or the organization that requested the report. The commissioning organization does not influence editorial decision or content. Author(s) may hold cryptocurrencies named in this report. This report is meant for informational purposes only. It is not meant to serve as investment advice. You should conduct your own research, and consult an independent financial, tax, or legal advisor before making any investment decisions. Past performance of any asset is not indicative of future results. Please see our Terms of Service for more information.
No part of this report may be (a) copied, photocopied, duplicated in any form by any means or (b) redistributed without the prior written consent of Messari®.
Gain an edge over the market with professional grade tools, data and research.
Already a member? Sign in
Gain an edge over the market with professional grade tools, data and research.
Already a member? Sign in
Onchain Jíbaro. Background: Photography, Quantitative Banking, & Manual Labor.
About the author
Onchain Jíbaro. Background: Photography, Quantitative Banking, & Manual Labor.