Earlier this year the Ethereum Name Service was launched to enable human readable addresses for the Ethereum Blockchain. One potential use case for this is to establish your personal identity on the Blockchain.
Whilst Blockchain Identities may not be a big thing right now there are a lot of people working on interesting identity related projects right now. To provide just a few examples of where your Blockchain identity may become more important in the future; there is Civic working on an secure identity platform, uPort are working on a self-sovereign identity and key management solution and Status are working on a mobile app that unlocks the entire Ethereum ecosystem from your phone.
Just like Ethereum addresses themselves, each ENS ID is unique. If there is a username that you use across a lot of services and would like to retain on the decentralised web then you should definitely take steps to reserve it before the rush.
How to Register Your ENS Identity on the Ethereum Blockchain
Step One: Acquire Ether
The first step is actually acquiring some Ethereum (ETH) if you don’t have any yet. You can do this relatively easily through the Coinbase service (Join with that link and we’ll both get $10 bonus if you buy $100 worth). The minimum amount that you’ll realistically need to acquire your name is 0.035 Ether (ETH) which equals about $8.75 USD at the time of publishing. This amount covers the minimum bid for a domain which is currently 0.01 ETH and the associated gas (Ethereum transaction fees).
With the above said; ENS IDs are sold on an auction basis so if you suspect other may challenge you for a name it is worth bidding the most you are prepared to spend. If nobody else bids you will be refunded everything above the minimum bid of 0.01 ETH and if they do bid you will only pay as much as the second highest bidder.
Once you have some Ether you will need to send it to a wallet designed for interacting with smart contracts. If you plan on becoming more involved with Ethereum it makes sense to get set up with either Mist or Parity which act as full nodes. This means that you will need to download the full Blockchain before using it (Parity seems to be fastest for this thanks to it’s warp feature).
If you don’t want to commit to running a full Ethereum node on your computer then an alternative is to use MyEtherWallet.com. This comes across as a website however it actually uses your browsers functionality to do the heavy lifting so they never get access to your private keys. This is great because it means that you have full control over your private keys and can import them into pretty much any wallet software as required, however it also means that you need to keep the files and keys generated here very safe. There is no way they can recover them for you if you lose them and anyone that gets access to them could spend your funds and ultimately control your ENS ID once complete so treat them with extra special care!
Step Two: Open Auction & Bid
Once you have the ETH in an account your control it is time to start the actual auction. First you will have to search to make sure that your name is available. Currently you can only register names that contain 7 characters or more. Other reasons that you might not be able to register an ID is if somebody has already claimed it, if it isn’t available yet (this will show you how long you need to wait), or if it is in the “Reveal” stage of the auction which we will discuss later.
Assuming your name is available you can open the bidding. You can either do this by initiating a bid or by opening the auction without bidding. One reason you might choose to open the auction without bidding is because with a little digging it is possible that somebody could narrow down the domain you are bidding on and also how much you’ve bid, providing an opportunity to outbid you. By separating these transactions it gives you a little more privacy through obscurity.
Another way that you can increase the privacy of your bid is by sending an extra amount with your bid. When using this feature you could send a total of 10 ETH whilst only providing a maximum of 1 ETH on your bid. If someone were to discover the ID that you were bidding on, then there is no way they could tell exactly how much your final bid is, only that it is between 0.01 (the minimum) and 10 ETH or the amount of your bid and extra amount.
However you submit your bid, it is important that you get it in as close to the opening of the auction as you can and with the maximum you are prepared to pay as there are no second chances. Once an auction is open, anyone can bid on it for 3 days and whoever bid the most by the end of that period simply has to reveal their bid to win.
Step Four: Reveal Bid
Once the 3 day auction is over, a 2 day “reveal period” is initiated where you must reveal your bid to have a chance of winning the auction. The reveal period is what allows for the blind auction so it isn’t until this stage that you will find out if other have bid on your domain and how much. This is a manual action and if you don’t do it you will lose your bid. The dynamics of this are a little unfriendly if you’re not prepared but they are there to protect the integrity of the system and to prevent extortion attacks where people threaten to reveal higher bids unless you pay.
Step Five: Claim ENS ID
If all went well and you are the highest or only bidder after the reveal stage you can claim your ID. This finalises the auction and brings the ID under your control. This action will also return any extra amount that you sent over and above the winning bid which is either 0.01 ETH or the amount bid by the second highest bidder, whichever is highest.
If you’ve made it this far then congratulations the name is now yours!
The next steps are optional and will allow you to configure your identity for immediate use.
Step Six: Set Resolver
The first options you are presented with when winning a name are to; set a resolver, transfer or release a the name. The most important of these considering you just bought the name is setting the resolver. This is a reference to a smart contract on the blockchain that controls the logic for your name. There is a default ENS resolver that allows you to link both an Ethereum address and an IPFS/Swarm hash to your name. Both of these are experimental features right now and are not widely supported by wallets and browsers so whilst you can set them up, you shouldn’t rely on them for critical functionality yet.
Bonus Step: Set Reverse Resolver
When setting up the resolver earlier you configured yourname.eth to point to an Ethereum address, however this is a one way relationship by default. If someone were to view your address on the blockchain they may not realise it is associated with yourname.eth For this to happen you need to set up a reverse resolver that declares the link upstream from your Ethereum address to the ENS ID. The easiest way to do this right now is with the MyEtherWallet.com contract interface however you can also add the contract manually in Mist or Parity and call the SetName functionality.
Step Nine: Share Your ID
And there you have it. If you’ve followed all of the above steps then you have opened an auction, bid and won an ENS ID, and configured a two way relationship between your ENS ID and Ethereum address so both are able to represent your blockchain identity concurrently.