Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
10 changes: 5 additions & 5 deletions .github/scripts/data/detect-data.sh
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,11 @@ node <<EOF

// === data-streams networks
const STREAMS_NETWORKS = [
"0g", "apechain", "aptos", "arbitrum", "avalanche", "base", "berachain", "bitlayer", "blast",
"bnb-chain", "bob", "botanix", "celo", "ethereum", "gnosis-chain", "gravity", "hashkey", "hedera", "hyperliquid", "injective",
"ink", "jovay", "katana", "lens", "linea", "mantle", "metis", "monad", "opbnb", "optimism", "polygon", "pharos", "plasma", "ronin",
"scroll", "shibarium", "sei", "soneium", "sonic",
"solana", "taiko", "unichain", "worldchain", "zksync"
"0g", "apechain", "adi", "aptos", "arbitrum", "arc", "avalanche", "base", "berachain", "bitlayer", "blast",
"bnb-chain", "bob", "botanix", "celo", "dogeos", "ethereum", "gnosis-chain", "gravity", "hashkey",
"hedera", "hyperliquid", "injective", "ink", "jovay", "katana", "lens", "linea", "mantle",
"metis", "monad", "opbnb", "optimism", "polygon", "pharos", "plasma", "ronin", "scroll", "shibarium", "sei",
"soneium", "sonic", "solana", "stable", "taiko", "unichain", "worldchain", "zksync"
];

// === Build relatedTokens for FEEDS
Expand Down
10 changes: 10 additions & 0 deletions public/assets/chains/adi-network.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions public/changelog.json
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,14 @@
}
},
"data": [
{
"category": "integration",
"date": "2026-02-19",
"description": "Chainlink Data Streams is available for new blockchains:\n\n- ADI Mainnet\n- Arc Testnet\n- DogeOS Chikyu Testnet\n- Stable Mainnet\n- Stable Testnet\n\nThe verifier proxy addresses and stream IDs are available on the [Supported Networks](https://docs.chain.link/data-streams/supported-networks) page.",
"relatedNetworks": ["adi-network", "arc", "dogeos", "stable"],
"title": "Data Streams Expands to New Blockchains",
"topic": "Data Streams"
},
{
"category": "deprecation",
"date": "2026-02-18",
Expand Down
95 changes: 50 additions & 45 deletions src/components/QuickLinks/data/productChainLinks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,51 +167,55 @@ export const productChainLinks: ProductChainLinks = {
learnMoreLink: "data-streams",
logo: dataStreamsLogo,
chains: {
"0g": "/data-streams/crypto-streams",
apechain: "/data-streams/crypto-streams",
aptos: "/data-streams/crypto-streams",
arbitrum: "/data-streams/crypto-streams",
avalanche: "/data-streams/crypto-streams",
base: "/data-streams/crypto-streams",
berachain: "/data-streams/crypto-streams",
bitlayer: "/data-streams/crypto-streams",
blast: "/data-streams/crypto-streams",
"bnb-chain": "/data-streams/crypto-streams",
bob: "/data-streams/crypto-streams",
botanix: "/data-streams/crypto-streams",
celo: "/data-streams/crypto-streams",
ethereum: "/data-streams/crypto-streams",
"gnosis-chain": "/data-streams/crypto-streams",
gravity: "/data-streams/crypto-streams",
hashkey: "/data-streams/crypto-streams",
hedera: "/data-streams/crypto-streams",
hyperevm: "/data-streams/crypto-streams",
ink: "/data-streams/crypto-streams",
injective: "/data-streams/crypto-streams",
jovay: "/data-streams/crypto-streams",
lens: "/data-streams/crypto-streams",
linea: "/data-streams/crypto-streams",
mantle: "/data-streams/crypto-streams",
megaeth: "/data-streams/crypto-streams",
metis: "/data-streams/crypto-streams",
monad: "/data-streams/crypto-streams",
opbnb: "/data-streams/crypto-streams",
optimism: "/data-streams/crypto-streams",
pharos: "/data-streams/crypto-streams",
polygon: "/data-streams/crypto-streams",
polygonkatana: "/data-streams/crypto-streams",
plasma: "/data-streams/crypto-streams",
ronin: "/data-streams/crypto-streams",
sei: "/data-streams/crypto-streams",
scroll: "/data-streams/crypto-streams",
shibarium: "/data-streams/crypto-streams",
solana: "/data-streams/crypto-streams",
soneium: "/data-streams/crypto-streams",
sonic: "/data-streams/crypto-streams",
taiko: "/data-streams/crypto-streams",
unichain: "/data-streams/crypto-streams",
worldchain: "/data-streams/crypto-streams",
zksync: "/data-streams/crypto-streams",
"0g": "/data-streams/supported-networks?streamsNetwork=0g",
"adi-network": "/data-streams/supported-networks?streamsNetwork=adi",
arc: "/data-streams/supported-networks?streamsNetwork=arc",
apechain: "/data-streams/supported-networks?streamsNetwork=apechain",
aptos: "/data-streams/supported-networks?streamsNetwork=aptos",
arbitrum: "/data-streams/supported-networks?streamsNetwork=arbitrum",
avalanche: "/data-streams/supported-networks?streamsNetwork=avalanche",
base: "/data-streams/supported-networks?streamsNetwork=base",
berachain: "/data-streams/supported-networks?streamsNetwork=berachain",
bitlayer: "/data-streams/supported-networks?streamsNetwork=bitlayer",
blast: "/data-streams/supported-networks?streamsNetwork=blast",
"bnb-chain": "/data-streams/supported-networks?bnb",
bob: "/data-streams/supported-networks?streamsNetwork=bob",
botanix: "/data-streams/supported-networks?streamsNetwork=botanix",
celo: "/data-streams/supported-networks?streamsNetwork=celo",
dogeos: "/data-streams/supported-networks?streamsNetwork=dogeos",
ethereum: "/data-streams/supported-networks?streamsNetwork=ethereum",
"gnosis-chain": "/data-streams/supported-networks?streamsNetwork=gnosis",
gravity: "/data-streams/supported-networks?streamsNetwork=gravity",
hashkey: "/data-streams/supported-networks?streamsNetwork=hashkey",
hedera: "/data-streams/supported-networks?streamsNetwork=hedera",
hyperevm: "/data-streams/supported-networks?streamsNetwork=hyperevm",
ink: "/data-streams/supported-networks?streamsNetwork=ink",
injective: "/data-streams/supported-networks?streamsNetwork=injective",
jovay: "/data-streams/supported-networks?streamsNetwork=jovay",
lens: "/data-streams/supported-networks?streamsNetwork=lens",
linea: "/data-streams/supported-networks?streamsNetwork=linea",
mantle: "/data-streams/supported-networks?streamsNetwork=mantle",
megaeth: "/data-streams/supported-networks?streamsNetwork=megaeth",
metis: "/data-streams/supported-networks?streamsNetwork=metis",
monad: "/data-streams/supported-networks?streamsNetwork=monad",
opbnb: "/data-streams/supported-networks?streamsNetwork=opbnb",
optimism: "/data-streams/supported-networks?streamsNetwork=optimism",
pharos: "/data-streams/supported-networks?streamsNetwork=pharos",
polygon: "/data-streams/supported-networks?streamsNetwork=polygon",
polygonkatana: "/data-streams/supported-networks?streamsNetwork=katana",
plasma: "/data-streams/supported-networks?streamsNetwork=plasma",
ronin: "/data-streams/supported-networks?streamsNetwork=ronin",
sei: "/data-streams/supported-networks?streamsNetwork=sei",
scroll: "/data-streams/supported-networks?streamsNetwork=scroll",
shibarium: "/data-streams/supported-networks?streamsNetwork=shibarium",
solana: "/data-streams/supported-networks?streamsNetwork=solana",
soneium: "/data-streams/supported-networks?streamsNetwork=soneium",
sonic: "/data-streams/supported-networks?streamsNetwork=sonic",
stable: "/data-streams/supported-networks?streamsNetwork=stable",
taiko: "/data-streams/supported-networks?streamsNetwork=taiko",
unichain: "/data-streams/supported-networks?streamsNetwork=unichain",
worldchain: "/data-streams/supported-networks?streamsNetwork=worldchain",
zksync: "/data-streams/supported-networks?streamsNetwork=zksync",
},
},
Functions: {
Expand Down Expand Up @@ -438,6 +442,7 @@ export const chainNames: Record<string, string> = {
jovay: "Jovay",
stable: "Stable",
tempo: "Tempo",
"adi-network": "ADI Network",
arc: "Arc Network",
dogeos: "DogeOS",
}
31 changes: 27 additions & 4 deletions src/features/feeds/components/Tables.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -676,11 +676,34 @@ const SmartDataTr = ({ network, metadata, showExtraDetails, batchedCategoryData
export const StreamsNetworkAddressesTable = ({
allowExpansion = false,
defaultExpanded = false,
initialSearch = "",
}: {
allowExpansion?: boolean
defaultExpanded?: boolean
initialSearch?: string
} = {}) => {
const [searchValue, setSearchValue] = useState("")
// null = untouched; string = user has set a value
const [searchState, setSearchState] = useState<string | null>(null)

const urlSearch =
typeof window !== "undefined" ? (new URLSearchParams(window.location.search).get("streamsNetwork") ?? "") : ""

// Priority: user-typed value → SSR prop (when Astro can pass it) → URL param (client fallback)
const searchValue = searchState ?? (initialSearch || urlSearch)

const updateSearch = (value: string) => {
setSearchState(value)
if (typeof window === "undefined") return
const params = new URLSearchParams(window.location.search)
if (value) {
params.set("streamsNetwork", value)
} else {
params.delete("streamsNetwork")
}
const queryString = params.toString()
const newUrl = window.location.pathname + (queryString ? "?" + queryString : "") + window.location.hash
window.history.replaceState({ path: newUrl }, "", newUrl)
}

const normalizedSearch = searchValue.toLowerCase().replaceAll(" ", "")

Expand Down Expand Up @@ -709,10 +732,10 @@ export const StreamsNetworkAddressesTable = ({
placeholder="Search"
className={feedList.filterDropdown_searchInput}
value={searchValue}
onInput={(e) => setSearchValue((e.target as HTMLInputElement).value)}
onInput={(e) => updateSearch((e.target as HTMLInputElement).value)}
/>
{searchValue && (
<button className={clsx(button.secondary, feedList.clearFilterBtn)} onClick={() => setSearchValue("")}>
<button className={clsx(button.secondary, feedList.clearFilterBtn)} onClick={() => updateSearch("")}>
Clear filter
</button>
)}
Expand All @@ -728,7 +751,7 @@ export const StreamsNetworkAddressesTable = ({
</tr>
</thead>
<tbody>
{filteredNetworks.length === 0 ? (
{typeof window === "undefined" ? null : filteredNetworks.length === 0 ? (
<tr>
<td colSpan={3} style={{ textAlign: "center", padding: "2rem", fontStyle: "italic" }}>
No results found
Expand Down
43 changes: 42 additions & 1 deletion src/features/feeds/data/StreamsNetworksData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,15 @@ export const StreamsNetworksData: NetworkData[] = [
explorerUrl: "https://chainscan-galileo.0g.ai/address/%s",
},
},
{
network: "ADI Network",
logoUrl: "/assets/chains/adi-network.svg",
mainnet: {
label: "ADI Mainnet",
verifierProxy: "0x29b289DC5f840762FBF605FF4DF37df18FdA4e7a",
explorerUrl: "https://explorer.adifoundation.ai/address/%s",
},
},
{
network: "Apechain",
logoUrl: "/assets/chains/apechain.svg",
Expand Down Expand Up @@ -77,6 +86,15 @@ export const StreamsNetworksData: NetworkData[] = [
explorerUrl: "https://sepolia.arbiscan.io/address/%s",
},
},
{
network: "Arc",
logoUrl: "/assets/chains/arc.svg",
testnet: {
label: "Arc Testnet",
verifierProxy: "0x72790f9eB82db492a7DDb6d2af22A270Dcc3Db64",
explorerUrl: "https://testnet.arcscan.app/address/%s",
},
},
{
network: "Avalanche",
logoUrl: "/assets/chains/avalanche.svg",
Expand Down Expand Up @@ -222,6 +240,15 @@ export const StreamsNetworksData: NetworkData[] = [
explorerUrl: "https://sepolia.etherscan.io/address/%s",
},
},
{
network: "DogeOS",
logoUrl: "/assets/chains/dogeos.svg",
testnet: {
label: "DogeOS Chikyu Testnet",
verifierProxy: "0x72790f9eB82db492a7DDb6d2af22A270Dcc3Db64",
explorerUrl: "https://blockscout.testnet.dogeos.com/address/%s",
},
},
{
network: "Gnosis",
logoUrl: "/assets/chains/gnosis-chain.svg",
Expand Down Expand Up @@ -464,7 +491,7 @@ export const StreamsNetworksData: NetworkData[] = [
network: "Pharos",
logoUrl: "/assets/chains/pharos.svg",
mainnet: {
label: "Pharos Mainnet (Private)",
label: "Pharos Mainnet",
verifierProxy: "0xa094978891512268f4a4a4641B8da1A2a3E3BEB7",
explorerUrl: "https://pharos.socialscan.io/address/%s",
},
Expand Down Expand Up @@ -607,6 +634,20 @@ export const StreamsNetworksData: NetworkData[] = [
explorerUrl: "https://explorer.solana.com/address/%s?cluster=devnet",
},
},
{
network: "Stable",
logoUrl: "/assets/chains/stable.svg",
mainnet: {
label: "Stable Mainnet",
verifierProxy: "0x06034790F8b6c2573B91704BeC6Ab380cB590237",
explorerUrl: "https://stablescan.xyz/address/%s",
},
testnet: {
label: "Stable Testnet",
verifierProxy: "0x72790f9eB82db492a7DDb6d2af22A270Dcc3Db64",
explorerUrl: "https://testnet.stablescan.xyz/address/%s",
},
},
{
network: "Taiko",
logoUrl: "/assets/chains/taiko.svg",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
---
import { StreamsNetworkAddressesTable } from "@features/feeds/components/Tables"
import { StreamsNetworkAddressesTable } from "@features/feeds/components/Tables.tsx"
import Layout from "~/layouts/DocsLayout.astro"

const initialSearch = Astro.url.searchParams.get("streamsNetwork") ?? ""

const frontmatter = {
section: "dataLink",
date: "Last Modified",
Expand All @@ -23,5 +25,5 @@ const frontmatter = {
href="/datalink/pull-delivery/tutorials/onchain-verification-evm">Onchain Verification</a
> guide.
</p>
<StreamsNetworkAddressesTable client:load />
<StreamsNetworkAddressesTable client:load initialSearch={initialSearch} />
</Layout>
Loading