The Domain Name System (DNS) is one of the fundamental building blocks of the internet. It maps human-readable names to IP addresses for computers, services and other resources connected to the internet. It's essentially a huge phone book. DNS names are issued and managed by domain registrars i.e. centralized entities that have the power to seize domains and effectively censor you from the internet. While this isn't an issue for most domain owners, some would prefer a trustless, decentralized option offered by a blockchain platform instead. Enter ENS.
What is ENS?
The Ethereum Name Service (ENS) is a distributed, open, and extensible naming system based on the Ethereum blockchain. Essentially, the crypto version of DNS. ENS names can be used to store the addresses of many different cryptocurrencies, a content hash of a decentralized website, your social media handles and more. And as an interesting aside, ENS names are ERC-721 compliant Non-Fungible Tokens (NFTs), which allow them to be tradeable as tokens on NFT marketplaces like OpenSea!
Early ENS domains took the format
YourDomain.eth, but now it's also possible to register .xyz, .ceo, .kred and .art ENS domains if you can prove that you own the corresponding DNS domains. Currently, 5+ character .eth names cost $5 in ETH per year. Shorter names cost more. However, at today's gas prices, you are likely going to spend tens of dollars in ETH per year.
Set up Your Ethereum Wallet
To get started, you'll first need an Ethereum wallet with some funds to buy and register the ENS name. I recommend MetaMask wallet for your browser. Once you download it, create an account. From the
Account details section, you'll have an option to export the private key. And from the
Security & Privacy section, you'll be able to reveal the seed phrase. Make sure to store the private key and/or seed phrase in a really secure location - they are literally the keys to your crypto kingdom.
Once your wallet is ready, you'll need to fund it. If you already have ETH in either a different self-custodial wallet or a crypto exchange, send some to your MetaMask address. If you do not, head over to Binance, Gate.io or Coinbase (or a crypto exchange of your choice) and create an account first. Use a credit card or bank/wire transfer to fund your account and buy some ETH. Next, send the ETH to your MetaMask address and wait for confirmation. Once your MetaMask wallet is funded, you are good to go.
Register and Configure ENS Domain
Head over to the ENS App and search for your desired ENS name. If it's available, you'll get to see the total price before you register the name. Unfortunately, the gas fees are 10x the registration cost at the time of writing. You can, however, avoid paying gas every year by increasing the registration period right away. For the purpose of this tutorial, I'm going to use the test Ropsten Network instead of the Ethereum Mainnet.
Connect your MetaMask account and
Request to Register the chosen name.
Confirm the MetaMask popup and wait for a minute. This brief delay is to prevent frontrunning of malicious users attempting to register your domain after you.
Register and confirm the MetaMask popup again. You are making two Ethereum transactions - one to commit and another to finalize the registration.
Congratulations! You now own the ENS domain. Just a few more steps to get your spanking new domain set up. Click
Set Reverse Record to configure your Ethereum address to point to the ENS name ("reverse" lookup) and have it show up easily in wallets and dapps (decentralized apps).
Set the reverse record by selecting your ENS name from the dropdown and click
Save. You'll need another Ethereum transaction for this, so confirm the MetaMask popup again.
ENS Domain Attributes
Now, let's look at some of the key attributes of the ENS domain:
Registrant: Domain owner; able to set Controller and transfer domain.
Controller: Operate domain on owner's behalf, if different from Registrant.
Expiration Date: When your domain expires. You can set a renewal reminder if you wish. Upon expiry, you have a 90-day grace period to renew the domain.
Resolver: Smart contract that holds records, set by default to the Public Resolver maintained by the ENS team.
Records: Cryptocurrency addresses, IPFS content hash, social media profiles and other details. Click Add/Edit Record if you wish to change these and Confirm the transaction.
Well, there you have it. Your ENS domain is now fully configured and ready to be used in wallets, dapps and a plethora of other Web3 resources.
If you found this fun, here are a few other rabbit holes to keep you busy.
- Create and manage subdomains: These do not have a
Registrant(inherit from the parent) but they can have a separate
- ENS vs Handshake: Handshake takes the ENS concept a step further, and aims to create a decentralized root naming system and certificate authority, thereby bypassing DNS completely. See my post on Handshake here.
- Host censorship-resistant websites using IPFS: see my post here.
If you want to explore domain registration for other networks, check out the complete guide to Web3 domain registrations.