🧠 Trade 6 min. Get a deep understanding of ENS Registration.
The Ethereum Name System (ENS) is a way of assigning a human readable name to an Ethereum Address.
For example, the ETH address 0x625e5a7cd2e3beecf0f89b60dfee88097b9b86b2
can also be identified as brokendown.eth
.
In many ways it is quite similar to the traditional DNS (Domain Name System) where the IP address 1.1.1.1
can also be identified as cloudflare.com
.
For this article, we’ll focus on the .eth
extension.
🤩 I read the smart contract so you don’t have to!
ENS (.eth) name registration takes place via 3 interactions against the ETHRegistrarController
contract.
#1 is a call to makeCommitment
. (not written to chain)
#2 is a transaction to commit
.
#3 is a transaction to registerWithConfig
.
The current contract can be found on the ETH mainnet at this address: 0x283Af0B28c62C092C9727F1Ee09c02CA627EB7F5
makeCommitment
bundles your registration details into one “secret” value. This is known as a “commitment”. One purpose is to obscure the name you’ll register.
An interesting note: The call does not read or write data to the blockchain. No data storage is used. As a result it can be invoked with 0 gas cost.
Registration Details:
---------------------
MyNewName.eth,
0x625e5a7cd2e3beecf0f89b60dfee88097b9b86b2,
someRandomSecret
Commitment "Secret":
---------------------
0x83f42c35570687e66e4f63008fa4d7bcc899d98dc656ffd8d6d3cd1d4108a
We now store your commitment “secret” on chain. This, so the same name is not registered twice. We do this via commit
.
Then we wait 60 seconds (otherwise contract will ignore our attempt to register).
commit('0x83f42c35570687e66e4f63...c656ffd8d6d3cd1d4108a')
The last step:
Finally we make a transaction to register
and (at the same time) provide ETH as payment. A number of checks are made:
ℹ️ was a valid commitment “secret” provided? (prev step)
ℹ️ is the name still available?
ℹ️ was the correct ETH fee paid?
Once all checks successfully pass:
✅ A resolver is set. A resolver is another smart contract that handles the “routing” of your name. Often, ENS handles this.
✅ The corresponding ERC-721 token (NFT name) is transferred to you.
✅ Any ETH amount sent over the actual cost of the name is automatically refunded to you.
💜 That’s all! Now you know the major secrets to ENS Registration!
There is no size limit to an ENS (.eth) name. You could take your ETH address and register it: 0x625e5a7cd2e3beecf0f89b60dfee88097b9b86b2.eth
There is no upper limit (number of years) you can register a ENS name for.