# Why ENSNode?

ENSNode is the full-stack ENSv2 development platform — a single, unified API over **both ENSv1 and ENSv2**, with first-class multichain support and the integration surfaces (React, TypeScript, GraphQL, Postgres) you need to ship.

## The Subgraph won't survive ENSv2

[ENSv2](https://ens.domains/ensv2) is a fundamental change to ENS's onchain data model. The legacy ENS Subgraph wasn't designed for it, and it never will be — single-chain, no resolution, no understanding of the new ENSv2 Namegraphs. Apps that stay on the Subgraph will be left behind the moment ENSv2 launches.

:::danger[🚨 What's at stake]
Indexed ENS data is critical infrastructure for ENS — and the legacy ENS Subgraph is fundamentally unsuitable for ENSv2. When ENSv2 launches, that gap becomes breaking for many of ENS's most important apps.

[Keep ENS apps working 🚨](/docs/integrate/why-ensnode/keep-ens-working)
[Key Limitations of the ENS Subgraph 🚨](/docs/integrate/ens-subgraph/key-limitations)
:::

## ENSNode is built for ENSv2

ENSNode is built around ENSv2 from the ground up. The same query works against an ENSv1 name today and an ENSv2 name the moment it goes live — with **zero downtime or code changes** in your app.

:::tip[✅ Ready the moment ENSv2 launches]
Adopt the ENS Omnigraph today and your app is ENSv2-ready before ENSv2 even ships — no rewrite, no scramble, no downtime.

[ENSv2 Readiness](/docs/integrate/why-ensnode/ensv2-readiness)
:::

## How ENSNode delivers

**One unified API over ENSv1 + ENSv2** — The [ENS Omnigraph](/docs/integrate/omnigraph) is a single GraphQL API that returns a polymorphic, unified view of every ENS Domain — regardless of whether it lives in an ENSv1 Nametable, an ENSv2 Namegraph, on mainnet, or on an L2 subregistry such as base.eth subnames on Base. ENSv1 and ENSv2 coexist after the ENSv2 launch; your code asks for `domain(by: { name: "vitalik.eth" })` and gets a typed result, regardless of which protocol version the underlying domain is on.

![ENS Omnigraph diagram](/ens-omnigraph-diagram.png)

**Multichain by default** — ENSNode provides the world's best indexing coverage for ENS, spanning every chain that matters:

- **Mainnet** — the canonical ENS root and `.eth` registrations
- **Basenames** (`.base.eth`) on Base
- **Lineanames** (`.linea.eth`) on Linea
- **3DNS** names (`.box`, tokenized DNS) on Optimism and Base

No more wiring up a per-chain Subgraph, reconciling overlapping ENS Nametables, or writing CCIP-Read logic in your app — ENSNode handles forward and reverse resolution, including offchain gateways, server-side.

**Full-stack integration surfaces** — whatever your stack looks like, there's an ENSNode integration shaped for it: React, TypeScript, GraphQL, or direct Postgres access.

[ENSNode integration options](/docs/integrate/integration-options)

## Join those already building on ENSNode

A growing set of companies and apps are already building on ENSNode.

- **[ENS Labs](https://enslabs.org/)** — [ENSv2 Explorer](https://explorer.ens.dev/), [ENSv2 App](https://app.ens.dev/), [ens-test-env](https://github.com/ensdomains/ens-test-env).
- **[EthId Foundation](https://ethid.org/)** — [Grails](https://grails.app/), [ENS Market Bot](https://x.com/ENSMarketBot), [Grails CLI](https://github.com/grailsmarket/cli).
- **[Blockful](https://www.blockful.io/)** — [Anticapture](https://app.anticapture.com/).
- **[Enscribe](https://www.enscribe.xyz/)**
- **[JustaName](https://www.justaname.id/)** — [ENSvolution](https://www.ensvolution.xyz/), [ENS MCP Service](https://discuss.ens.domains/t/introducing-the-ens-mcp-server-bringing-ens-to-claude-and-other-ai-assistants/20347).
- **[ENS Tools](https://ens.tools/)**
- **[ENS Vision](https://ensvision.com/)**
- **[Namespace](https://www.namespace.ninja/)** — [ENS MCP Service](https://github.com/thenamespace/ens-mcp), [Subpages](https://github.com/thenamespace/subpages).
- **[Lighthouse](https://lighthouse.cx/)** — [ENS Metadata Manager](https://ensmetadata.app/).
- **[Ethereum Comments Protocol](https://www.ethcomments.xyz/)**
- **[FusionENS](https://www.fusionens.com/)** — [Fusion ENS Extension](https://github.com/FranzQ/fusion-ens-extension).
- **[Interface Social](https://www.interface.social/)** — likely reaching our hosted ENSNode indirectly through its Ethereum Comments Protocol integration (not yet fully confirmed).

**Indie developers**

- **[Atlas](https://github.com/stevedylandev/atlas)** (ENS CLI) — by [Steve Dylan](https://x.com/stevedylandev).
- **[Ensemble](https://github.com/estmcmxci/ensemble-beta)** (ENS CLI) — by [estmcmxci](https://x.com/estmcmxci).
- **[Basenames CLI](https://github.com/estmcmxci/basenames-cli)** — by [estmcmxci](https://x.com/estmcmxci).
- **[Dapp Rank](https://dapprank.eth.link/)** — by [Joel Thorstensson](https://x.com/joelthorst).
- **[Klyra](https://github.com/Jossyboydgenius/Klyra)**
- **[pier](https://github.com/Quantumlyy/pier)**

## Next steps

[Quickstart](/docs/integrate)
  [ENSv2 Readiness](/docs/integrate/why-ensnode/ensv2-readiness)
  [Integration Options](/docs/integrate/integration-options)