EtherID (2015): Ethereum’s 2nd NFT Name Registrar Project Re-Discovered

Jeremiah Long
7 min readSep 25, 2022

--

The Ethereum Blockchain launched on July 30th 2015. Just four months later, EtherID was deployed on November 29th, 2015. EtherID is Ethereum’s earliest known contract that is a transferable, ownable, buyable domain name system (DNS) project and the second Name Registrar Non-Fungible Token (NFT) collection (after a Name Registrar contract deployed by linagee around August 7th-8th 2015.)

This is a live story, stay tuned…HERE is some additional documentation:

UPDATE: Use the (work in progress) front end website to register your EtherID: https://etherid.org

  • Connect Metamask (make sure you connect the right wallet)
  • Type in an EtherID you want and hit “CHECK”
  • The EtherID is available if Expiration in (blocks) is a negative number
  • Hit “CHECK” again to make sure you were fastest to register

What is EtherID?

EtherID was created by developer Alexandre Naverniouk, it was made as an improvement on “current NameReg” system, and it is the precursor to the now popular Ethereum Name Service which was launched on May 4, 2017. In the smart contract, the project is referred to as the Ethereum Name Registrar as it should be.

It contains innovative features including: a built-in marketplace, assignable transfers, a contact information field, and an updatable IPFS hash.

On June 16th, 2016 TheDAO hack occured, which exposed exploits across many Ethereum projects. At that time, approximately 31,000+ EtherIDs were registered on the original contract database. The Developer noted in a Reddit post that this exploit, the “Unsigned-Check” bug also affected EtherID and the contract was migrated on June 26th 2016 at block height 1789671.

WARNING: The original EtherID smart contract, which remains unverified, contains flaws which may not be fully solvable. It is not suggested that you interact with the November 29th 2015 contract as it may result in loss of funds or tokens. The authors of this article provide all information as a historical reference, and nothing stated should be considered advice, financial or otherwise. Be careful out there!

Just like Ethereum Name Service (ENS) and which has had several smart contracts, each one references the domains registered in the previous smart contract along with the ownership or provenance records. In 2016, EtherID did the same except that the previous owners had to renew the migrated domains, which were reserved under their wallet addresses.

EtherID’s smart contract contains special lines of code which allowed the Dev to migrate the original domains into the final contract, found between lines 90 and 96 of the source code found here. These domains were registered in the earlier 2015 contract and their ownership/provenance records carried over to the final EtherID smart contract.

Motivation And Goal

The motivation and goal for designing EtherIDs is described in detail in this Github post titled ERC: Default Ethereum Name Registrar #26 here. EtherIDs creator Alexandre Naverniouk references the problem faced by complex human unreadable 0x addresses, which are difficult to process and thus hinder accessibility of Ethereum DApps. Hence, he presents the concept of connecting a “human readable name to a hash for usage in IPFS/SWARM or any DHT system”.

EtherIDs goal is outlined in five parts

  1. Find an “optimal price for name” using nash equilibrium game theory
  2. Allow “optimal usage of names” by circulating names among those with better usage
  3. Make “name markets as transparent as possible” by displaying all information (name, prices, expiry etc.) through a simple interface
  4. Give names an “optimal cost” inclusive but still discouraging excessive squatting
  5. Finally, “privacy by obscurity” by providing niche domain holders with reasonable expectations of privacy

Integrating EtherID as a custom IPFS resolution

Is there a name registrar yet?

The question was asked by linagee on January

EtherID v1 Bugs

EtherID v1 contract was replaced with the v2 contract because it had critical bugs, a detailed postmortem by the developer can be found here. The first EtherID contract was never verified. It also had the severe “unchecked-send” bug which was the same exploit exposed in TheDAO hack (later resulting in the Ethereum/Ethereum Classic bifurcation hardfork). There’s also a copy of the v1 contract minted the same day, that contains the exact same critical flaws, interaction is not recommended.

UPDATE: As expected, some anons in the NFT Community interacted with the flawed version of the EtherID contract, renewing large portions of the old tokens into a single account. It is still not known if these tokens are safe, and until a full audit of the code is produced by a reputable source, we are not suggesting you interact with the old tokens.

Basically, the contract should check if a domain is available before taking funds for it, however this contract was simply transferring the funds from the wallet without ensuring that the domain was available. The contract’s other bug was 0 name domain creation, which caused issues with domain enumeration, since it signaled the end of the list. The process had to differentiate between the 0 domain and if that was the end of the list for all domains. It was fixed by the developer in the upgraded contract by ensuring that the 0 domain couldn’t be registered in the new iteration of the smart contract. The fixed smart contract was verified and deployed on Jun 26, 2016. The Developer mentioned it cost around 100 ETH to migrate the original EtherID domains.

Specifications and Innovations

According to the official documentation, EtherID is a domain registration system. Like most other DNS, it allows registration for a specific period of time, up to 2,000,000 Ethereum blocks, or roughly one year. The owner can renew the asset indefinitely before it expires. EtherID domain name is binary 32 byte value interpretable as UTF8 encoded string.

It allows you to store a secure hash algorithm — 256 (sha-256) inside the domain. These hashes can be used to attach on-chain data, such as an IPFS link to an EtherID. The Developer explains in a document linked here called “EtherID meets IPFS.”

The Developer created a NodeJS communication module, called etherid-js, which can be used to interact with the smart contract from a terminal interface. In a final big brain innovation, the Dev created a Chrome Extension (here) that allows you to resolve your EtherID in the Chrome Internet Browser. You can view, and contribute to further development on Github (here).

Supply And Rarity

The total supply for the EtherID for the year 2015 was approximately was 9000+, and in 2016 11000+ domains, as referenced in the EtherID contract by getting their ownership transferred along with the provenance as a database. It’s the same method by which ENS has transferred domains to the new contract later.

Apart from it, not many domains were registered after 2015. One test EtherID was registered on 29.11.2015 (“test”), while on the next day 1,129 EtherIDs were minted. It is likely that collectors will show some preference for the “genesis” mints. In the first 100 mints, there are many digits (like 1–9), single characters, and obvious candidates such as etherid, bitcoin, smart, and, smartcontract.

EtherID Marketplace And Chrome Extension

EtherIDs featured an on-chain marketplace for domain names trading, the seller could simply set a price for the domain and buyers could buy it in a trustless manner. The interface showed the expiry and price for every domain. If an EtherID domain expires, it is free to claim, plus gas. This was likely the first NFT marketplace on the Ethereum blockchain.

At the same time, EtherID has a Chrome extension. It allows you to resolve EtherID domains to IPFS hashes in your browser. You can see it here. The developer ceased support to further develop it and it is unknown if it is fully functional at the time of publishing. It still serves as an early example of useful infrastructure being built a domain name system (DNS).

Recent Efforts

The EtherID NFT project was rediscovered in 2021 and then first transacted around January 5th, 2022 by NFT Archaeologist jlong.eth. Since that time, @_jdl and a small group of Blockchain Historians including @taha_crypto1, @DoggfatherCrew have been working on the revival for the EtherID website to automate the operations, which are currently only possible by interacting with the contract. This team has developed an ERC-721 Wrapper, which will allow the trading of these domains on OpenSea/LooksRare. Since they predate the ERC-721 standard, the tokens need to be wrapped to make them compatible with modern NFT wallets. The newly updated website, wrapper, and social media pages for the EtherID project will launch in the coming days.

How to Obtain an EtherID

Until the new front end website launches, you will need to interact directly with the EtherID contract to obtain one of the original EtherID domains. 100% of the original EtherIDs predate Crypto Punks, and about 95% of the original EtherIDs remain claimable from the contract as of September 24th, 2022. Co-authors of this article, @taha_crypto1, @DoggfatherCrew have created a Twitter thread that shows you how to register your own EtherIDs. Please read carefully before interacting with the contract:

--

--