Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ const permanentRedirectArray = [
],
["/benchmarks/api-instances", "/price-feeds/api-reference/"],
["/benchmarks/rate-limits", "/price-feeds/rate-limits/"],

["/price-feeds/sponsored-feeds", "/price-feeds/pushed-feeds"],
];

/** @type {import('next').NextConfig} */
Expand Down
4 changes: 2 additions & 2 deletions pages/price-feeds/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"type": "separator"
},

"use-real-time-data": "Use Real-Time Price Data",
"use-real-time-data": "Pull Real-Time Price Data",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the consistency before
Use Real-time Price Data
Use Historic Price Data

I believe adding Pull if good, but don't like breaking the above consistency?
Do you have any other ideas? @jayantk @KemarTiti

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#860 (comment)

How about
"Pull Latest Price Data"
"Pull Historic Price Data" as we need to pull from benchmarks API and then verify.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering if Pyth pro is near real time, should we call core as real time data ?

May be say "Pull the latest Price Data"

"use-historic-price-data": "Use Historic Price Data",
"fetch-price-updates": "Fetch Price Updates",
"schedule-price-updates": "Schedule Price Updates",
Expand All @@ -42,7 +42,7 @@
"api-reference": "API Reference",
"price-feeds": "Price Feeds",
"current-fees": "Current Fees",
"sponsored-feeds": "Sponsored Feeds",
"pushed-feeds": "Push Feeds",
"market-hours": "Market Hours",
"best-practices": "Best Practices",
"error-codes": "Error Codes",
Expand Down
189 changes: 159 additions & 30 deletions pages/price-feeds/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ import {
LightningIcon,
MultiChainIcon,
ShieldIcon,
CodeIcon,
} from "../../components/icons/ProductIcons";
import ContractIcon from "../../components/icons/ContractIcon";
import SearchIcon from "../../components/icons/SearchIcon";
import { Cards, Card } from "nextra/components";

# Introduction to Pyth Price Feeds

Expand All @@ -14,44 +18,145 @@ Data is sourced from 120+ first-party providers including major exchanges and ma

## Key Features

- **1600+ price feeds** across all major asset classes
- **2000+ price feeds** across all major asset classes
- **Sub-second latency** with high-frequency updates
- **Cryptographically signed** and verifiable on-chain
- **Multi-chain support** including EVM, Cosmos, Solana, Aptos, and more

## Our Products

<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-2 gap-8 mb-12">
{/* Real-Time Price Feeds - Two Column Layout */}

<div className="mb-12 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 shadow-sm hover:shadow-md transition-shadow overflow-hidden">
<div className="grid grid-cols-1 lg:grid-cols-2 gap-0">
{/* Left Column - Product Information */}
<div className="p-6 border-r border-gray-200 dark:border-gray-700">
<div className="flex items-center gap-3 mb-4">
<div className="bg-blue-600 text-white text-xs font-semibold px-3 py-1.5 rounded-full">
Core
</div>
<div className="text-gray-600 dark:text-gray-400"><BarChartIcon /></div>
</div>

<h3 className="text-lg font-bold text-gray-900 dark:text-white mb-3 leading-tight">
Real-Time Price Feeds
</h3>

<p className="text-gray-700 dark:text-gray-300 text-sm mb-6 leading-relaxed">
Real-time, high-fidelity market data for smart contracts.
</p>

{/* Features */}
<div className="space-y-3 mb-6">
<div className="flex items-center gap-3">
<div className="text-blue-600 dark:text-blue-400 text-sm flex-shrink-0">
<ClockIcon />
</div>
<span className="text-gray-600 dark:text-gray-400 text-sm font-medium">
Real-time price feeds
</span>
</div>
<div className="flex items-center gap-3">
<div className="text-blue-600 dark:text-blue-400 text-sm flex-shrink-0">
<BarChartIcon />
</div>
<span className="text-gray-600 dark:text-gray-400 text-sm font-medium">
High-frequency data
</span>
</div>
<div className="flex items-center gap-3">
<div className="text-blue-600 dark:text-blue-400 text-sm flex-shrink-0">
<MultiChainIcon />
</div>
<span className="text-gray-600 dark:text-gray-400 text-sm font-medium">
Multi-chain support
</span>
</div>
</div>

<div className="flex">
<a
href="./price-feeds/use-real-time-data"
className="inline-flex items-center gap-2 bg-gray-50 dark:bg-gray-700 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 px-4 py-2.5 rounded-md hover:bg-gray-100 dark:hover:bg-gray-600 transition-colors text-sm font-semibold"
>
Explore Price Feeds
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
</svg>
</a>
</div>
</div>

{/* Right Column - Integration Methods */}
<div className="p-6 bg-gray-50 dark:bg-gray-900">
<h4 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Integration Methods</h4>
<div className="space-y-6">
{/* Pull Architecture */}
<div className="space-y-3">
<div className="flex items-center gap-3">
<div className="w-2 h-2 bg-green-500 rounded-full"></div>
<h5 className="font-medium text-gray-900 dark:text-white">Pull Architecture</h5>
</div>
<p className="text-sm text-gray-600 dark:text-gray-400 ml-5">
Update prices on-demand, permissionlessly every 400ms.
</p>
<div className="ml-5">
<a
href="./price-feeds/use-real-time-data"
className="inline-flex items-center gap-2 bg-green-600 hover:bg-green-700 text-white px-4 py-2 rounded-md transition-colors text-sm font-medium"
>
Integrate Pull Method
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
</svg>
</a>
</div>
</div>

{/* Push Feeds */}
<div className="space-y-3">
<div className="flex items-center gap-3">
<div className="w-2 h-2 bg-blue-500 rounded-full"></div>
<h5 className="font-medium text-gray-900 dark:text-white">Push Feeds</h5>
</div>
<p className="text-sm text-gray-600 dark:text-gray-400 ml-5">
Pyth Data Association sponsored price updates to make prices available directly from smart contracts.
</p>
<div className="ml-5">
<a
href="./price-feeds/pushed-feeds"
className="inline-flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-md transition-colors text-sm font-medium"
>
Explore Push Feeds
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7" />
</svg>
</a>
</div>
</div>
</div>
</div>

</div>
</div>

{/* Other Products Grid */}

<div className="grid grid-cols-1 md:grid-cols-2 gap-8 mb-12">
<ProductCard
badge="Core"
icon={<BarChartIcon />}
title="Real-Time Price Feeds"
description="Real-time, high-fidelity market data for smart contracts."
badge="Benchmarks"
icon={<ClockIcon />}
title="Historical Data"
description="Access to historical price data for settlement and backtesting."
features={[
{ icon: <ClockIcon />, text: "Real-time price feeds" },
{ icon: <BarChartIcon />, text: "High-frequency data" },
{ icon: <MultiChainIcon />, text: "Multi-chain support" }
{ icon: <BarChartIcon />, text: "Signed data" },
{ icon: <ShieldIcon />, text: "Verifiable prices" },
{ icon: <ClockIcon />, text: "Time-stamped prices" },
]}
ctaText="Explore Price Feeds"
href="./price-feeds/use-real-time-data"
ctaText="Access Historical Data"
href="./price-feeds/use-historic-price-data"
/>

{" "}

<ProductCard
badge="Benchmarks"
icon={<ClockIcon />}
title="Historical Data"
description="Access to historical price data for settlement and backtesting."
features={[
{ icon: <BarChartIcon />, text: "Signed data" },
{ icon: <ShieldIcon />, text: "Verifiable prices" },
{ icon: <ClockIcon />, text: "Time-stamped prices" },
]}
ctaText="Access Historical Data"
href="./price-feeds/use-historic-price-data"
/>

<ProductCard
badge="Lazer"
icon={<LightningIcon />}
Expand All @@ -69,6 +174,30 @@ Data is sourced from 120+ first-party providers including major exchanges and ma

## Quick Start

Follow the [Getting Started](price-feeds/getting-started.mdx) guide to integrate Pyth Price Feeds into your application.

For contract addresses and deployment details, see [Contract Addresses](./price-feeds/contract-addresses).
<Cards>
<Card
icon={<ClockIcon />}
title="Getting Started"
href="./price-feeds/getting-started"
/>
<Card
icon={<ContractIcon />}
title="Contract Addresses"
href="./price-feeds/contract-addresses"
/>
<Card
icon={<LightningIcon />}
title="Push Feeds"
href="./price-feeds/pushed-feeds"
/>
<Card
icon={<CodeIcon />}
title="API Reference"
href="./price-feeds/api-reference"
/>
<Card
icon={<SearchIcon />}
title="Price Feed IDs"
href="./price-feeds/price-feeds"
/>
</Cards>
37 changes: 37 additions & 0 deletions pages/price-feeds/pushed-feeds.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Callout } from "nextra/components";

# Push Feeds

The Pyth Data Association **pushes** price updates for various feeds on some networks.
These feeds are updated at a specific heartbeat rate or when the price changes by a specific percentage.
Developers don't need to [pull prices](./fetch-price-updates.mdx) for the following feeds, unless they required short update intervals.

The feeds can vary by network. Please see the relevant section below for the network of interest.

- [EVM](pushed-feeds/evm)
- [Solana](pushed-feeds/solana)
- [Fogo](pushed-feeds/fogo)
- [Aptos](pushed-feeds/aptos)
- [Sui](pushed-feeds/sui)
- [Movement](pushed-feeds/movement)

<Callout type="info" emoji="ℹ️">
Push feeds are subject to change with prior notice. Please refer to the [dev
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about "Any changes to the feeds are published to the [dev forum] -- subscribe there to get the latest updates"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This more of a notice. That's why I split it in two sentences. I wanted to give emphasis on "These feeds and thresholds can change"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry i'm only suggesting rephrasing the second sentence. it's not entirely clear that the "updates" in that sentence means "changes to the feeds"

forum](https://dev-forum.pyth.network/c/announcements/6) for the latest
updates.
</Callout>

<Callout type="info" emoji="ℹ️">
Deviation thresholds can be customized to fit builders' needs. For thresholds
lower than those offered by our Push feeds, please reach out.
</Callout>

<Callout type="info" emoji="⚠️">
DISCLAIMER: While the Pyth Data Association strives to deliver timely updates,
these Push feeds may occasionally experience delays in updates caused by chain
halts, gas estimations and other issues. Applications are advised to run their
own scheduler. Find out how you can run your own scheduler
[here](/price-feeds/schedule-price-updates/using-scheduler).
</Callout>

If you would like to see additional feeds on this list, please fill in this [form](https://tally.so/r/nGz2jj) to signal your interest.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SponsoredFeedsTable } from "../../../components/SponsoredFeedsTableWithData";
import aptosMainnet from "../sponsored-feeds/data/aptos/aptos_mainnet.json";
import aptosMainnet from "../pushed-feeds/data/aptos/aptos_mainnet.json";

# Sponsored Feeds on Aptos
# Push Feeds on Aptos

## Aptos Mainnet

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { SponsoredFeedsTable } from "../../../components/SponsoredFeedsTableWithData";
import arbitrumMainnet from "../sponsored-feeds/data/evm/arbitrum_mainnet.json";
import avalancheMainnet from "../sponsored-feeds/data/evm/avalanche_mainnet.json";
import baseMainnet from "../sponsored-feeds/data/evm/base_mainnet.json";
import berachainMainnet from "../sponsored-feeds/data/evm/berachain_mainnet.json";
import ethereumMainnet from "../sponsored-feeds/data/evm/ethereum_mainnet.json";
import hyperevmMainnet from "../sponsored-feeds/data/evm/hyperevm_mainnet.json";
import soneiumMainnet from "../sponsored-feeds/data/evm/soneium_mainnet.json";
import sonicMainnet from "../sponsored-feeds/data/evm/sonic_mainnet.json";
import lineaMainnet from "../sponsored-feeds/data/evm/linea_mainnet.json";

# Sponsored Feeds on EVM

The following EVM chains have sponsored price feeds:
import arbitrumMainnet from "../pushed-feeds/data/evm/arbitrum_mainnet.json";
import avalancheMainnet from "../pushed-feeds/data/evm/avalanche_mainnet.json";
import baseMainnet from "../pushed-feeds/data/evm/base_mainnet.json";
import berachainMainnet from "../pushed-feeds/data/evm/berachain_mainnet.json";
import ethereumMainnet from "../pushed-feeds/data/evm/ethereum_mainnet.json";
import hyperevmMainnet from "../pushed-feeds/data/evm/hyperevm_mainnet.json";
import soneiumMainnet from "../pushed-feeds/data/evm/soneium_mainnet.json";
import sonicMainnet from "../pushed-feeds/data/evm/sonic_mainnet.json";
import lineaMainnet from "../pushed-feeds/data/evm/linea_mainnet.json";

# Push Feeds on EVM

The following EVM chains have Push feeds:

- [Arbitrum Mainnet](#arbitrum-mainnet)
- [Avalanche Mainnet](#avalanche-mainnet)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SponsoredFeedsTable } from "../../../components/SponsoredFeedsTableWithData";
import fogoTestnet from "../sponsored-feeds/data/svm/fogo_testnet.json";
import fogoTestnet from "../pushed-feeds/data/svm/fogo_testnet.json";

# Sponsored Feeds on Fogo
# Push Feeds on Fogo

## Fogo Testnet

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SponsoredFeedsTable } from "../../../components/SponsoredFeedsTableWithData";
import movementMainnet from "../sponsored-feeds/data/movement/movement_mainnet.json";
import movementMainnet from "../pushed-feeds/data/movement/movement_mainnet.json";

# Sponsored Feeds on Movement
# Push Feeds on Movement

## Movement Mainnet

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SponsoredFeedsTable } from "../../../components/SponsoredFeedsTableWithData";
import solanaMainnet from "../sponsored-feeds/data/svm/solana_mainnet.json";
import solanaMainnet from "../pushed-feeds/data/svm/solana_mainnet.json";

# Sponsored Feeds on Solana
# Push Feeds on Solana

## Solana Mainnet

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { SponsoredFeedsTable } from "../../../components/SponsoredFeedsTableWithData";
import suiMainnet from "../sponsored-feeds/data/sui/sui_mainnet.json";
import suiMainnet from "../pushed-feeds/data/sui/sui_mainnet.json";

# Sponsored Feeds on Sui
# Push Feeds on Sui

## Sui Mainnet

Expand Down
Loading
Loading