Skip to content

ENSNode Plugins

An ENSNode Plugin is an abstract specification that defines how a specific aspect of the ENS namespace is indexed into ENSDb. It is not an implementation — it is a standard that any ENSDb Writer can implement.

Each ENSNode Plugin defines:

  • Name — e.g. unigraph, protocol-acceleration, subgraph.
  • Datasources — which onchain contracts should be indexed, as a function of the ENS namespace.
  • Dependency relationships — other plugins that must (or must not) be activated concurrently.
  • Indexed data model — the tables, columns, and indexes that the plugin produces in ENSDb.
  • Standards and invariants — rules for how onchain events are translated into the indexed data model during indexing.
  • Versioning — a version number that can be stored in ENSNode Metadata, to track which version of the plugin implementation is being used by ENSDb Writers and ENSDb Readers.

ENSNode Plugins are the key architectural piece that enables a decoupling between ENSDb Writers and ENSDb Readers, so that anyone can create their own implementations of these. For example, any team working on indexing infrastructure can implement an ENSDb Writer and have it produce a standards-compliant ENSDb. On the other hand, any team working on products for ENS ecosystem can build their own standards-compliant ENSDb Reader and have it query ENSDb.

ENSIndexer is a reference implementation of an ENSDb Writer that implements multiple core plugins following the ENSNode Plugins specification. The code for each plugin inside ENSIndexer is a reference implementation of that plugin’s abstract specification. The core plugins implemented in ENSIndexer today are:

PluginDescription
unigraphUnified ENSv1 + ENSv2 data model with polymorphic entities
protocol-accelerationAccelerated lookups for ENS resolution
subgraphLegacy ENS Subgraph-compatible data model
basenamesBasenames (.base.eth) subname indexing
lineanamesLineanames (.linea.eth) subname indexing
threedns3DNS (.box) name indexing
registrarsRegistration and renewal lifecycle tracking
tokenscopeNFT tokenization and marketplace activity

The efp plugin is a new plugin currently under development by the EthId team:

If you are interested in defining a new ENSNode plugin or implementing an existing one, reach out to the NameHash Labs team — we are happy to provide support and additional info. Join us on Telegram for any questions.