Skip to content

ENS Unigraph Core Concepts

The ENS Unigraph indexed data model is available only when the unigraph plugin is activated in your ENSNode instance.

The Canonical Nametree is the set of all Domains that have an inferrable Canonical Name — materialized from the namegraph. For every Domain in it, the canonical fields are populated — canonical_name, canonical_path, canonical_node, and canonical_depth — across both ENSv1 and ENSv2. That means you can look a name up by canonical_name = 'vitalik.eth', order by canonical_depth, or walk a name’s path without branching by type on protocol version and without traversing the namegraph yourself.

Multichain coverage is part of the same model: Basenames (.base.eth), Lineanames (.linea.eth), and 3DNS names (.box) are materialized into the same Unigraph as mainnet .eth, so a single query spans every indexable name.

A canonical_name can be very long, as it’s the full, correct name. Due to limitations in Postgres btree indexes, the domains table has the canonical_name column and also the __canonical_name_prefix column (the first 64 code points of canonical_name, backed by a GIN trigram index).