Domain by Name
Performing SQL queries on the ENS Unigraph requires that you have the unigraph plugin activated in your ENSNode instance. Learn more
Fetch a Domain by its canonical name. Because canonical_name is materialized across both ENSv1 and ENSv2, the same lookup works regardless of protocol version. See Connect for setup.
Canonical fields are populated on every Domain reachable from the canonical root, across both ENSv1 and ENSv2 — query them uniformly without branching by type. In SQL, these columns are canonical_name, canonical_path, canonical_node, and canonical_depth; in ensdb-sdk, the corresponding fields are canonicalName, canonicalPath, canonicalNode, and canonicalDepth.
An ENSIndexer Schema is a
database schema within an ENSDb instance, used to store indexed ENS data from a given ENSIndexer instance. We use ensindexer_0 as the ENSIndexer Schema Name in examples on this page, but your ENSIndexer instance may be configured to use a different schema name based on how you configured its `ENSINDEXER_SCHEMA_NAME`
environment variable. Make sure to replace ensindexer_0 with the actual schema
name used by your ENSIndexer instance when querying the ENSDb instance directly.
SELECT * FROM ensindexer_0.domainsWHERE canonical_name = 'vitalik.eth';View Query Result
[
{
"id": "1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835",
"type": "ENSv1Domain",
"registry_id": "1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae",
"subregistry_id": "1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835",
"token_id": null,
"node": "0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835",
"label_hash": "0xaf2caa1c2ca1d027f1ac823b529d0a67cd144264b2789fa2ea4d63a67c7103cc",
"owner_id": "0x220866b1a2219f40e72f5c628b65d54268ca3a9d",
"root_registry_owner_id": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"canonical": true,
"canonical_name": "vitalik.eth",
"canonical_label_hash_path": [
"0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
"0xaf2caa1c2ca1d027f1ac823b529d0a67cd144264b2789fa2ea4d63a67c7103cc"
],
"canonical_path": [
"1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae",
"1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835"
],
"canonical_depth": 2,
"canonical_node": "0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835"
}
] ensDb query builder and ensIndexerSchema
schema definition in the Connect section if you haven't
already.
import { eq } from "drizzle-orm";
const [vitalik] = await ensDb .select() .from(ensIndexerSchema.domain) .where(eq(ensIndexerSchema.domain.canonicalName, "vitalik.eth"));
console.log(vitalik);View Query Result
[
{
"id": "1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835",
"type": "ENSv1Domain",
"registryId": "1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae",
"subregistryId": "1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835",
"tokenId": null,
"node": "0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835",
"labelHash": "0xaf2caa1c2ca1d027f1ac823b529d0a67cd144264b2789fa2ea4d63a67c7103cc",
"ownerId": "0x220866b1a2219f40e72f5c628b65d54268ca3a9d",
"rootRegistryOwnerId": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"canonical": true,
"canonicalName": "vitalik.eth",
"canonicalLabelHashPath": [
"0x4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
"0xaf2caa1c2ca1d027f1ac823b529d0a67cd144264b2789fa2ea4d63a67c7103cc"
],
"canonicalPath": [
"1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae",
"1-0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e-0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835"
],
"canonicalDepth": 2,
"canonicalNode": "0xee6c4522aab0003e8d14cd40a6af439055fd2577951148c14b6cea9a53475835"
}
]