Messari Research Report: In-Depth Analysis of Pyth, the Leading Oracle Project on Solana
Written by: Messari
Compiled by: Deep Tide TechFlow
Abstract
Pyth secures $5.5 billion in assets and provides price information for cryptocurrencies, stocks, forex pairs, ETFs, and commodities across 162 protocols from over 50 blockchains.
In February 2024, Pyth's oracle accounted for an average of 20% of Solana's total transaction volume; meanwhile, Pyth data providers paid $225,000 in fees on Solana in February 2024.
Pyth Network utilizes a first-party data provider network to publish data directly to Solana and Pythnet (an application chain that provides Pyth oracle updates for all other blockchains). Data providers include institutional traders, prominent market makers, and well-known DeFi protocols such as Jane Street, CTC, and Raydium.
By the end of Q2, Pyth plans to fully migrate its Solana push oracle to a new Solana pull oracle.
As the leading oracle on Solana, Pyth will support many applications that expand to Eclipse and launch on Eclipse, the first SVM-based Layer 2 blockchain on Ethereum.
Background
Blockchain applications often rely on data from the external world. However, the design of these systems limits their ability to natively interact with external data without assistance. Therefore, blockchains depend on oracles to act as intermediaries, aggregating external data and making it available for on-chain applications.
Typically, oracle networks incentivize nodes to seek specific information, reach consensus on the value of specific data points, and publish these values to the blockchain within a set timeframe. However, this "push" model can be indirect, costly, and difficult to scale. Pyth Network addresses these issues by cultivating a primary source (first-party) data provider network and coordinating a "push" model. This model reduces latency, scales quickly, and lowers network costs by shifting update costs to data consumers (applications and developers).
Pyth is a language network designed to provide accurate prices for cryptocurrencies, stocks, forex pairs, ETFs, and commodities. It offers three core products:
Price Feeds, real-time updates for smart contracts
Benchmarks, historical market data
Pyth Entropy, a secure random number generator
The robustness of Pyth's data largely stems from its contributing provider network, which consists of nearly 100 data providers from global exchanges, trading firms, market makers, institutions, and DeFi. Some notable providers include Jane Street, Chicago Trading Company (CTC), Binance, Raydium, Osmosis, Galaxy, and 0x. Pyth focuses on providing financial market data to developers across an ever-expanding list of blockchain networks (over 50 blockchains as of this writing).
Technology
In addition to bridging data between blockchains and the outside world, oracles also strive to overcome the oracle problem. The oracle problem refers to ensuring that external data is secure, authenticated, and trustworthy while also considering potential failures of external sources.
Addressing the oracle problem typically involves the following steps:
Verifying or oracle node source data
Nodes cryptographically sign (validate) the source data
Aggregating data and achieving consensus on data points
Transmitting data to the blockchain network
The oracle problem is usually solved through push or pull models. Most oracles use a third-party push model. In this model, oracle nodes obtain data from first-party sources (i.e., exchanges) or second-party sources (i.e., data aggregators like CoinGecko and Kaiko). For example, Chainlink's primary price source oracle nodes obtain data from second-party sources. Push oracles send price updates to individual blockchains at set time intervals, incurring gas fees for each on-chain update. Adding price sources or reducing on-chain update latency incurs additional costs for the oracle network, hindering its scalability. Furthermore, obtaining data requires multiple trust assumptions: that primary sources are correct and stable; that secondary sources are correct and stable; and that the oracle network is stable.
Pyth Network addresses the drawbacks of third-party push models through its pull model. By leveraging its first-party data source provider network, Pyth mitigates two downstream trust assumptions regarding the reliability of third-party data. In Pyth's pull model, data is provided directly by exchanges, market makers, and DeFi protocols (such as Jane Street, Binance, and Raydium) within the network. These entities are incentivized to act honestly and provide robust data to maintain a good reputation and avoid being banned by the protocol.
The remaining benefits depend on shifting costs to end consumers, where price sources are updated based on demand rather than set time intervals. Thus, consumers initiate price updates, pulling updates into the same DeFi transactions on-chain (e.g., swapping assets, settling perpetual swaps, etc.). By passing costs onto users, where updates are demand-based, Pyth redirects these costs and scales efficiently, as evidenced by its frequent updates to 451 price sources.
Core Interactions
Pyth operates two instances of its protocol: one on the Solana mainnet and another on the Pythnet Appchain. Pyth on Solana provides data only for protocols on Solana; Pyth on Pythnet provides data for protocols on all other blockchains. In both instances, three core entities interact to facilitate oracle updates on the Pyth network:
Data providers/publishers (Jane Street, CTC, Binance, 0x, Raydium, etc.)
Pyth oracle program (aggregation algorithm)
Data consumers (applications/developers)
Data providers are validators on Pythnet. Previously, the Pyth Data Association was responsible for delegating sufficient stakes to validators; however, with the initiation of governance, this will now be managed by PYTH holders. As of this writing, there are no proposals to change the dynamics of validator stakes, and all validators currently have equal weight. As first-party suppliers of Pyth data, providers are compensated through a small fee charged during the entire DeFi transactions initiated by consumers.
The Pyth oracle program is an aggregation algorithm that combines data submitted by providers and generates an aggregated price and confidence interval for the corresponding price source during computation. It is also responsible for maintaining price sources, storing individual inputs from providers, and performing additional calculations such as moving averages. Applications and developers are consumers who request updates to price sources to read the information generated by the oracle program.
Pyth on Solana
Price sources are represented by two Solana accounts: the product account and the price account. The product account stores metadata about the price source, such as stock ticker, asset type, corresponding price account, etc. The price account contains the names of authorized data providers, the price and confidence interval submitted by each provider, exponential moving averages, etc. Both accounts are maintained by the oracle program, which also includes a third account that essentially lists the product accounts. This setup allows applications to categorize the complete list of price sources provided by Pyth.
Providers submit price updates every 400 milliseconds (the length of a time slot on Solana). Each update triggers frequent aggregations of prices and confidence intervals for downstream use by applications. (Since the oracle stores individual data values submitted by each provider, providers can be held accountable for underperforming or malicious behavior.) The low costs on Solana enable Pyth (or any oracle) to operate an efficient push model, where developers only need to pass relevant price sources to their applications, deserialize the data, and read/integrate the published values.
Notably: 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 indicated that the Pyth pull oracle is already operational on the development network.
Pythnet Appchain
Pythnet Appchain is an authoritative proof-of-stake fork of the Solana mainnet, serving as a computational base layer for processing and aggregating data provided by Pyth's data provider network. The resulting price sources on Pythnet are accessible to over 50 blockchains, not just Solana, as its price sources are published directly to the blockchain. Since Pythnet is a fork of Solana, the Pyth oracle framework on Solana and the Pyth oracle framework on Pythnet are somewhat similar, but there are some differences.
The aforementioned push model on Solana (including accounts and oracle programs) is similar on Pythnet. However, Pythnet is not a target chain and does not charge providers for submitting prices. Therefore, while data providers push data to Pythnet for aggregation and serialize it into accounts via the oracle program, this data is subsequently broadcast to other blockchains through Wormhole's cross-chain messaging protocol. Consumers incur costs on the target chain when initiating data transfers through normal DeFi transactions that rely on oracle data, thereby pulling data updates.
Cross-Chain Messaging
After publishing and aggregating data on Pythnet, the data is not immediately routed through Wormhole. Instead, Pyth routes its data through a message buffer and hashes it into a Merkle tree. This ensures that users can choose which updates to include in a single transaction. It also helps keep costs low for users and allows data updates to include arbitrary computations. After each aggregation update, the aggregator adds a message to the message buffer. For each time slot, Pythnet validators read the messages and create a Merkle tree, then send a message containing the Merkle root of all prices to the Wormhole contract on Pythnet.
Then, Wormhole administrators (Wormhole nodes) read the Merkle root message, create a verifiable action approval (VAA), and broadcast the price updates to the relevant blockchains. The VAA ensures that data is transmitted reliably and securely. The VAA contains the signatures of the Wormhole administrators. These signatures confirm that the administrators have witnessed and verified that the VAA includes signatures from Wormhole Guardians. These signatures confirm that the Guardians have witnessed and verified the information contained in the message, namely the Merkle root of the prices. The signed VAA is a verifiable and secure method of confirming the accuracy of data transmitted from Pythnet to the target blockchain, validated by trusted parties (Wormhole Guardians).
Hermes
Hermes is a web API that abstracts the developer update initiation process. Without services like Hermes, developers would have to manually compile an update payload with the desired price sources and obtain the corresponding data and Merkle proof from Pythnet using the Wormhole-validated Merkle root. Hermes allows developers to simply query a web service to access oracle prices. Hermes enables data consumers to retrieve the latest prices from REST or WebSocket APIs.
REST (a subset of HTTP) API Features
Best suited for applications that require immediate access to the latest data, need data at irregular intervals, or request data based on specific conditions.
Easy to implement and use.
Each request is independent, making interactions between client and server more concise.
Scenarios: portfolio tracking, loan issuance or repayment, etc.
WebSocket API Features
Best suited for applications that require real-time continuous data streams.
Low maintenance costs: after initial setup, data can be sent back and forth without the overhead of repeating HTTP headers, which is very efficient for frequent data transfers.
Real-time updates allow data to be updated instantly due to a persistent connection between client and server.
Scenarios: arbitrage trading, yield optimization tools, DEX trading, etc.
Hermes is permissionless, allowing any third party to build a simplified access point to the Pyth Network. Due to operational complexity, the Pyth Data Association maintains a public version. However, other companies, such as 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.
Tokenomics
The maximum supply of Pyth's ecosystem token, PYTH, is 10 billion PYTH. After the first unlock in May 2024, its distribution will reflect the following allocations:
Community and Launch (6%): for initial launch and related activities and initiatives.
Provider Rewards (22%): for the Pyth data provider network. Used for rewards, funding programs, and as incentives for providers to support new assets that may initially lack liquidity.
Ecosystem Growth (52%): for contributors to the Pyth network, including but not limited to developers, researchers, educators, and early providers. The goal is to encourage initiatives and reward contributions beyond the founding team and core contributors.
Protocol Development (10%): for core contributors building tools, products, and infrastructure (i.e., Douro Labs).
Private Sale (10%): for two rounds of fundraising. Pyth has not publicly disclosed the price per PYTH and its valuation. In December 2023, Pyth released an update on its early strategic round, which included notable investors such as Castle Island Ventures, Wintermute Ventures, Borderless Capital, CMT Digital, Bodhi Ventures, Distributed Global, Multicoin Capital, and Delphi Digital.
Governance
The PYTH token is an SPL token on Solana (equivalent to ERC-20 on Ethereum). The core utility of PYTH is governance. PYTH holders can guide the protocol's development by staking assets and voting on Pyth Improvement Proposals (PIPs). As of now, the only proposals that have been or are being voted on include the Pythian Council elections and the approval of the Pyth DAO constitution. Typical topics covered and amendable in governance include:
On-chain software updates
Reward structures for data providers
Rules for creating licensed providers
The size, denomination, and existence of oracle update fees (whether such fees exist)
Adding new price sources and determining who supports them
The Pyth DAO consists of the Pythian Council and the Price Feed Committee. Every six months, these two committees hold elections to rotate committee members. Additionally, members who participate less than one-third of the time will be excluded from re-election. This system ensures an active member participation process and aligns members with Pyth's goals. Both committees are responsible for voting and executing certain operational PIPs.
Pythian Council
Eight members and operational wallet holders are signers of the Pythian 7-of-9 multisig wallet.
Four members are replaced in each election.
They have the authority to vote on operational PIPs involving updates to the oracle program, validation mechanisms, adjustments to oracle update fees and denominations, and PGAS (Gas tokens allocated/delegated to validators on Pythnet).
Price Feed Committee
Seven members and operational wallet holders are signers of the Price Feed 5-of-8 multisig wallet.
Three members are replaced in each election.
They can be authorized to vote on operational PIPs that involve managing the collection of price sources provided, the selection of publishers, and the requirements for price sources (i.e., minimum and maximum providers for each source).
After discussions on Pyth's Discord forum, PYTH holders can vote on proposals through the governance portal on Realms when reaching the "voting phase," currently requiring proposers to hold 25 million PYTH to create a proposal.
There are two types of PIPs in the Pyth DAO: constitutional and operational. Constitutional PIPs involve protocol updates, determining the structure, and guiding the governance of the Pyth DAO. They require over 67% support to be implemented. Operational PIPs involve the treasury, elections, and management of the Pythian Council and Price Feed Committee. Voting on these PIPs can be delegated to committee members and requires over 50% support to be implemented.
Pyth Usage
Pyth is one of the most widely used protocols on Solana. During February 2024, its oracle transactions accounted for an average of 20% of all transactions on Solana. During the same period, Pyth data providers paid $225,000 in fees on Solana. Pyth's oracle protects 95% of the value on the blockchain. As of January 2024, Pyth also protects over 90% of the value on nine other blockchains and over 50% of the value on another 16 blockchains.
Notable Users
Due to its ability to scale sources on Pythnet, Pyth has become one of the most widely used oracle protocols across various blockchains. It does not add new data sources to the target chain but simply adds new data sources to Pythnet, allowing Pyth's oracle contracts to utilize these data sources on each supported target chain. Thus, Pyth can build oracle contracts for any chain it plans to expand to. With ongoing support for many blockchains, various projects have adopted Pyth's oracle network. Here are some notable projects.
Synthetix
Synthetix is a decentralized liquidity provision protocol that enables the creation of synthetic assets, or Synths, which track the value of cryptocurrencies and real-world assets (such as currencies, commodities, and stocks). Synthetix allows users to gain exposure to various assets without actually holding them, broadening investment opportunities and enhancing liquidity in the cryptocurrency market. A key component of Synthetix's functionality is its integration with Pyth Network oracles. These oracles provide high-fidelity, real-time price sources that are crucial for maintaining the accuracy of Synths' values.
Helium
Helium is a decentralized Internet of Things (IoT) network. It includes token economic incentives for network participants to deploy wireless devices that provide mobile network coverage. Helium leverages Pyth Network oracles to provide accurate on-chain market prices for Helium's native token, HNT. These values are critical for a range of network activities, including converting burned HNT into data credits (DC) and accurately measuring fund allocations. Although Helium is not DeFi, the use of Pyth oracles in Helium's decentralized connectivity platform highlights the importance of precise data in managing even DePIN protocols.
Eclipse
Eclipse recently raised $50 million in a Series A funding round to launch the first Layer 2 blockchain using SVM (Solana Virtual Machine) for execution and Celestia for data availability, while obtaining security from Ethereum as a settlement layer. The launch of Eclipse is expected to attract liquidity from Ethereum users and direct them to decentralized applications on Solana's Layer 2. As Solana's leading oracle, Pyth will support many applications that expand to and launch on Eclipse.
Competitive Analysis
The oracle space is a competitive industry dominated by Chainlink. Although the Chronicle Protocol created the first on-chain oracle for MakerDAO in 2017, it did not launch a public oracle network until the end of 2023. It currently provides sources on only two blockchains but plans to expand. Chainlink has captured market share during the years of DeFi development, launching various oracle-based products serving a wide market. As of now, only three protocols are more secure than Pyth Network: Chainlink, Chronicle, and WINkLink—these four top protocols account for 90-95% of the market capitalization of all oracles. Nevertheless, Pyth has the most coverage in terms of the number of blockchains and secured value. Chainlink is Pyth's biggest competitor in terms of diversity of covered blockchains and secured value.
Chainlink
Critics refer to Chainlink as a "black box" due to the lack of transparency regarding how oracle nodes obtain data. The sources of data are not identified either on-chain or on Chainlink oracle node websites. In contrast, each data point on the Pyth network can be traced back to individual providers' public keys by copying the transaction hash from Pyth's price information webpage to any Solana block explorer. While data on Chainlink can also be traced back to Chainlink oracle nodes, Pyth's data providers are first-party sources. Unlike Chainlink's data, Pyth's published data is internally sourced from their operations as exchanges, trading firms, market makers, etc. However, the public keys of providers are not publicly associated with their identities, adding a layer of trust in Pyth's (initially permissioned) management of its provider network.
While Pyth focuses on traditional finance and crypto price information, Chainlink has several products. These include an interoperability protocol (CCIP), proof of reserves information streams, and developer tools (VRF, API functionalities, and automation services), as well as its market data information streams. Therefore, Pyth's main product challenges Chainlink's leading market data information stream product, although Pyth also offers a random number generator through Pyth Entropy. Here is a comparison of Pyth and Chainlink in terms of market data information streams:
Data Sources
Pyth
Pyth aggregates data directly from primary sources and updates price information every 400 milliseconds on Pythnet Appchain and Solana.
Beyond Solana, other chains must initiate price updates to publish them on the respective chains, meaning the data's freshness ranges between 400 milliseconds and the next on-demand update.
For data providers (who also trade), there is a conflict of interest in publishing honest data points that may be unfavorable for specific trades. Assuming most providers are honest and trying to maintain a good reputation without coordinating updates, Pyth's aggregation algorithm should mitigate this risk by applying low weights to outlier data points.
Directly sourcing data from primary sources allows for the rapid addition of price information for newly created trading pairs.
Chainlink
Chainlink aggregates data from secondary sources (data aggregators) and publishes price information updates on-chain based on the frequency of the blockchain.
The freshness of data points depends on updates from secondary sources and the aggregation of the oracle network.
While primary sources may support specific trading pairs, the availability of price information depends on secondary aggregators also covering that data point. This may increase friction in adding new information streams, although this is not an issue for major trading pairs.
Pull vs. Push Models
Pyth
Pyth on Solana uses a push model, publishing updates every 400 milliseconds.
Pyth uses a pull model on Pythnet, where users initiate updates on the target chain, and updates published on Pythnet are routed through Wormhole and published to the requested chain. In this model, users incur costs.
Since all market price information streams (beyond Solana) are on Pythnet, Pyth provides the ability to increase scalability while reducing the cost and time of integrating information streams directly on supported/new chains. However, Pyth's scalability introduces latency and an additional layer of trust/dependence on Wormhole.
Chainlink
Chainlink's primary market information streams use a push model, frequently publishing updates at the block time of the target chain. This can impose a cost burden on oracle nodes and may lead to update transaction failures in high-volatility environments (though this is rare).
Adding price information streams to new and existing chains is more costly, as new price information streams must be implemented for each supported network.
It does not rely on additional relayers and does not add trust between Chainlink's oracle network and the target blockchain.
Chainlink also offers a pull model in its data stream products.
Similar data processing to the push model, except the data is passed to Chainlink's off-chain data engine, which provides price updates when on-chain data is requested.
Currently, Data Streams are only available on Arbitrum and maintain eight price information streams.
Usage
Pyth secures $5.5 billion in value across 162 protocols on over 50 blockchains.
Chainlink secures $38.7 billion in value across 371 protocols on 19 blockchains.
Both systems have their advantages and disadvantages in market data information streams. Pyth's model is better suited for scaling the number of price information streams while maintaining a high update frequency. However, Pyth's ability to maintain high-fidelity data relies on the assumption that the costs of reputation and collusion outweigh the potential benefits of malicious behavior that could benefit providers. Its network stability depends on the proper functioning of Wormhole. In contrast, Chainlink's model requires less trust in the original data sources and the oracle network's relationship with supported blockchains, as it obtains data from secondary aggregated sources and publishes it directly to the target chain. However, scaling data information streams and covering a broader range of blockchains is more costly. Regardless, as cryptocurrency continues to grow, new protocols need to consider many options and trade-offs/risks when implementing different oracle price information streams.
Conclusion
The Pyth Network is a new protocol that is changing the oracle landscape. It has cultivated a first-party data provider network and implemented a pull-based oracle that shifts costs to oracle users. Through this design, Pyth has reduced costs for oracle networks, increased the frequency of price updates, and directly secured market data based on primary data sources. Since its launch, Pyth has grown to serve the most blockchains and holds the fourth-largest share of total value (as of March 2024, $5.5 billion). With the expansion of its provider network, Pyth is poised to achieve its mission of making all global financial market data available for Web3.