Key Insights

  • Pyth secures $5.5 billion in value and supports price feeds of cryptocurrencies, equities, foreign exchange pairs, ETFs, and commodities on 162 protocols across 50+ blockchains.
  • In February 2024, Pyth oracle transactions accounted for an average of 20% of total Solana transactions; simultaneously, Pyth data providers paid $225,000 in fees on Solana in February 2024.
  • Pyth Network uses a network of first-party data providers that publish data directly to Solana and Pythnet (an appchain that serves Pyth oracle updates to all other blockchains). Data providers include institutional traders, renowned market makers, and notable 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 Solana’s leading oracle, Pyth will support many of the applications expanding to and launching on Eclipse, the first SVM-based Layer-2 blockchain on Ethereum.

Background

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 resolution, 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

Technology

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:

  • Validators or oracle nodes sourcing data
  • Nodes cryptographically signing (verifying) the sourced data
  • Aggregation of the data and consensus of the calculated data point
  • Data transmission to the blockchain network

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.

Core Interactions

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 Providers/Publishers (Jane Street, CTC, Binance, 0x, Raydium, etc.)
  • The Pyth Oracle Program (aggregation algorithm)
  • Data Consumers (applications/developers)

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.

Pyth on Solana

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.

Pythnet Appchain

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

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.

  • REST (a subset of HTTP) API features
    • Best-suited for applications that require ad-hoc access to the latest data, need data at irregular intervals, or request data under certain conditions.
    • Simple to implement and use.
    • Streamlined client-server interaction, given each request is independent.
    • Scenarios: portfolio tracking, loan origination or repayment, etc.
  • Websocket API features
    • Best-suited for applications requiring real-time, continuous data streaming.
    • Low maintenance: After the initial setup, data can be sent back and forth without the overhead of repeated HTTP headers, making it efficient for frequent data transmissions.
    • Given the persistent connection between the client and server, real-time updates enable instantaneous data updates.
    • Scenarios: arbitrage trading, yield-optimization tools, DEX trading, etc.

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.

Tokenomics

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:

  • Community & Launch (6%): For initial launch and related activities and initiatives.
  • Publisher Rewards (22%): For Pyth’s network of data publishers. Used for rewards, grant programs, and as an incentive to encourage publishers 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 publishers. The goal is to encourage initiatives and reward contributions that go beyond the founding team and core contributors.
  • Protocol Development (10%): For core contributors building tooling, products, and infrastructure (i.e., Douro Labs).
  • Private Sales (10%): For two funding rounds. Pyth has not disclosed the price per PYTH sold nor its valuation for either of the rounds. In December 2023, Pyth published an update about an earlier strategic round that 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 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:

  • Onchain software updates
  • Reward structures for data providers
  • Creating rules for permissioning publishers
  • Size, denomination, and existence of oracle update fees
  • Adding new price feeds and determining who supports them

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.

  • Pythian Council
    • Eight members and the Operations Wallet holder are signers of the Pythian 7-of-9 multi-sig wallet.
    • Four members are replaced every election.
    • Can be delegated the power to vote on Operational PIPs that involve updates to the oracle program, verification mechanism, adjusting oracle update fees and denominations, and the management of PGAS (the gas token on Pythnet that is allocated/delegated to validators).
  • Price Feed Council
    • Seven members and the Operations Wallet holder are signers of the Price Feed 5-of-8 multi-sig wallet.
    • Three members are replaced every election.
    • Can be delegated the power to vote on Operational PIPs that involve managing the set of offered price feeds, the selection of publishers, and price feed requirements (i.e., minimum and maximum publishers per feed).

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 Usage

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.

Notable Users

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.

Competitive Analysis

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.

Chainlink

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

  • Pyth
    • Pyth aggregates data directly from primary sources and updates price feeds on the Pythnet appchain and Solana every 400 ms.
    • Outside of Solana, other chains must initiate a price update for it to be published to the respective chain, implying that the staleness of data is between 400 ms and the next on-demand update.
    • There’s a potential conflict of interest for data publishers (that also trade) to publish honest data points that may be disadvantageous to particular trades. Assuming most publishers are honest, seek to maintain a high reputation, and do not coordinate updates, Pyth’s aggregation algorithm should mitigate this risk by applying a low weight to outlier data points.
    • Sourcing data directly from primary sources enables the quick addition of price feeds for newly created pairs.
  • Chainlink
    • Chainlink aggregates data from secondary sources (data aggregators) and publishes prices feed updates onchain where the frequency depends on the blockchain.
    • Staleness of a data point is dependent on secondary source updates and oracle network aggregation.
    • Though a primary source may support a particular trading pair, price feed availability depends on secondary aggregators also implementing coverage of that data point. This could add friction in adding new feeds, though this is not an issue with significant trading pairs.

Pull v. Push Model

  • Pyth
    • Pyth on Solana uses a push model, publishing updates every 400 ms.
    • Pyth on Pythnet uses a pull model, where users initiate an update on the destination chain, published updates on Pythnet are routed through Wormhole, and updates are published to the requesting chain. The users incur costs in this model.
    • Because all market price feeds (outside Solana) are on Pythnet, Pyth offers increased scalability that reduces the costs and time to integrate feeds directly on supported/new chains. However, Pyth’s scalability introduces latency and an added layer of trust/reliance on Wormhole.
  • Chainlink
    • Chainlink’s primary market feeds use a push model, publishing updates often at the block times of destination chains. This can be costly to the oracle nodes and can cause update transactions to fail in high-volatility environments (though rare).
    • Adding price feeds to new and existing chains is more costly, as new price feeds must be implemented for each supported network.
    • Not reliant on an additional relayer, and does not add trust between Chainlink’s oracle network and destination blockchains.
    • Chainlink also offers a pull model in its Data Streams product.
    • Similar data process to push model, except data is delivered to Chainlink’s offchain Data Engine, which delivers price updates when data is requested onchain.
    • Currently, Data Streams are only on Arbitrum and maintain eight price feeds.

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.

Closing Summary

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.

——