diff --git a/docs/ensnode.io/astro.config.mjs b/docs/ensnode.io/astro.config.mjs index 01fc65f8ad..25202aaf14 100644 --- a/docs/ensnode.io/astro.config.mjs +++ b/docs/ensnode.io/astro.config.mjs @@ -79,11 +79,12 @@ export default defineConfig({ "/docs/services/ensrainbow/concepts/label-sets-and-versioning", "/docs/reference/rest-api": "/docs/services/ensapi/reference/api-reference", "/docs/integrate/hosted-instances": "/docs/hosted-instances", - "/docs/integrate/migrate-from-subgraph": "/docs/integrate/ensv2-readiness", - "/docs/reference/ensnode-v2-notes": "/docs/integrate/ensv2-readiness", + "/docs/integrate/migrate-from-subgraph": "/docs/integrate/why-ensnode/ensv2-readiness", + "/docs/reference/ensnode-v2-notes": "/docs/integrate/why-ensnode/ensv2-readiness", "/docs/reference/mainnet-registered-subnames-of-subregistries": "/docs/integrate/omnigraph", - "/docs/reference/roadmap": "/docs/integrate/ensv2-readiness", + "/docs/reference/roadmap": "/docs/integrate/why-ensnode/ensv2-readiness", "/docs/reference/what-is-ensnode": "/docs/integrate/why-ensnode", + "/docs/integrate/ensv2-readiness": "/docs/integrate/why-ensnode/ensv2-readiness", }, env: { schema: { diff --git a/docs/ensnode.io/config/integrations/llms-txt.ts b/docs/ensnode.io/config/integrations/llms-txt.ts index 88c7d603a3..f594b041a0 100644 --- a/docs/ensnode.io/config/integrations/llms-txt.ts +++ b/docs/ensnode.io/config/integrations/llms-txt.ts @@ -17,5 +17,6 @@ export const starlightLlmsTxtPlugin = starlightLlmsTxt({ "docs/integrate/integration-options/enskit/example", "docs/integrate/omnigraph/schema-reference", "docs/integrate/ens-subgraph/schema-reference", + "docs/integrate/why-ensnode/keep-ens-working", ], }); diff --git a/docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts b/docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts index dcc5856c27..7e20f42bbe 100644 --- a/docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts +++ b/docs/ensnode.io/config/integrations/starlight/sidebar-topics/integrate.ts @@ -10,15 +10,25 @@ export const integrateSidebarTopic = { }, { label: "Why ENSNode?", - link: "/docs/integrate/why-ensnode", - }, - { - label: "ENSv2 Readiness", - link: "/docs/integrate/ensv2-readiness", + collapsed: false, + items: [ + { + label: "Overview", + link: "/docs/integrate/why-ensnode", + }, + { + label: "Keep ENS apps working 🚨", + link: "/docs/integrate/why-ensnode/keep-ens-working", + }, + { + label: "ENSv2 Readiness", + link: "/docs/integrate/why-ensnode/ensv2-readiness", + }, + ], }, { label: "ENS Subgraph", - collapsed: true, + collapsed: false, badge: { text: "LEGACY", variant: "danger", diff --git a/docs/ensnode.io/src/components/atoms/NotENSv2ReadyBadge.tsx b/docs/ensnode.io/src/components/atoms/NotENSv2ReadyBadge.tsx new file mode 100644 index 0000000000..4e574721d0 --- /dev/null +++ b/docs/ensnode.io/src/components/atoms/NotENSv2ReadyBadge.tsx @@ -0,0 +1,82 @@ +import type React from "react"; +import { CheckSolidIcon } from "@components/atoms/icons/CheckSolidIcon"; +import { SkullIcon } from "@components/atoms/icons/SkullIcon"; +import { XMarkIcon } from "@components/atoms/icons/XMarkIcon"; +import { Tooltip } from "@namehash/namehash-ui/legacy"; +import { useIsMobile } from "@namehash/namehash-ui"; + +export interface ENSSubgraphDependentApplicationTransitionStages { + toENSNodeSubgraphCompatibleEndpoint: boolean; + toOmnigraphAPI: boolean; +} + +interface NotENSv2ReadyBadgeProps { + transitionStages: ENSSubgraphDependentApplicationTransitionStages; +} +export const NotENSv2ReadyBadge = ({ transitionStages }: NotENSv2ReadyBadgeProps) => { + const isMobile = useIsMobile(440); + return ( + + + Not ENSv2 ready + + + } + > + + + ); +}; + +const ENSv2NotReadyTooltipContent = ({ transitionStages }: NotENSv2ReadyBadgeProps) => { + const transitionInfoStyles = "flex flex-row flex-nowrap justify-start items-start gap-1.5"; + + return ( +
+
+ {transitionStages.toENSNodeSubgraphCompatibleEndpoint ? ( + + ) : ( + + )} +

Transitioned from The Graph to ENSNode

+
+
+ {transitionStages.toOmnigraphAPI ? ( + + ) : ( + + )} +

Transitioned from the Subgraph API to the Omnigraph API

+
+
+ ); +}; + +// This icon is located here (and not exported) +// because this variant of info icon is only used in this badge +// and nowhere else in the codebase +const NotENSv2ReadyInfoIcon = (props: React.SVGProps) => ( + + + +); diff --git a/docs/ensnode.io/src/components/atoms/icons/CheckSolidIcon.tsx b/docs/ensnode.io/src/components/atoms/icons/CheckSolidIcon.tsx new file mode 100644 index 0000000000..556872a5ff --- /dev/null +++ b/docs/ensnode.io/src/components/atoms/icons/CheckSolidIcon.tsx @@ -0,0 +1,27 @@ +import type React from "react"; + +export const CheckSolidIcon = (props: React.SVGProps) => ( + + + + + + + + + +); diff --git a/docs/ensnode.io/src/components/atoms/icons/SkullIcon.tsx b/docs/ensnode.io/src/components/atoms/icons/SkullIcon.tsx new file mode 100644 index 0000000000..bddff5c640 --- /dev/null +++ b/docs/ensnode.io/src/components/atoms/icons/SkullIcon.tsx @@ -0,0 +1,24 @@ +import type React from "react"; + +export const SkullIcon = (props: React.SVGProps) => ( + + + + + + + + + + +); diff --git a/docs/ensnode.io/src/components/molecules/upgrade-to-omnigraph-required-table/ENSSubgraphDependentApp.astro b/docs/ensnode.io/src/components/molecules/upgrade-to-omnigraph-required-table/ENSSubgraphDependentApp.astro new file mode 100644 index 0000000000..e7e32b9d91 --- /dev/null +++ b/docs/ensnode.io/src/components/molecules/upgrade-to-omnigraph-required-table/ENSSubgraphDependentApp.astro @@ -0,0 +1,17 @@ +--- +import { NotENSv2ReadyBadge } from "@components/atoms/NotENSv2ReadyBadge"; +import type { ENSSubgraphDependentApplicationTransitionStages } from "@components/atoms/NotENSv2ReadyBadge"; + +interface Props extends ENSSubgraphDependentApplicationTransitionStages {} + +const { toENSNodeSubgraphCompatibleEndpoint, toOmnigraphAPI } = Astro.props; +--- + +
+ + +
diff --git a/docs/ensnode.io/src/components/molecules/upgrade-to-omnigraph-required-table/index.astro b/docs/ensnode.io/src/components/molecules/upgrade-to-omnigraph-required-table/index.astro new file mode 100644 index 0000000000..2671e9af60 --- /dev/null +++ b/docs/ensnode.io/src/components/molecules/upgrade-to-omnigraph-required-table/index.astro @@ -0,0 +1,11 @@ +--- +--- + +
+

+ Upgrade to the ENS Omnigraph required +

+ +
diff --git a/docs/ensnode.io/src/content/docs/docs/integrate/ens-subgraph/index.mdx b/docs/ensnode.io/src/content/docs/docs/integrate/ens-subgraph/index.mdx index 75d4cc0479..5a941c8662 100644 --- a/docs/ensnode.io/src/content/docs/docs/integrate/ens-subgraph/index.mdx +++ b/docs/ensnode.io/src/content/docs/docs/integrate/ens-subgraph/index.mdx @@ -11,6 +11,11 @@ import { LinkCard } from "@astrojs/starlight/components"; :::danger[🚨 The ENS Subgraph is not ENSv2 compatible] The ENS Subgraph **fundamentally fails as a source of ENS data as soon as ENSv2 launches.** + ::: -## The ENS Subgraph became critical infrastructure - -Over the years, the ENS Subgraph quietly became one of the most depended-on pieces of infrastructure in ENS. An enormous swath of the ENS ecosystem β€” and much of the broader web3 / Ethereum ecosystem β€” reads ENS data through it, directly or indirectly. - -### Usage at scale - -The ENS Subgraph is a cornerstone of the current ENS architecture (ENSv1), handling an extraordinary volume of requests: - -- **Approx. 2 million average daily requests** -- **Over 717 million requests annually** - -
- ENS Subgraph usage metrics showing daily query volume -
- ENS Subgraph daily query volume following the transition to Graph Network hosting (June 20, 2024 - onward) -
-
- -This volume sets the floor: it's the minimum scale at which any replacement must operate. - -## Applications dependent on the ENS Subgraph - -The list below is a **partial** map of the projects and applications that depend on the ENS Subgraph for their functionality β€” directly, or indirectly through services like the ENS Metadata Service, ENSjs, or the Ethereum Comments Protocol. When ENSv2 launches, indexed ENS data must keep flowing to all of these, or they break. - -### Critical ENS Apps & Infrastructure - -- **[Official ENS Manager App](https://app.ens.domains/)** β€” the primary interface for ENS domain management. -- **[ENS Metadata Service](https://github.com/ensdomains/ens-metadata-service)** β€” used by numerous downstream services including NFT marketplaces (OpenSea, Rarible), Rainbow Wallet, and Rotki. -- **[ENSjs](https://github.com/ensdomains/ensjs)** β€” JavaScript library for ENS integration, used by many ENS-integrated applications. -- **[ENS Test Environment](https://github.com/ensdomains/ens-test-env)** β€” testing framework for ENS development. -- **[Linea Names](https://github.com/Consensys/linea-ens)** β€” primary management interface for `linea.eth` subnames on Linea. - -### ENS Registrars - -- **[Grails](https://grails.app/)** β€” by the [EthId Foundation](https://ethid.org/). -- **[ENS Vision](https://ensvision.com/)** -- **[OpenSea](https://opensea.io/)** and **[Rarible](https://rarible.com/)** β€” via their dependency on the ENS Metadata Service. -- **[ENS Tools](https://ens.tools/)** -- **[Snipe Zone](https://snipe.zone/)** -- **[Nameful](https://github.com/blockful/nameful)** β€” by [Blockful](https://www.blockful.io/). - -### Wallets - -- **[Rainbow Wallet](https://rainbow.me/)** β€” mobile wallet and browser extension. -- **[MyEtherWallet](https://www.myetherwallet.com/)** β€” Ethereum wallet. -- **[Safe Transaction Service](https://github.com/safe-global/safe-transaction-service)** β€” by [Safe](https://safe.global/). - -### Chain Explorers - -- **[Blockscout](https://www.blockscout.com/)** β€” blockchain explorer platform. -- **[EthVM](https://www.ethvm.com/)** β€” by [MyEtherWallet](https://www.myetherwallet.com/). -- **[Cartesi Explorer](https://explorer.cartesi.io/)** β€” by [Cartesi](https://cartesi.io/). - -### DAO Infrastructure - -- **[Snapshot.js](https://github.com/snapshot-labs/snapshot.js)** β€” TypeScript library for Snapshot integration. -- **[Snapshot](https://snapshot.box/)** β€” via [Stamp](https://github.com/snapshot-labs/stamp). This is a distinct integration from `snapshot.js`. -- **[DAOStar](https://daostar.org/)** β€” by [Metagov](http://Metagov.org). -- **[ENS Metadata Manager](https://ensmetadata.app/)** β€” by [Lighthouse](https://lighthouse.cx/) ([more info](https://discuss.ens.domains/t/kickoff-organizational-metadata-on-ens/21459/7?u=lightwalker.eth)). -- **[Optimism GovQuests](https://op-govquests.vercel.app/)** β€” by [Bleu](https://bleu.builders/en). - -### ENS History Viewers - -- **[ENSvolution](https://www.ensvolution.xyz/?name=nick.eth)** β€” by [JustaName](https://www.justaname.id/). -- **[PastENS](https://www.pastens.com/)** -- **[Swiss Knife](https://swiss-knife.xyz/)** β€” by [apoorv.eth](https://x.com/apoorveth). -- **[ENS Wayback Machine](https://wayback-machine.eth.limo/)** β€” by [Blossom](https://blossom.software/). - -### ENS Developer Tools - -- **[ENS Resolver](https://adraffy.github.io/ens-normalize.js/test/resolver.html)** β€” by [Andrew Raffensperger](https://raffy.antistupid.com/). -- **[ENS Tools](https://tools.ens.xyz/)** β€” by [ENS Labs](https://www.enslabs.org/). -- **[ENS Tools](https://github.com/ensdomains/ens-misctools)** β€” by Serenae. - -### ENS CLI Tools - -- **[Atlas](https://github.com/stevedylandev/atlas)** β€” by [Steve Dylan](https://x.com/stevedylandev). -- **[Ensemble](https://github.com/estmcmxci/ensemble-beta)** β€” by [estmcmxci](https://x.com/estmcmxci). -- **[Basenames CLI](https://github.com/estmcmxci/basenames-cli)** β€” by [estmcmxci](https://x.com/estmcmxci). -- **[Grails CLI](https://github.com/grailsmarket/cli)** β€” by the [EthId Foundation](https://ethid.org/) (uses the Grails API, which uses ENSNode). - -### ENS MCP Servers - -- **[ENS MCP Service](https://github.com/thenamespace/ens-mcp)** β€” by [Namespace](https://www.namespace.ninja/). -- **[ENS MCP Service](https://discuss.ens.domains/t/introducing-the-ens-mcp-server-bringing-ens-to-claude-and-other-ai-assistants/20347)** β€” by [JustaName](https://www.justaname.id/). -- **[ENS MCP Service](https://github.com/kukapay/ens-mcp)** β€” by [Kukapay](https://github.com/kukapay). - -### ENS Avatar & Metadata Services - -- **[Stamp](https://github.com/snapshot-labs/stamp)** β€” by [Snapshot Labs](https://snapshot.box/). -- **[ENS Metadata Flarecloud](https://github.com/ethereumidentitykit/ens-metadata-flarecloud)** β€” by the [EthId Foundation](https://ethid.org/). - -### ENS Contract Naming Platforms - -- **[Enscribe](https://www.enscribe.xyz/)** - -### Ethereum Libraries - -- **[safe-eth-py](https://github.com/safe-global/safe-eth-py)** β€” by [Safe](https://safe.global/). - -### ENS Social Media Services - -- **[ENS Market Bot](https://github.com/ethereumidentitykit/ens-market-bot)** β€” by the [EthId Foundation](https://ethid.org/). - -### AI Agents / x402 / Micropayments / Proof of Humanity - -- **[Skills](https://github.com/thenamespace/skills)** β€” by [Namespace](https://www.namespace.ninja/). -- **[PrismOS](https://github.com/Koploseus/PrismOS)** -- **[HumanENS](https://humanens.eth.limo/)** ([GitHub](https://github.com/z-purr/HumanENS)) -- **[nayym](https://nayym.xyz/)** ([GitHub](https://github.com/thisisommore/nayym-cli)) - -### DeFi Applications - -- **[Rotki](https://rotki.com/)** β€” privacy-preserving portfolio tracking. - -### Social Applications - -- **[Ethereum Follow Protocol](https://efp.app/)** β€” onchain social graph protocol. -- **[LinkChain](https://ns-assignment.vercel.app/)** ([GitHub](https://github.com/divi2806/ns-assignment)) -- **[Dapp Rank](https://dapprank.eth.link/)** β€” by [Joel Thorstensson](https://x.com/joelthorst). -- **[Decentraland Builder](https://decentraland.org/builder/)** ([GitHub](https://github.com/decentraland/builder)) β€” by [Decentraland](https://decentraland.org/). -- **[Decentraland Creator Hub](https://decentraland.org/create)** ([GitHub](https://github.com/decentraland/creator-hub)) β€” by [Decentraland](https://decentraland.org/). - -### Other Key Applications - -- **[ENSPro](https://enspro.xyz/)** β€” by NameStone. -- **[ENSBook](https://github.com/hibbb/ensbook)** β€” by Liuliuben. -- **[L2 Subnames](https://github.com/thenamespace/l2-subnames)** β€” by Namespace. -- **[ENS Data](https://ensdata.net/)** β€” by Pugson. -- **[ENS Ideas](https://github.com/frolic/ens-ideas)** β€” by Frolic. -- **[Next.ID](https://next.id/)** β€” which also powers [Web3.bio](http://web3.bio/) (by Yan Zhu) and [Eth.cd](https://eth.cd/) (by Webhash / Hid). - -:::note[Help us expand this list] -Do you know of other applications that rely on the ENS Subgraph that aren't listed here? Please [open a PR](https://github.com/namehash/ensnode) to update this documentation. -::: - -## What this means - -The breadth of applications above shows that indexed ENS data is critical infrastructure for ENS and the broader ecosystem β€” and that there is large, proven demand for it today. When ENSv2 launches, the Subgraph's [Key Limitations](/docs/integrate/ens-subgraph/key-limitations) become breaking for these apps. ENSNode exists to keep indexed ENS data flowing through the transition and beyond, with a robust, scalable, multichain, ENSv2-ready replacement. - -## Already building directly on ENSNode - -A growing set of companies and apps have already moved onto ENSNode and future-proofed their ENS applications β€” [see who's already building on ENSNode](/docs/integrate/why-ensnode#join-those-already-building-on-ensnode). - -## Next Steps +## ENSNode Subgraph compatibility -Next, consider the key limitations of the legacy ENS Subgraph. +ENSNode maintains a verified Subgraph-compatible API for migrating existing integrations from The Graph, but it is **not** the path forward for ENSv2. - -Or, prepare your app or platform for ENSv2 by adopting ENSNode's Omnigraph API. - - diff --git a/docs/ensnode.io/src/content/docs/docs/integrate/index.mdx b/docs/ensnode.io/src/content/docs/docs/integrate/index.mdx index e878dc1f51..504f8b0b9f 100644 --- a/docs/ensnode.io/src/content/docs/docs/integrate/index.mdx +++ b/docs/ensnode.io/src/content/docs/docs/integrate/index.mdx @@ -14,7 +14,7 @@ import OmnigraphStaticExampleSet from "@components/organisms/OmnigraphStaticExam [ENSv2](https://ens.domains/ensv2) is the next generation of the [Ethereum Name Service](https://ens.domains) β€” a protocol upgrade that fundamentally changes how the ENS protocol works. ## What is the ENS Omnigraph? diff --git a/docs/ensnode.io/src/content/docs/docs/integrate/ensv2-readiness.mdx b/docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode/ensv2-readiness.mdx similarity index 100% rename from docs/ensnode.io/src/content/docs/docs/integrate/ensv2-readiness.mdx rename to docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode/ensv2-readiness.mdx diff --git a/docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode.mdx b/docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode/index.mdx similarity index 82% rename from docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode.mdx rename to docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode/index.mdx index 06faf71541..a69936821c 100644 --- a/docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode.mdx +++ b/docs/ensnode.io/src/content/docs/docs/integrate/why-ensnode/index.mdx @@ -16,7 +16,7 @@ ENSNode is built around ENSv2 from the ground up. The same query works against a ## One unified API over ENSv1 + ENSv2 @@ -40,45 +40,28 @@ No more wiring up a per-chain Subgraph, reconciling overlapping ENS Nametrees, o ## Full-stack integration surfaces -Whatever your stack looks like, there's an ENSNode integration shaped for it: +Whatever your stack looks like, there's an ENSNode integration shaped for it. - - - - - ## Why it matters beyond your app -Indexed ENS data is critical infrastructure for ENS β€” and the legacy ENS Subgraph is fundamentally unsuitable for ENSv2. Closing that gap is required for many of ENS's most important apps, including the official ENS Manager App. +Indexed ENS data is critical infrastructure for ENS β€” and the legacy ENS Subgraph is fundamentally unsuitable for ENSv2. Closing that gap is required for many of ENS's most important apps. @@ -119,7 +102,7 @@ A growing set of companies and apps have already moved onto ENSNode and have fut + ENS Subgraph usage metrics showing daily query volume +
+ ENS Subgraph daily query volume following the transition to Graph Network hosting (June 20, 2024 + onward) +
+ + +This volume sets the floor: it's the minimum scale at which any replacement must operate. + +## Applications dependent on the ENS Subgraph + +The list below is a **partial** map of the projects and applications that depend on the ENS Subgraph for their functionality β€” directly, or indirectly. When ENSv2 launches, indexed ENS data must keep flowing to all of these, or they break. + +### ENS Registrars + + + + Official ENS Manager App β€” the official interface for ENS domain registration and management. + + + + Grails β€” by the EthId Foundation. + + + + ENS Vision + + + + OpenSea and Rarible β€” via their dependency on the ENS Metadata Service. + + + + ENS Tools + + + + Snipe Zone + + + + Nameful β€” by Blockful. + + + + Linea Names β€” primary management interface for linea.eth subnames on Linea. + + + + ENSBook β€” by Liuliuben. + + + + ENS Ideas β€” by Frolic. + + + +### Wallets + + + + Rainbow Wallet + + + + MyEtherWallet + + + + Safe Transaction Service β€” by Safe. + + + + Rotki β€” privacy-preserving portfolio tracking. + + + +### Chain Explorers + + + + Blockscout + + + + EthVM β€” by MyEtherWallet. + + + + Cartesi Explorer β€” by Cartesi. + + + +### DAO Infrastructure + + + + Snapshot β€” via Stamp. This is a distinct integration from snapshot.js. + + + + Snapshot.js β€” TypeScript library for Snapshot integration. + + + + DAOStar β€” by Metagov. + + + + ENS Metadata Manager β€” by Lighthouse (more info). + + + + Optimism GovQuests β€” by Bleu. + + + +### ENS History Viewers + + + + ENSvolution β€” by JustaName. + + + + PastENS + + + + Swiss Knife β€” by apoorv.eth. + + + + ENS Wayback Machine β€” by Blossom. + + + +### Developer Tools + + + + Enscribe β€” ENS contract naming platform + + + + ENSjs β€” The official ENS JavaScript library. + + + + ENS Test Environment β€” The official testing environment for ENS development. + + + + ENS Resolver β€” by Andrew Raffensperger. + + + + ENS Tools β€” by ENS Labs. + + + + ENS Tools β€” by Serenae. + + + + ENS Data β€” by Pugson. + + + + safe-eth-py β€” by Safe. + + + +### ENS CLI Tools + + + + Atlas β€” by Steve Dylan. + + + + Ensemble β€” by estmcmxci. + + + + Basenames CLI β€” by estmcmxci. + + + + Grails CLI β€” by the EthId Foundation (uses the Grails API, which uses ENSNode). + + + +### ENS AI Agents + + + + ENS MCP Service β€” by Namespace. + + + + ENS MCP Service β€” by JustaName. + + + + ENS MCP Service β€” by Kukapay. + + + + Skills β€” by Namespace. + + + + PrismOS + + + + HumanENS (GitHub) + + + + nayym (GitHub) + + + +### ENS Avatar & Metadata Services + + + + ENS Metadata Service β€” the primary service used across the ENS ecosystem for loading ENS avatar images. + + + + Stamp β€” by Snapshot Labs. + + + + ENS Metadata Flarecloud β€” by the EthId Foundation. + + + +### Social Applications + + + + Ethereum Follow Protocol β€” onchain social graph protocol. + + + + Next.ID + + + + Web3.bio β€” builds on Next.ID. + + + + Eth.cd β€” builds on Next.ID, by Webhash. + + + + ENS Market Bot β€” by the EthId Foundation. + + + + LinkChain (GitHub) + + + + Dapp Rank β€” by Joel Thorstensson. + + + + Decentraland Builder (GitHub) β€” by Decentraland. + + + + Decentraland Creator Hub (GitHub) β€” by Decentraland. + + + +### Subname Providers + + + + L2 Subnames β€” by Namespace. + + + + ENSPro β€” by NameStone. + + + +:::note[Help us expand this list] +Do you know of other applications that rely on the ENS Subgraph that aren't listed here? Please [open a PR](https://github.com/namehash/ensnode) to update this documentation. +::: + +## What this means + +The breadth of applications above shows that indexed ENS data is critical infrastructure for ENS and the broader ecosystem β€” and that there is large, proven demand for it today. When ENSv2 launches, the Subgraph's [Key Limitations](/docs/integrate/ens-subgraph/key-limitations) become breaking for these apps. ENSNode exists to keep indexed ENS data flowing through the transition and beyond, with a robust, scalable, multichain, ENSv2-ready replacement. + +## Already building directly on ENSNode + +A growing set of companies and apps have already moved onto ENSNode β€” [see who's already building on ENSNode](/docs/integrate/why-ensnode#join-those-already-building-on-ensnode). + +## Next Steps + +Next, consider the key limitations of the legacy ENS Subgraph. + + + +Or, prepare your app or platform for ENSv2 by adopting ENSNode's Omnigraph API. + + diff --git a/docs/ensnode.io/src/styles/starlight.css b/docs/ensnode.io/src/styles/starlight.css index cdd5977307..7859a88109 100644 --- a/docs/ensnode.io/src/styles/starlight.css +++ b/docs/ensnode.io/src/styles/starlight.css @@ -224,13 +224,15 @@ a[rel="prev"]:hover { --sl-color-white): keep links their base color on hover so only the underline-offset animates. */ .sl-markdown-content a:hover:not(:where(.not-content *)), -.sl-markdown-content a:hover:not(:where(.not-content *)) > span { +.sl-markdown-content a:hover:not(:where(.not-content *)) > span, +.omnigraph-required-table-content { color: var(--sl-color-text-accent); } .sl-markdown-content > p a:not(:has(code), [role="tab"]), .sl-markdown-content :is(ul, ol) > li a:not(:has(code), [role="tab"]), -.starlight-aside__content a { +.starlight-aside__content a, +.omnigraph-required-table-content { text-decoration: underline; text-underline-offset: 4px;