ENS has been in use for almost two years. Even though we knew some overall figures such as number of auctions started, ETH locked, we didn’t know much about who is actually obtaining these names and how.
With the help of Token Analyst, we have counted all the registered names under each domain, and here is the list of the 30 domains that have the most subdomains in the Google spreadsheet format (link to the spreadsheet)
I will first break down the result, then will walk through how we managed to come up with these information.
- 1. TLD (top level domain)
- 2. now.ens.domains
- 3. dapps
- 4. interesting use cases
We all know that “.eth” is currently the de facto standard of ENS domain names, however this result shows that DNSSEC integration is slowly getting the adoption with names such as “.xyz” and “.luxe”. “.xyz” was supported months before “.luxe” but “.luxe” has way more domain names registered. This is the power of top level domain registrars directly integrating with ENS, so that people who obtained an .xyz domain can easily get its connected ENS name. The unfamiliar name “.addr.reverse” is for reverse record which allows you to associate an ENS name with a given Ethereum address so that dApps can display the ENS name instead of addresses. This indicates that the adoption of reverse registrar is still very low ( less than 1%).
One thing worth mentioning is that 270k under “.eth” does not necessarily represents the number of domains which use ENS name, it’s the list of names owned. To make full use of ENS, you have to set resolver (which is around 50k according to curious giraffe chart I shared early on).
Five out of the top 30 domains are obtained via now.ens.domains where you can purchase (or get it for free) subdomains without waiting through an auction period.
With the arrival of permanent registrar, we expect that the role of ENSnow will decrease though it will remain as one of the cheapest ways to obtain an ENS domain name. In future, we are planning to migrate this functionality into our Manager.
One of the best ways to integrate ENS into dapps is to issue subdomains. You can see some well known Ethereum blockchain companies name (Status, Gitcoin, Zinc) in this section. I often say that issuing subdomains for your dapp is equivalent to when gmail.com or hotmail.com went viral by allowing user to advertise their brand by offering unique email address under their brand.
Firefly (a cheap and simple BLE hardware wallet) is an interesting use-case of selling their subdomains as a way of crowdfunding.
4. Interesting use cases
There are a few other interesting use cases worth mentioning.
The domain “thetoken.eth” was created by Nick Johnson (the creator of ENS) and it lists many major token contract addresses as subdomains. I don’t know exactly what “dappcon.eth” was made for but I am guessing that it was issued for participants of the dappcon conference.
Under the hood
In this section, I will go a bit deeper into how we got this data in collaboration with Token Analyst.
1. Getting events
As one of the oldest smart contracts running on mainnet, ENS data is often used as example material to analyze for big data companies.
The graph has a public graphQL explorer which allows anyone to create their own GraphQL schema (called subgraph). The graph is great if you want to integrate events information into your app, but GraphQL itself is not suitable for data analytics as you need another layer to aggregate the data and this is where Token Analyst comes in.
They have already done some heavy work and stored all possible Ethereum data into their data warehouse so that you can query the result using SQL , which is one of the oldest and most popular data query languages.
Here is the example of query getting the number of domains issued under nodes which you can find from ‘NewOwner’ event.
Thanks to the power of SQL, removing duplicate events can be expressed in one line of “group by” (which is in line 10).
Another huge advantage is that they have analyzed all the events on Ethereum and pre-indexed them, so as a user you don’t have to specify the contract interface information (aka ABI).
One downside is that this auto detecting of events is not perfect. We identified that “ethglobal.eth” has almost 20 subdomains issued using custom registrar but the event was not captured (the information was fed back to Token Analyst so hopefully it will improve soon).
2. Dissecting namehash
When I received the node counts result from Token Analyst, it was similar to this format.
So how do you figure out which domain is ‘0x93…’ ?
If you are ENS pro, you may have seen “ENS Auctionbots” which tweets to the world when auctions start.
We have over 100 million keyword dictionary in a Google big table and we query against it every time new auction starts. I took advantage of the database and send the list of labels to the query to get the result. Unfortunately, you cannot detect all hashes, hence about 30% of top 30 domains do not have names on the list.
In this blog post, I have shown the top 30 domains which have issued their subdomains and explained how these domains are created as well as explaining technical details of how we came up with the data.
If you want to know where your favorite domains are ranked you can check the full list here. Now that you know what ENS name you are interested, you can namehash by yourself via this requirebin code snippet. (After showing this blog post, beltran did some detective work to identify the 7 unknown names).