@@ -116,235 +63,12 @@ Recommended native token amounts for bonding:
## Contract References
-The following contracts are deployed at version **v1.6.4**.
-
-
- Base
- Arbitrum
- BNB Chain
- Monad
- Arc
- HyperEVM
- Ink
- Robinhood Chain
- Unichain
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
-
-
-
- | Contract |
- Address |
-
-
-
-
- | Atlas (v1.6.4) |
-
-
- |
-
-
- | DappControl |
-
-
- |
-
-
-
-
-
+Each chain has a live Atlas deployment and a live DappControl:
+
+- **Atlas**: The auction contract, deployed at version **v1.6.4**. Searchers bond native tokens here to cover the gas costs of their operation and the oracle update, and call it to unbond and redeem.
+- **DappControl**: The dApp-specific module that defines the auction rules for Chainlink SVR. Searchers read parameters such as the solver gas limit from it, and filter incoming user operations by its address.
+
+
## Feed Aggregator Addresses
@@ -568,7 +292,7 @@ interface IAtlas {
function depositAndBond(uint256 amountToBond) external payable;
}
-address atlasAddress = address(0x8e098Dfd60aEC9bCf07fd3cA5933e9F22b1b4A0d);
+address atlasAddress = address(0x583dcFef0D240DC80753F0F0B26513feE27D9B77);
uint256 amountToBond = 1e18;
IAtlas(atlasAddress).depositAndBond{ value: amountToBond }(amountToBond);
@@ -594,7 +318,7 @@ interface IAtlas {
function ESCROW_DURATION() external view returns (uint256);
}
-address atlasAddress = address(0x8e098Dfd60aEC9bCf07fd3cA5933e9F22b1b4A0d);
+address atlasAddress = address(0x583dcFef0D240DC80753F0F0B26513feE27D9B77);
uint256 amountToUnbond = 1e18;
IAtlas(atlasAddress).unbond(amountToUnbond);
@@ -962,7 +686,7 @@ var (
chainId = big.NewInt(8453)
// Filtering notifications for the Chainlink dApp control (module) address only
- dAppControlAddress = common.HexToAddress("0xe15BBa987C002ecc3586e81244517877D294d291")
+ dAppControlAddress = common.HexToAddress("0xa5E1a36938769cbd5a26f5e19D8FCB379f597c83")
)
// This function returns true if the notification is of interest and false
diff --git a/src/features/feeds/components/AtlasContractsTable.module.css b/src/features/feeds/components/AtlasContractsTable.module.css
new file mode 100644
index 00000000000..2a6ff44dfa8
--- /dev/null
+++ b/src/features/feeds/components/AtlasContractsTable.module.css
@@ -0,0 +1,14 @@
+/* Overrides the nth-child widths from Tables.module.css. The doubled class
+ raises specificity above those rules without referencing a foreign class. */
+.atlasTable.atlasTable th:nth-child(1),
+.atlasTable.atlasTable td:nth-child(1) {
+ width: 1%;
+ white-space: nowrap;
+}
+
+.atlasTable.atlasTable th:nth-child(2),
+.atlasTable.atlasTable td:nth-child(2),
+.atlasTable.atlasTable th:nth-child(3),
+.atlasTable.atlasTable td:nth-child(3) {
+ width: 50%;
+}
diff --git a/src/features/feeds/components/AtlasContractsTable.tsx b/src/features/feeds/components/AtlasContractsTable.tsx
new file mode 100644
index 00000000000..cd2fc880a13
--- /dev/null
+++ b/src/features/feeds/components/AtlasContractsTable.tsx
@@ -0,0 +1,63 @@
+/** @jsxImportSource preact */
+import { clsx } from "~/lib/clsx/clsx.ts"
+import tableStyles from "./Tables.module.css"
+import atlasStyles from "./AtlasContractsTable.module.css"
+import { ATLAS_CONTRACTS } from "../utils/atlasContracts.ts"
+
+const ATLAS_CHAINS: { label: string; key: string }[] = [
+ { label: "Arbitrum", key: "arbitrum" },
+ { label: "Arc", key: "arc" },
+ { label: "Base", key: "base" },
+ { label: "BNB Chain", key: "bnb-chain" },
+ { label: "HyperEVM", key: "hyperevm" },
+ { label: "Ink", key: "ink" },
+ { label: "Monad", key: "monad" },
+ { label: "Robinhood Chain", key: "robinhood" },
+ { label: "Unichain", key: "unichain" },
+]
+
+export const AddressCell = ({ address, explorerUrl }: { address: string; explorerUrl: string }) => (
+
()
@@ -555,6 +556,11 @@ export const FeedList = ({
return [...labels].sort()
}, [isSvr, currentChainMetadata.processedData])
+ const atlasContracts = useMemo(
+ () => (isSvr ? getAtlasContracts(selectedChain.page) : null),
+ [isSvr, selectedChain.page]
+ )
+
useEffect(() => {
if (!chainHasSvr && showOnlySVR) {
setShowOnlySVR(false)
@@ -1769,6 +1775,36 @@ export const FeedList = ({
examples.
)}
+ {isSvr && atlasContracts && (
+ <>
+
+ Searchers bond native tokens to the Atlas contract and query the{" "}
+ DappControl contract for auction parameters such as the solver gas limit.
+
+
+
+
+ | Contract |
+ Address |
+
+
+
+
+ | Atlas (v1.6.4) |
+
+
+ |
+
+
+ | DappControl |
+
+
+ |
+
+
+
+ >
+ )}
{network.name === "Aptos Mainnet" && (
<>
diff --git a/src/features/feeds/utils/atlasContracts.ts b/src/features/feeds/utils/atlasContracts.ts
new file mode 100644
index 00000000000..8e67b559a5c
--- /dev/null
+++ b/src/features/feeds/utils/atlasContracts.ts
@@ -0,0 +1,65 @@
+/**
+ * Atlas + DappControl addresses for SVR auctions, keyed by chain page.
+ * Sourced from the reference-data-directory `dAppControl` entries, where
+ * `destination` is the Atlas contract. Tempo is absent: it has SVR but no Atlas.
+ */
+export interface AtlasContracts {
+ atlas: string
+ dappControl: string
+ /** Block explorer URL template; `%s` is replaced with the address. */
+ explorerUrl: string
+}
+
+export const ATLAS_CONTRACTS: Record = {
+ base: {
+ atlas: "0x583dcFef0D240DC80753F0F0B26513feE27D9B77",
+ dappControl: "0xa5E1a36938769cbd5a26f5e19D8FCB379f597c83",
+ explorerUrl: "https://basescan.org/address/%s",
+ },
+ arbitrum: {
+ atlas: "0x8ad1aE9D97C79aA68A0a151E83ff3942f68F86C1",
+ dappControl: "0xe15BBa987C002ecc3586e81244517877D294d291",
+ explorerUrl: "https://arbiscan.io/address/%s",
+ },
+ "bnb-chain": {
+ atlas: "0x21B7d28B882772A1Cfe633Daee6f42ebb95DeC4E",
+ dappControl: "0x7D50b32444609A9B53BcF208c159C8d0d0767835",
+ explorerUrl: "https://bscscan.com/address/%s",
+ },
+ monad: {
+ atlas: "0x2DA28fedc4643c787CB5c5e84fa6AaDb596875E8",
+ dappControl: "0xa40d9f38621b4ffb2181508b973519e8133951c0",
+ explorerUrl: "https://monadvision.com/address/%s",
+ },
+ arc: {
+ atlas: "0x3b7B38362bB7E2F000Cd2432343F3483F785F435",
+ dappControl: "0x5210729C598746F2bD7A22d5B66A7cDE72f462E7",
+ explorerUrl: "https://explorer.arc.io/address/%s",
+ },
+ hyperevm: {
+ atlas: "0x137B8Fdf027598f1Bf5F2d60cB081bD8539BD8c7",
+ dappControl: "0x2ac121f89b39BA231CBF8Abf7aC6D0140f6B8821",
+ explorerUrl: "https://hyperevmscan.io/address/%s",
+ },
+ ink: {
+ atlas: "0x3efbaBE0ee916A4677D281c417E895a3e7411Ac2",
+ dappControl: "0xB0B992eaed9CbB37667E25D9C5214CDEB406Bd13",
+ explorerUrl: "https://explorer.inkonchain.com/address/%s",
+ },
+ robinhood: {
+ atlas: "0x3efbaBE0ee916A4677D281c417E895a3e7411Ac2",
+ dappControl: "0xC9eACB1CF3bBe2874ccF5d25737c418Cfb944340",
+ explorerUrl: "https://robinhoodchain.blockscout.com/address/%s",
+ },
+ unichain: {
+ atlas: "0xbAf4fBB4FD65199D5795Ee4990B9661387ce3B6e",
+ dappControl: "0x763D32a9EDf2F1684F1Dee50AB6CcCa5b68EF655",
+ explorerUrl: "https://uniscan.xyz/address/%s",
+ },
+}
+
+/** Returns the Atlas contracts for a chain page, or null when Atlas is not deployed. */
+export function getAtlasContracts(chainPage?: string): AtlasContracts | null {
+ if (!chainPage) return null
+ return ATLAS_CONTRACTS[chainPage] ?? null
+}
diff --git a/src/features/feeds/utils/svrDetection.ts b/src/features/feeds/utils/svrDetection.ts
index dcb62bdb96c..26f6c1b0125 100644
--- a/src/features/feeds/utils/svrDetection.ts
+++ b/src/features/feeds/utils/svrDetection.ts
@@ -2,8 +2,6 @@ import { type ChainMetadata } from "~/features/data/api/index.ts"
import type { DataFeedType } from "../types.ts"
import { type FeedVisibilityOptions, isFeedVisible } from "./feedVisibility.ts"
-// This file contains functions to detect and classify SVR feeds based on their metadata.
-//
// SVR feeds are identified by the presence of a `secondaryProxyAddress`.
export function isSvrFeed(metadata: ChainMetadata): boolean {
return !!metadata?.secondaryProxyAddress
@@ -12,19 +10,13 @@ export function isSvrFeed(metadata: ChainMetadata): boolean {
/** Fallback label used when the RDD does not provide `svrDisplayLabel`. */
export const DEFAULT_SVR_LABEL = "SVR"
-/**
- * Returns the SVR variant label for a feed, or `null` when the feed is not an
- * SVR feed. Unknown/new labels are passed through unchanged so they still render.
- */
+/** Returns the SVR variant label for a feed, or `null` if it is not an SVR feed. */
export function getSvrType(metadata: ChainMetadata): string | null {
if (!metadata?.secondaryProxyAddress) return null
return metadata.svrDisplayLabel || DEFAULT_SVR_LABEL
}
-/**
- * Returns the distinct SVR variant labels present on a network, sorted for
- * stable rendering. Used to build the SVR type filter checkboxes dynamically.
- */
+/** Returns the distinct SVR variant labels present on a network, sorted. */
export function getSvrTypesOnNetwork(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
network: any
@@ -66,10 +58,7 @@ export function chainHasSvrFeeds(
)
}
-/**
- * Documentation anchor for a given SVR variant label. Unknown/new labels fall
- * back to the SVR Feeds overview page.
- */
+/** Docs anchor for an SVR variant label; unknown labels fall back to the overview. */
export function getSvrTypeDocLink(label: string): string {
switch (label) {
case "Aave SVR":
From 8a5ed71a9dac113c8147d8587fadf4b2c17d14bd Mon Sep 17 00:00:00 2001
From: devin distefano
Date: Tue, 6 Oct 2026 13:29:17 -0500
Subject: [PATCH 4/4] tempo removal
---
src/content/data-feeds/llms-full.txt | 6 ------
src/content/data-feeds/svr-feeds/index.mdx | 1 -
.../data-feeds/svr-feeds/searcher-onboarding-atlas.mdx | 7 -------
3 files changed, 14 deletions(-)
diff --git a/src/content/data-feeds/llms-full.txt b/src/content/data-feeds/llms-full.txt
index dd4ead97a07..477808f1a5c 100644
--- a/src/content/data-feeds/llms-full.txt
+++ b/src/content/data-feeds/llms-full.txt
@@ -6329,7 +6329,6 @@ Chainlink SVR supports two auction paths depending on the network:
| ------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------- |
| Ethereum Mainnet | Flashbots MEV-Share | [Searcher Onboarding: Ethereum Mainnet](/data-feeds/svr-feeds/searcher-onboarding-ethereum) |
| Base, Arbitrum, BNB Chain, Monad, Arc, HyperEVM, Ink, Robinhood Chain, Unichain | Atlas | [Searcher Onboarding: Atlas](/data-feeds/svr-feeds/searcher-onboarding-atlas) |
-| Tempo | None (no OFA) | SVR proxies only; Atlas is not deployed |
## Economics and Revenue Split
@@ -6373,11 +6372,6 @@ Source: https://docs.chain.link/data-feeds/svr-feeds/searcher-onboarding-atlas
Atlas is currently live on the following networks: Base, Arbitrum, BNB Chain, Monad, Arc, HyperEVM, Ink, Robinhood Chain, and Unichain. See [Contract References](#contract-references) for the deployed addresses.
-> **NOTE: Tempo**
->
-> SVR is available on Tempo, but Atlas is not deployed there. Tempo uses SVR proxies without any order flow auction
-> (OFA) functionality while auctionDON support is pending. Searchers cannot participate in Atlas auctions on Tempo.
-
## Core Components
- **SVR Price Feeds**: Modified Chainlink aggregators used for SVR auction transactions.
diff --git a/src/content/data-feeds/svr-feeds/index.mdx b/src/content/data-feeds/svr-feeds/index.mdx
index 670c6936c38..49e9d22f9fe 100644
--- a/src/content/data-feeds/svr-feeds/index.mdx
+++ b/src/content/data-feeds/svr-feeds/index.mdx
@@ -175,7 +175,6 @@ Chainlink SVR supports two auction paths depending on the network:
| ------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------- |
| Ethereum Mainnet | Flashbots MEV-Share | [Searcher Onboarding: Ethereum Mainnet](/data-feeds/svr-feeds/searcher-onboarding-ethereum) |
| Base, Arbitrum, BNB Chain, Monad, Arc, HyperEVM, Ink, Robinhood Chain, Unichain | Atlas | [Searcher Onboarding: Atlas](/data-feeds/svr-feeds/searcher-onboarding-atlas) |
-| Tempo | None (no OFA) | SVR proxies only; Atlas is not deployed |
## Economics and Revenue Split
diff --git a/src/content/data-feeds/svr-feeds/searcher-onboarding-atlas.mdx b/src/content/data-feeds/svr-feeds/searcher-onboarding-atlas.mdx
index 7d3c9ab4146..0a303409e39 100644
--- a/src/content/data-feeds/svr-feeds/searcher-onboarding-atlas.mdx
+++ b/src/content/data-feeds/svr-feeds/searcher-onboarding-atlas.mdx
@@ -31,13 +31,6 @@ Searchers can [subscribe here](https://chainlinkcommunity.typeform.com/to/s55Hu2
Atlas is currently live on the following networks: Base, Arbitrum, BNB Chain, Monad, Arc, HyperEVM, Ink, Robinhood Chain, and Unichain. See [Contract References](#contract-references) for the deployed addresses.
-
-
## Core Components
- **SVR Price Feeds**: Modified Chainlink aggregators used for SVR auction transactions.