Custom APIs
ENSDb (PostgreSQL)
For special use cases that go beyond what the ENS Omnigraph exposes — you can query the live onchain state of ENSv2 directly via SQL.
ENSDb is an open standard that stores the live onchain ENSv2 state in a carefully-crafted data model within a PostgreSQL database. Because it’s plain Postgres, you can use any language with a Postgres driver — TypeScript, Python, Rust, Go, and more.
ENSDb is available when you self-host ENSNode. Each ENSNode instance writes its data into a PostgreSQL database that you own and control — that database is your ENSDb instance. The hosted ENSNode instances do not expose direct database access.
What you can build with ENSDb
Section titled “What you can build with ENSDb”
Build specialized GraphQL or REST APIs tailored to your use case. Query exactly the data you need with full SQL power.
Analytics & Dashboards
Create real-time dashboards and analytics pipelines. Better than Dune — you have the live ENS state locally with sub-second query latency.
CLIs & Developer Tools
Build command-line tools for ENS operations. Query domains, and any specialized lookup — all from your terminal.
Event-Based Engines
Build reactive systems that respond to ENS state changes. Respond to registration lifecycle updates, ownership transfers, resolver updates.
Data Pipelines
Feed ENS data into your existing data infrastructure. Sync to data warehouses, trigger webhooks, populate search indexes.
AI Agents
Build AI agents that can query ENS state and perform actions based on that data.
Example: fetch ENSv2 domains with the ENSDb SDK
Section titled “Example: fetch ENSv2 domains with the ENSDb SDK”import { EnsDbReader } from "@ensnode/ensdb-sdk";import { eq } from "drizzle-orm";
const ensDbReader = new EnsDbReader(ensDbConnectionString, ensIndexerSchemaName);const { ensDb, ensIndexerSchema } = ensDbReader;
const v2Domains = await ensDb .select() .from(ensIndexerSchema.domain) .where(eq(ensIndexerSchema.domain.type, "ENSv2Domain"));Example: fetch ENSv2 domains with raw SQL
Section titled “Example: fetch ENSv2 domains with raw SQL”SELECT * FROM ensindexer_0.domainsWHERE type = 'ENSv2Domain'LIMIT 10;Learn more
Section titled “Learn more” ENSDb overview Architecture, schemas, what you can build, and quick-start guides.
ENSDb SDK (TypeScript) Type-safe database access and utilities for working with ENSDb.
ENSDb SQL interface Connect with any PostgreSQL client and run queries directly.
Self-host ENSNode Run your own ENSNode instance to get full ENSDb access.