How I got a .eth top-level domain

Disclaimer: this guide assumes that you have a basic understanding of how to use Ethereum enabled applications (i.e. Metamask and/or MyEtherWallet). It also assumes that you understand how to keep your Ethereum keys and Ether funds safe. As a last note, there are also small details I won’t deep dive into (i.e. the in and outs of the auction process). In case you have further questions on any of the steps, I would recommend doing some research before proceeding.

Image for post
Image for post

I assume no responsibility or liability for lost keys and/or funds as a result of any possible errors or omissions in content, or any missteps when going through this article. The information contained in this article is provided on an “as is” basis with no guarantees of completeness, accuracy, usefulness or timeliness and without any warranties of any kind whatsoever, expressed or implied.

172.217.0.142

Do you know what this number represents? I’m sure most of you do. It’s an IP address — basically, a collection of numbers that represent a device connected to the Internet. Now, what if I ask you where this IP address points to, would you know? Yep, I don’t either. But it actually redirects you to www.google.com! Try it if you don’t believe me. Copy the IP address, past it on your browser URL bar, and see what happens…

Amazing right? Part of this is made possible by something called Domain Name System, or DNS. In its easiest form, this is basically a system that maintains a list that provides translation between human-readable domains (i.e. www.google.com) and the IP address space. The benefit is that instead of you having to memorize all those random numbers, you just need to memorize the URL — which I’m sure we can both agree it’s much much easier, am I right?

0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359

What about this very lengthy and awfully looking string of random characters? If you’re reading this article, then there’s a very high chance you also know what it is. It’s an Ethereum address — basically an account in the Ethereum blockchain. You can see what this account has been up to here.

IP addresses are hard — or close to impossible — to remember. Ethereum addresses? Pretty much f*ing impossible. So, wouldn’t it be great if, much like the Internet, we had a human-readable URL that we could use whenever we wanted to interact with other accounts on the Ethereum blockchain?

If your answer is yes, man do I have the thing for you!

Introducing the Ethereum Name Service

ENS offers a secure and decentralized way to address resources both on and off the blockchain using simple, human-readable names.

So, instead of having a 40-character unreadable string, you have something like ethereum.eth. Don’t believe me? Then click it! Can you spot the differences with the link I gave you before? Yeah, I know…

This article is not supposed to go into the nitty-gritty of how ENS works — it’s just too complex. No, this article is supposed to explain how you can get one of these names for yourself.

I also won’t delve into the possible benefits of owning a .eth domain. If you want to know more I would recommend you start at ens.domains, or even go a bit more technical, and read the Ethereum Improvement Proposal (EIP) for ENS, EIP-137.

For this step-by-step instruction, we will be using MyEtherWallet, as they provide a fairly easy interface to interact with ENS.

Step 1: Navigate and login into MyEtherWallet

Image for post
Image for post

Here, it’s up to you to decide if you want to use MyEtherWallet provided wallet, their Metamask integration, or even their hard-wallet integration.

Step 2: Open MyEtherWallet Dapps, and navigate to “Register ENS”

When you go into the dApps screen, you should be able to see 3 options: Register ENS, Subdomains, SafeSend ETH Transaction.

Image for post
Image for post

Step 3: Input and check the name you would like to get

Image for post
Image for post

Much like with a normal domain, if it is already taken you won’t be able to buy it. So give it a check!

Step 4: Click “Check Domain”, and bid for your domain name

If the domain is not taken, you should be able to see the following window:

Image for post
Image for post

Step 5: Select the amount you wish to bid for

This is where things start to get a bit tricky. Right now, in order to buy a .eth domain, users need to go through a 5-day Vickrey styled auction process. There’s a couple of reasons for that, but the important part to remember here is that this is a 3-step auction:

  1. On the first step to bid for a new, you just need to place your bid — this bid is kept secret for 3 days, and only you know about it
  2. Reveal your bid — after the 3-day period, you have 2 days to reveal your bid, or else you won’t get the name you’re trying to buy
  3. Boom! After the second step 2-day period, and if no one else bid an amount above yours, you should get your name!

Assuming that the name that you pick is not sought-after, you can probably keep the default values on the “Actual Bid Amount”, and “Bid Mask” fields.

After that, press “Next”.

Step 6: Submit your bid

The second screen when submitting a bid should look like what you see below. As you can see from the message give by MyEtherWallet, you should save this information or else you won’t be able to claim your name during the bid reveal process. So before submitting the transaction, “Print” these details and make sure you remember where you put them!

Image for post
Image for post

After that, click “Submit”, accept the transaction, and that should be it! You have now successfully placed a bid for an ENS domain name (I recommend that you set a reminder for 3 days from now, so you won’t forget to reveal your bid). If you want to confirm that the transaction was successful, check it on etherscan, and you should see something like this:

Image for post
Image for post

If you go back to the Register ENS screen and search for the name you bid for, you should see the following:

Image for post
Image for post

Now we wait…

Step 7: Reveal your bid

After the 3-day period, you have 2 days to reveal your bid, or else you won’t get the name you’re trying to buy (that’s where the reminder I mentioned above comes in handy).

Navigate to the Register ENS page again and search for the domain you bid against. Fill in the “Secret Phrase” field from before, and click “Next”.

Image for post
Image for post

On the following screen confirm the information, and click “Submit”. After the transaction is confirmed, you should have successfully revealed your bid. The transaction should look something like this:

Image for post
Image for post

Now we wait, again, for 2 days…

Step 8: M-A-G-I-C!

After the 2 days, and assuming you’ve taken all of the correct steps, you should now be the proud “owner” of an ENS Domain!

I say “owner”, because it’s a bit more complicated than that: you actually own the deed that controls the domain, so you still need to set up the domain ownership. In order to verify that you actually own this so-called deed, go back to the Register ENS page, search for your domain, and under “Highest Bidder (Deed Owner)” you should see your account address. In my case, I see this:

Image for post
Image for post

Also, make sure to copy and keep the values for “Labelhash” and “Namehash” somewhere, you’ll need this for later.

Onward to the next step!

Step 9: Setting the domain ownership

From this point on, it will get a tiny bit more complicated. MyEtherWallet no longer provides a super-user-friendly interface, but it’s still fairly simple to navigate.

So, on the main page of MyEtherWallet, on the left side go to “Contract”, then “Interact with contract”.

Image for post
Image for post

On the drop-down in the new window, select “ENS: Eth Registrar” and click “Continue”.

Image for post
Image for post

In the new page, select “transfer” from the dropdown menu, paste the previously copied “Labelhash” value in the “_hash” field, and your address in the “NewOwner” field, and click “Write”.

Image for post
Image for post

Step 10: Verify ownership

You should now own both the deed and the actual domain. To verify the latest, go back to “Contract”, then “Interact with contract”, and on the drop-down in the new window, select “ENS: Registry” and click “Continue”.

Image for post
Image for post

On the new window, select “owner” from the dropdown menu, paste the “Namehash” value into the “Node” field and click “Read”. The resulting address being shown should be the one you set up in the previous step when transferring ownership — your address.

Image for post
Image for post

You can also verify this by going back to the “Dapps — Register ENS” screen, and searching for your domain. The field “Owner” should now show your address.

Image for post
Image for post

Step 11: Set up a resolver

In order for requests to your domain name to be translated to your address, a resolver needs to be set-up. No need to going into the depths of what this is, and how it works, but if you want to know more you can start by reading this definition of a DNS resolver.

Navigate back to the“Contract — Interact with contract” and then to “ENS: Registry” page. On the dropdown menu select “setResolver”. Fill in the “Node” filed with the “Namehash” value, and the “Resolver” field with “0x5FfC014343cd971B7eb70732021E26C35B744cc4” — you can follow this link if you want to see where I got this address. Then click “Write”.

Image for post
Image for post

Step 12: Verify Resolver

Just a quick last check to confirm the resolver is ok. Go back to the“Contract — Interact with contract” and then to “ENS: Registry” page. On the dropdown menu select “resolver”. Fill in the “Node” filed with the “Namehash” value and press “Read”. The “Resolver” value should be the address you used on the previous step.

Image for post
Image for post

Step 13: Point domain to your address

Up until now, all that we did was mostly housekeeping. In order to have a useful domain, there’s still at least one last step to take, which is associating your domain to your address.

That way people can send Ether to you by using the domain name and not the lengthy, unreadable, string of characters that you normally see. Quick note: this can only be done if users have an ENS Domain enabled wallet — i.e. Metamask.

Ok, so go back to the “Contract — Interact with contract” page. Select “ENS: Public Resolver” from the dropdown. In the next screen, navigate to “setAddr”, fill in the “Node” field with the “Namehash” value, and the “Addr” field with your wallet address. Click “Write”.

Image for post
Image for post

And you’re done!

So, what happens now? Well, let’s see if everything is working fine, shall we? Open up an ENS enabled wallet (i.e. Metamask), and try to send some funds to your domain — write your ENS domain on the “To:” field, no need to send actual funds of course.

If all is good, then your wallet should be able to resolve the ENS domain to your actual address! Amazing isn’t it? From this point on, whenever you need to share your address with someone, you can now just tell them your domain!

So, what’s next?

There are at least 2 things that could still be done here:

  1. Set up a reverse-lookup: some dApps being built are using this functionality to increase usability. Basically, if an existing address is associated with an ENS domain, then the dApp will load the domain name instead of the address;
  2. Set up a content URL: an ENS domain can have another field associated with it besides the address value. It’s called the content value, and what it does is it allows for browsers with the Metamask plugin installed to resolve .eth domains to an actual webpage hosted on IPFS. There’s a whole other guide that needed to be written to explain how to do this, so for now, you can check this link if you want to explore a bit further. If you want to see it working, and if you have Metamask installed, just click http://guilhermecampos.eth — it takes a while to load!

After all of this, I think it has become very clear that the tools and the infrastructure to use dApps are still in its infancy — much like the Internet back in the 90’s. And there’s nothing wrong with that! Technology takes time to evolve, and become useful. But don’t despair! There are a lot of extremely smart and hard working people trying to tackle this, non-stop, to get these amazing applications at the tip of your fingers, ready and easy to use!

I’ll leave you to play around with your newly created ENS domain for now. Hope this guide was helpful, and please drop any comments or thoughts below if you have them!

Disclaimer: the views and opinions expressed in this article are those of the author and do not necessarily reflect the official policy or position of any other agency, organization, employer or company. Assumptions made in this article are not reflective of the position of any entity other than the author — and, since we are critically-thinking human beings, these views are always subject to change, revision, and rethinking at any time. Please do not hold me to them in perpetuity.

Go and check gcampos.net if you want to reach out!

Written by

Building the future | gcampos.net

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store