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.
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.
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?
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
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.
Step 3: Input and check the name you would like to get
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:
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:
- 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
- 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
- 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!
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:
If you go back to the Register ENS screen and search for the name you bid for, you should see the following:
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”.
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:
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:
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”.
On the drop-down in the new window, select “ENS: Eth Registrar” and click “Continue”.
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”.
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”.
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.
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.
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”.
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.
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”.
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:
- 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;
- 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!