In order to accelerate the mainstream adoption of Web3, it’s critical to look at all potential sources of user friction within Web3 and streamline them. One example of this is the long and hard-to-memorize addresses for Web3 wallets. These addresses are designed for computers and not for end users convenience. However, as Web3 becomes increasingly commonplace, developers will focus on improving usability and customer experiences. One protocol that aims to solve the problem of long wallet addresses to enable a more seamless Web3 user experience is ENS (Ethereum Name Service). But, what exactly is Ethereum Name Service, and how does it work?
In this article, we’re going to take a deep dive into ENS to understand how it works and why the service is important. As we do so, we’ll look closer at the service’s two main components: ENS registry and resolvers. Also, we’re briefly going to cover governance tokens of the protocol along with ENS’ DAO (decentralized autonomous organization). Lastly, we’ll top everything off with a short tutorial on how you can acquire your very own domain from Ethereum Name Service.
If you’re already familiar with ENS or want to learn more about Web3 development, please, feel free to continue browsing the Moralis blog. There, you’ll find high-quality and relevant content for blockchain development. For example, you can learn more about what it takes to become a blockchain developer or the best languages for blockchain development to kickstart your journey.
You’ll quickly notice that Moralis is the premier operating system for Web3 development. In addition, creating an account is free, so sign up with Moralis right away!
What is Ethereum Name Service? – ENS Explained
First, let’s simply answer “what is Ethereum Name Service?”. Ethereum Name Service started early in 2017 and was originally connected to the Ethereum Foundation. However, in 2018, ENS broke loose from the foundation as a separate organization. The non-profit organization called “True Names LTD” now manages ENS’ development. So, what exactly is Ethereum Name Service?
ENS is a distributed, extensible, open naming service based on the Ethereum network. The central purpose of ENS is to map human-readable names, such as ”john.eth”, to machine-readable identifiers like MetaMask wallet, Ethereum, or any other cryptocurrency addresses. These identifiers often consist of long, tedious combinations of letters and numbers. Thus, ENS connects crypto addresses such as ”0xb76F25…” to more comprehensible names or domains. Moreover, ENS supports something known as reverse resolution. This makes it possible to associate metadata like interface descriptions or canonical names with an Ethereum address.
The purpose of ENS is similar to that of the “domain name system” (DNS), which is to facilitate a more seamless user experience. That means ENS provides the same service for Web3 as DNS does for Web2. ENS, therefore, simplifies Web3 and makes blockchain technology more adapted for mass adoption.
However, although they share a common goal, they significantly differ in structure and architecture. This difference originates from the unique capabilities and constraints of the Ethereum blockchain. For example, ENS doesn’t have a single point of failure as a decentralized protocol, making it more secure and censorship-resistant.
Now, with a somewhat better understanding of what Ethereum Name Service is, we’re in the following section going to provide a brief explanation of how the Web3 protocol works. As such, follow along as we dive deeper into the question, ”how does Ethereum Name Service work?”.
How Does Ethereum Name Service Work?
As we mentioned in the previous section, there are some similarities between ENS and DNS. For one, they fulfill the same need for two different spaces. However, they also work similarly since they both operate on a structure of “dot-separated” hierarchical names known as “domains”.
The top-level domains, such as ”.test” and ”.eth”, are controlled and owned by smart contracts that the community calls “registrars”. These registrars specify the rules and regulations that govern the distribution of any subdomains. Anyone can follow the rules of the registrar contracts to obtain their own domain. A great additional feature of ENS is that the service supports the importation of DNS domains that a user already owns.
Based on this hierarchical structure of ENS, owners of a domain at any level have full control over configurations of subdomains. As such, if John owns the ”john.eth” domain, he has the ability to create ”pay.john.eth” and make any desired configurations. Moreover, these configurations can either be for the users themselves or others, providing a high degree of freedom for the owners to distribute domains freely.
Moreover, the system uses two main components: the registry and resolvers. We’ll dive deeper into these in the following sections, as this will make it easier to understand how ENS works.
ENS Architecture: Registry
The ENS registry consists of a smart contract in charge of maintaining a list of all domains and subdomains. Furthermore, to keep track of the domains, the registry needs to store three vital pieces of information:
- The domain owner
- The resolver for the domain
- The caching “time-to-live” for all the records under the domain
A domain owner can be either a smart contract or an external account. A registrar is essentially a smart contract that owns a domain. These contracts have the ability to issue subdomains to users that follow the rules of the contract. As such, this means that the owners of a domain may take the following actions:
- Specify the domain’s resolver and TTL
- Transfer the ownership of a domain
- Change ownership of subdomains
Moreover, the ENS registry is relatively straightforward and only exists to map a name to the particular resolver responsible for the domain. So, what are resolvers?
ENS Architecture: Resolvers
The resolvers are the components of ENS that are responsible for the process of translating names into addresses. Any contract that implements relevant standards can act as a resolver in the system. Each identifier type, such as IPFS content hashes, cryptocurrency addresses, etc., defines methods that a resolver must apply to provide records for that specific type. Moreover, it’s possible to define new identifier types at any given time via the EPI standardization process.
The resolving process for names in ENS consists of two steps. First, we need to query the registry for the resolver responsible for a particular name. Following this, all we need to do is ask the resolver for the answer to your request. As such, this is an illustration of the process:
If you’d like to learn more about how ENS works, we recommend checking out the official ENS documentation. Here you can find more in-depth information regarding the service in general, the registry, and resolvers.
What is Ethereum Name Service? – Governance Token and DAO
To answer the “what is Ethereum Name Service?” question, we must also explore ENS’ governance token and DAO. The Ethereum blockchain hosts the ENS governance token. As a holder of ENS governance tokens, you can become a member of ENS’ DAO (decentralized autonomous organization). Moreover, these governance tokens provide specific rights within the ENS community.
A DAO is the governance body of a particular project or protocol, and the organization’s members vote on important matters regarding the protocol’s future. That means members of the DAO can use their tokens to communicate alterations that they would like to see in Ethereum Name Service.
There are three central types of proposals that members of the DAO can vote on:
- Social Proposals – Social proposals are off-chain suggestions presented to the DAO. An example would be possible changes to ENS’ secondary market’s royalty percentage on OpenSea. These proposals require a quorum of 1% and a 50% approval rate to pass.
- Constitutional Amendments – Constitutional amendments are a particular type of “social proposal”. However, these are special as they are suggestions to alter the protocol’s constitution. For example, this involves proposals to change how ENS conducts its mission. The rules for altering the constitution are specified in the constitution, and they currently require a quorum of 1% and approval of two-thirds.
- Executable Proposals – These are proposals for smart contract operations to be carried out by an account that the DAO controls. These can, for example, be arbitrary smart contract calls. Like the social proposals, these have a quorum requirement of 1% and require at least 50% to pass.
Suppose you’re interested in DAOs and would like to learn more about how these organizations work. In that case, we recommend checking out the following article from Moralis, providing a tutorial on how to create a DAO yourself.
How to Acquire Your Own ENS Domain?
In this section of the article, we’ll briefly explain how you can purchase an ENS domain. The process is relatively straightforward, and we’ll break it down into the following three steps:
- Acquiring a Crypto Wallet
- Purchasing ETH
- Choosing an ENS Domain
Acquiring a Crypto Wallet
The first thing you’ll need to purchase an ENS domain is a crypto wallet. ENS supports several different alternatives; however, we’ll use MetaMask as an example in this instance. The need for a wallet is two-fold. First, you’ll need the wallet to hold ETH used to pay for the domain. Second, you also need the domain to point somewhere, which, in this case, will be your crypto wallet.
With a MetaMask wallet at your disposal, the second step is to acquire ETH (ether). You can acquire ether through a centralized exchange such as Coinbase or any decentralized exchange (DEX). The amount of ETH you’ll need is dependent on, for example, the length of the domain and the current gas price. As such, it’s up to you to keep track of Ethereum gas fees and ensure that you have sufficient funds to pay for the domain.
Choosing an ENS Domain
The last step is to choose an ENS domain. To do so, you’ll need to navigate to the ENS dapp. You’ll then need to connect your MetaMask wallet to the dapp by pressing the ”Connect” button at the top left of the ENS interface.
With your wallet connected, you can search for your desired domain to ensure it’s available. If it is, you can simply follow the steps provided by the dapp to acquire your domain! However, keep track of gas costs as these make up a vast majority of the total costs and can vary quite significantly.
What is Ethereum Name Service? – Full ENS Guide: Summary
From a traditional perspective, one major issue that hinders Web3 from mass adoption is usability. One example of this is long and complicated crypto addresses that might seem quite daunting to a new user. However, this is only natural as these are designed for computers. To solve this issue, ENS was introduced as a Web3 version of DNS (domain name system). ENS is an abbreviation for Ethereum Name Service, and the service maps human-readable names such as ”john.eth” to complicated machine-readable identifiers like crypto wallet addresses.
In the article, we began explaining ENS and how the service works. In doing so, we explored ENS’ two main components: the ENS registry and resolvers. The registry is responsible for mapping names to resolvers; meanwhile, the resolvers are responsible for the process of translating names into addresses.
We also provided a brief explanation of how you can acquire your own ENS domain through the following three steps:
- Set Up a Crypto Wallet
- Buy ETH
- Chose an ENS Domain
If you have further interest in Web3 and would like to learn more about the space, check out additional articles here at Moralis. For example, you can learn more about Web3 contracts, Solidity, the metaverse, and much more.
Also, make sure to sign up with Moralis! Creating an account is entirely free, and you’ll receive access to phenomenal development tools such as Moralis Speedy Nodes, Moralis’ NFT API, Price API, etc. In combination with the backed infrastructure of Moralis, the tools will allow you to cut the development time for all future blockchain projects by an average of 87%. So, create your account now; you have nothing to lose!