ENSWhois.com: An API-First Data Layer for ENS

ENS data is distributed across 20+ smart contracts, with state and history spanning back to 2017. Accessing and reconstructing this data reliably requires significant domain knowledge and non-trivial indexing.

I’ve built a distributed indexing solution that continuously syncs ENS data, processes it into a structured form, and exposes it via a RESTful API.

The API enables querying across:

  • Ownership (current and historical)
  • Resolver and text records
  • Reverse records
  • Full domain history
  • Names by address, TLD, namehash or labelhash

The blog post linked below goes into more depth about what the product does, and how it works:


ENSWhois

ENSWhois.com is a frontend built on top of this API.

It acts as both:

  • a user-facing product for exploring ENS data
  • a reference implementation demonstrating what becomes possible with a complete ENS data layer

Supplementary Links

The following supplementary links hopefully answer some of the more obvious questions:


API First

I believe that an API-first approach is crucial for the continued success of the Ethereum Name Service.

Today, integrating ENS often requires:

  • direct interaction with multiple contracts
  • reconstructing historical state from events
  • deep protocol-specific knowledge

This creates a barrier to growth - if it is hard to use ENS, people simply won’t do so.

An indexed, queryable data layer removes that complexity and enables:

  • faster integrations
  • new product surfaces
  • broader adoption beyond crypto-native developers

This direction has been shaped through conversations with companies in the DNS space that, in principle, want to use ENS, but are currently blocked by complexity.

Feedback

I would be very interested to hear people’s opinions on this and how it can be iterated and improved upon. :folded_hands:

If you are considering an integration, I would be happy to support - I am interested to learn how consumers utilize this.


Screenshots

:link: https://enswhois.com/name/vitalik.eth/events
:link: (API) https://api.enswhois.com/domain/vitalik.eth/events


:link: https://enswhois.com/name/com/subdomains
:link: (API) https://api.enswhois.com/domain/com/subdomains?page=1


:link: https://enswhois.com/labelhash/0x6fd43e7cffc31bb581d7421c8698e29aa2bd8e7186a394b85299908b4eb9b175
:link: (API) https://api.enswhois.com/lookup-labelhash/0x6fd43e7cffc31bb581d7421c8698e29aa2bd8e7186a394b85299908b4eb9b175


:link: https://enswhois.com/name/test.eth
:link: (API) https://api.enswhois.com/domain/test.eth/ownership-history


:link: https://status.enswhois.com/indexers


11 Likes