ENS
Overview
ENS Domains

What is an ENS domain and how does it work?
An ENS domain is a unique name registered on the Ethereum Name Service (ENS) system that can be used to represent various resources, including Ethereum addresses, IPFS content hashes, and other metadata.

ENS is a decentralized domain name system built on top of the Ethereum blockchain. It allows users to register human-readable names, such as myname.eth, and associate them with specific Ethereum addresses or other resources. Once registered, the owner of the domain has full control over it and can use it to point to different resources as needed.

When a user types a website address into their browser or interacts with a decentralized application that uses ENS, the system resolves the human-readable name to the corresponding Ethereum address or other resource associated with that name. This makes it easier for users to interact with decentralized applications without having to remember complex addresses or hashes.

In addition to simplifying the user experience, ENS domains also provide a layer of security by allowing users to verify that they are interacting with the correct resource or application. This is particularly important in the decentralized finance space, where users need to be sure that they are sending transactions to the intended destination.


ENS Use Cases:

ENS Names offer So Much More Than Other Domains
All-In-One

ENS domains are decentralized alternatives to DNS domains, built on Ethereum smart contracts. They can be used as a censorship-proof Dweb point of access for websites, but they can also serve as an identity, wallet, payment processor, and much more, all at the same time. ENS domains can reference multiple resources at once, like IPFS hashes, ETH addresses, Twitter handles, emails, and avatars, and they work contextually depending on the user's needs. For example, an ENS domain could function as a personal CV website, but it could also act as a human-readable form of a user's 42-character wallet address in a compatible wallet service.

ENS Combines Multiple Web Services into a Frictionless One
Ens Benifits

Traditionally, creating a commercial web or web app required using separate services for things like payments, hosting, authentication, and more. These services often relied on private third parties and worked separately.

However, with ENS, all of these services can be easily integrated and encapsulated within the domain name itself. By using an Ethereum address or other crypto as the core of the ENS domain name, the payment gateway and bank aspect are resolved right away.

Additionally, ENS subdomains can be used for authentication and profiles, allowing users to quickly create accounts linked to their own addresses. This can create a simple and unified structure, such as user.yourdomain.eth, that makes it easy for users to manage their accounts and assets.

The use of ENS as a naming convention for internal assets can also lead to interesting applications, as these names are NFTs that can be traded and managed on the blockchain.

Overall, ENS provides easy access to an open decentralized infrastructure, allowing for a more unified and streamlined approach to web services without relying on centralized entities. With the Ethereum ecosystem and IPFS, ENS can easily cover all the necessary components of a web or web app.

ENS Domains Could Unify Online Identities
All In One

Balaji S. Srinivasan, a prominent technology figure, has argued that real names are not well-suited for the internet.


Real names are just descriptors, tied to other identifiers like usernames, email addresses, and bank accounts, which are platform-specific and must be remembered and shared separately. This can be inconvenient and even risky.

In contrast, the Ethereum Name Service (ENS) is designed specifically for the web. It offers a simpler and more unified web experience by allowing businesses and individuals to use pseudonyms as their main online ID. By knowing just one pseudonym, you could connect, pay, and interact with them without needing to remember separate identifiers for each use case.

For individuals, a single .eth domain name could serve as a global pseudonym for their online presence, with subdomains for different actions like paying, connecting, or hiring. ENS also allows for the inclusion of metadata, such as wallet addresses, content hashes, custom text records, keywords, URLs, Github and Twitter handles, email addresses, and avatars.

This opens up many possibilities for custom use cases in the future. Any platform could add their custom records to ENS and enable users to take advantage of this naming system. Additionally, individuals could create a custom online identity that references all relevant aspects, including financial, social, and professional, in a simple and unified way.

The Potential Role of ENS in Storage
Storage

A promising use case for ENS is to create centralized storage identities owned by users. The decentralization of storage and empowering users to control their data faces the obstacle of the traditional platform storage paradigm. Instead of users storing their data in a platform's storage that they do not own or control, we propose that platforms store user data in a user-owned storage that is controlled by the user, and access is given to platforms as needed.

Ethereum key-based accounts are crucial to this vision of user-owned storage as they provide a unified online identity for users, allowing them to authorize platforms to connect to their unified pseudonym rather than holding platform-specific accounts. By adding user-owned storage behind an ENS unified pseudonym, users can sign up for new services and platforms with their user data and information automatically stored in their personal storage accounts, further closing the ownership and decentralization circle.

This is one of the many possible use cases for storage, but it is a fundamental concept in reimagining how we construct user-owned storage.

Giving ENS Names Protagonism
ENS domains have demonstrated their exceptional adaptability and interoperability, effectively facilitating the accessibility of decentralized applications and services. As ENS has evolved and expanded its use cases, it is now poised to serve as a powerful unifying force for entities in the next phase of the web's evolution. By leveraging ENS domains, various sub-components of an entity can be seamlessly integrated and managed in a unified manner. For further information on ENS use cases and experimentation opportunities for your Dapp, please refer to the ENS documentation site.

This post was based off of Bleek.co's great post "Why ENS Names are Much More Than Domains
Getting Started
To get an ENS domain, you will need to follow these steps:
  1. First, you will need to install a web3-enabled browser extension such as MetaMask or use a web3-enabled wallet such as Coinbase Wallet or MyEtherWallet.
  2. Next, you will need to acquire some Ethereum (ETH) cryptocurrency as ENS domains are purchased using ETH. You can purchase ETH on a cryptocurrency exchange or through a peer-to-peer exchange.
  3. Once you have ETH, you can visit the ENS Manager website (app.ens.domains) and search for the domain name you want to register. You can check the availability of a domain name and register it if it is available.
  4. Once you have selected your domain name and paid the registration fee, you will become the owner of the domain. You can then configure the domain to include information such as wallet addresses, IPFS hashes, and other metadata.
  5. You can also use your ENS domain to interact with dApps and other Ethereum-based services that support ENS.

Note that registering an ENS domain requires a one-time fee, but there is also an ongoing yearly fee to maintain ownership of the domain. You can find more information about ENS registration fees on the ENS Manager website.
Terminology

Controller
: The account that may edit the records of a name. The Controller may be changed by the Registrant or Controller.

Label: An individual component of a name, such as 'alice'.

Labelhash: The keccak256 hash of an individual label.

Name: An ENS identifier such as 'alice.eth'. Names may consist of multiple parts, called labels, separated by dots.

Namehash: The algorithm used to process an ENS name and return a cryptographic hash uniquely identifying that name. Namehash takes a name as input and produces a node.

Node: A cryptographic hash uniquely identifying a name.

Owner: The owner of a name is the entity referenced in the ENS registry's owner field. An owner may transfer ownership, set a resolver or TTL, and create or reassign subdomains.

Registrar: A registrar is a contract responsible for allocating subdomains. Registrars can be configured at any level of ENS, and are pointed to by the owner field of the registry.

Registration: A registration is a registrar's record of a user's ownership of a name. This is distinct from the owner field in the Registry; registrations are maintained in the registrar contract and additionally store information on expiry date, fees paid, etc.

Registrant: The owner of a registration. The registrant may transfer the registration, set the Controller, and reclaim ownership of the name in the registry if required.

Registry: The core contract of ENS, the registry maintains a mapping from domain name (at any level - x, y.x, z.y.x etc) to owner, resolver, and time-to-live.

Resolver: A resolver is a contract that maps from name to the resource (e.g., cryptocurrency addresses, content hash, etc). Resolvers are pointed to by the resolver field of the registry.
FAQ
About the ENS Registry 

Why are names registered as hashes? 
-Hashes provide a fixed length identifier that can easily be passed around between contracts with fixed overhead and no issues passing around variable-length strings. 
Which wallets and dapps support ENS so far? 
A partial list can be seen on the homepage
 
Once I own a name, can I create my own subdomains? 
-Yes. You can create whatever subdomains you wish and assign ownership of them to other people if you desire. You can even set up your own registrar for your domain. 
 
Can I change the address my name points to after I’ve bought it? 
-Yes, you can update the addresses and other resources pointed to by your name at any time. 
 
Can I register a TLD of my own in the ENS? 
-No. We consider ENS to be part of the 'global namespace' inhabited by DNS, and so we do our best not to pollute that namespace. ENS-specific TLDs are restricted to only .eth (on mainnet), or .eth and .test (on Ropsten), plus any special purpose TLDs such as those required to permit reverse lookups. 
In addition to that, we are deploying support for importing DNS domains from the majority of DNS top-level domains using an integration that relies on DNSSEC. For details on those plans, please read this post
 
Who owns the ENS rootnode? What powers does that grant them? 
-The root node is presently owned by a multisig contract, with keys held by trustworthy individuals in the Ethereum community. We expect that this will be hands-off, with the root ownership only used to effect administrative changes, such as the introduction of a new TLD, or to recover from an emergency such as a critical vulnerability in a TLD registrar. 
The keyholders are drawn from respected members of the community, and with the exception of Nick Johnson, founder of ENS, are unaffiliated with ENS. We ask and expect them to exercise their individual judgement acting in the interests of the ENS community, rather than rubber-stamping requests made to them by ENS developers. 
 
Since the owner of a node can change ownership of a subnode (unless they have otherwise locked it from their control), the owner of the root can change any node in the ENS tree. This means that the keyholders can replace the contracts that govern issuing and managing domains, giving them ultimate control over the structure of the ENS system and the names registered in it. However, the root key holders have locked control of the .eth registrar contract, which means that even keyholders cannot affect the ownership of .eth domains. 
 
The keyholders are still capable of doing the followings: 
-Control allocation and replacement of TLDs other than .eth - this is required to implement DNSSEC integration. 
-Enable and disable controllers for the .eth registrar, which affect registration and renewal policies for .eth names. 
-Update the pricing for .eth names. 
-Receive and manage registration revenue. 
 
Over time, we plan to reduce and decentralise human control over the system. Powers still held by the ENS root, such as those to set pricing and renewal conditions for domains, will be decentralised as robust systems become available to permit doing so. 
 
What about foreign characters? What about upper case letters? Is any unicode character valid? 
-Since the ENS contracts only deal with hashes, they have no direct way to enforce limits on what can be registered; character length restrictions are implemented by allowing users to challenge a short name by providing its preimage to prove it’s too short. 
 
This means that you can in theory register both ‘foo.eth’ and ‘FOO.eth’, or even <picture of my cat>.eth. However, resolvers such as browsers and wallets should apply the nameprep algorithm to any names users enter before resolving; as a result, names that are not valid outputs of nameprep will not be resolvable by standard resolvers, making them effectively useless. Dapps that assist users with registering names should prevent users from registering unresolvable names by using nameprep to preprocess names being requested for registration. 
 
Nameprep isn’t enforced in the ENS system. Is this a security/spoofing/phishing concern? 
It’s not enforced by the ENS contracts, but, as described above, resolvers are expected to use it before resolving names. This means that non-nameprep names will not be resolvable. 
 
What are the differences between ENS and other naming services such as Namecoin and Handshake? 
-ENS complements and extends the usefulness of DNS with decentralised, trustworthy name resolution for web3 resources such as blockchain addresses and distributed content, while Namecoin and Handshake are efforts to replace all or part of DNS with a blockchain-based alternative. 
 
About the .eth Permanent Registrar 
 
How do the ENS Manager App and the Twitter bot know what names people are buying? 
-The ENS Manager App and the Twitter bot have built-in lists of common names, drawn from an English dictionary and Alexa’s list of top 1 million Internet domain names. They use these lists to show you when common names are bought or renewed. We do this because if the app didn’t reveal these names, anyone with a little technical skill could find them out anyway, giving them an advantage over those who don’t have the capacity to build their own list and code to check names against it. 
What does it cost to register a .eth domain? 
 
Currently, registration costs are set at the following prices: 
5+ character .eth names: $5 in ETH per year. 
4 character .eth names: $160 in ETH per year. 
3 character .eth names $640 in ETH per year. 
3 and 4 character names have higher pricing to reflect the small number of these names available. 
 
What happens if I forget to extend the registration of a name? 
-After your name expires, there is a 90 day grace period in which the owner can't edit the records but can still re-register the name. After the grace period, the name is released for registration by anyone with a temporary premium which decreases over a 21 days period. The released name continues to resolve your ETH address until the new owner overwrites it. 
 
What kinds of behaviours are likely to result in losing ownership of a name? 
-The .eth registrar is structured such that names, once issued, cannot be revoked so long as an active registration is maintained. 
Monthly ENS Statistics
February 2022
  • 67k new .eth registrations (total 739k names)
  • ~$4m in protocol revenue (all goes to the DAO)
  • 28k new eth accounts w/ at least 1 ENS name (total 319k)
  • 21 new integrations, total at 500
  • >99% of OpenSea vol for domains

March 2022
  • 85k new .eth registrations (total 825k names)
  • ~$3m in protocol revenue (all goes to the DAO)
  • 31k new eth accounts w/ at least 1 ENS name (total 349k)
  • >99% of OpenSea vol for domains

April 2022
  • 163k new .eth registrations (total ~990k names)
  • 2,660 ETH in fees (up 900 ETH from prev best month, Nov21)
  • ~$7.8m in protocol revenue (all goes to the DAO)
  • 38k new eth accounts w/ at least 1 ENS name (total 387k)
  • >4,000 ETH in secondary on OpenSea

May 2022
  • 365k new .eth registrations (total ~1.36m names)
  • $9.6m in protocol revenue (all goes to the DAO)
  • 3,900 ETH in fees (up 1,300 ETH from last month)
  • 57K new eth accounts w/ at least 1 ENS name (total 439K)
  • 10,500 ETH of OpenSea vol

June 2022
  • 122k new .eth registrations (total ~1.47m names)
  • $3.3m in protocol revenue (all goes to the DAO)
  • 2,500 ETH in revenue (3rd highest month)
  • 25K new eth accounts w/ at least 1 ENS name (total 463K)
  • >99% of OpenSea domain vol

July 2022
  • 378K new .eth registrations (total 1.86m names)
  • $6.8m in protocol revenue (all goes to the DAO)
  • 5,400 ETH in revenue (highest ever month)
  • 48K new eth accounts w/ at least 1 ENS name (total 508k)
  • >99% of OpenSea domain vol

August 2022
  • 301K new .eth registrations (total 2.17m names)
  • $4.7m in protocol revenue (all goes to the @ENS_DAO)
  • 2,744 ETH in revenue (3rd highest month)
  • 34K new eth accounts w/ at least 1 ENS name (total 540k)
  • >99% of OpenSea domain vol

September 2022
  • 437k new .eth registrations (total 2.6m names)
  • $5.5m in protocol revenue (all goes to the @ENS_DAO)
  • 35k new eth accounts w/ at least 1 ENS name (total 572k)
  • 1,431 DWeb content records set (total 14,393)
  • 97% of OpenSea domain volume

October 2022
  • 174k new .eth registrations (total 2.75m names)
  • 25k new eth accounts w/ at least 1 ENS name (total 594k)
  • 8,173 avatar records set (total 58k)
  • 1,851 DWeb content records set (total 15,685)
  • $2.9m in protocol revenue (all goes to the @ENS_DAO)

November 2022
  • 70k new .eth registrations (total 2.79m names)
  • $1.7m in protocol revenue (all goes to the @ENS_DAO)
  • 22k new eth accounts w/ at least 1 ENS name (total 612k)
  • 5,445 avatar records set (total 62k)
  • 1,660 DWeb content records set (total 16,715)

December 2022
  • 53k new .eth registrations (total 2.83m names)
  • $1.6m in protocol revenue (all goes to the @ENS_DAO)
  • 22k new eth accounts w/ at least 1 ENS name (total 630k)
  • 6,727 avatar records set (total 67k)
  • 2,112 DWeb content records set (total 18,100)

January 2023
  • 56k new .eth registrations (currently 2.8m names)
  • $1.8m in protocol revenue (all goes to the @ENS_DAO)
  • 23k new eth accounts w/ at least 1 ENS name (total 648k)
  • 5,599 avatar records set (total 70k)
  • 1,622 DWeb content records set (total 19,133)

February 2023
  • 40k new .eth registrations (currently 2.8m names)
  • $2.2m in protocol revenue (all goes to the @ENS_DAO)
  • 19k new eth accounts w/ at least 1 ENS name (total 661k)
  • 3,800 avatar records set (total 73k)
  • 832 DWeb content records set (total 19,594)

March 2023 
  • 41k new .eth registrations (currently 2.8m names)
  • $1.7m in protocol revenue (all goes to the @ENS_DAO)
  • 24k new eth accounts w/ at least 1 ENS name (total 678k)
  • 3,307 avatar records set (total 75k)
  • 974 DWeb content records set (total 20,129)

April 2023
  • 27k new .eth registrations (currently 2.8m names)
  • $1.7m in protocol revenue (all goes to the @ENS_DAO)
  • 17k new eth accounts w/ at least 1 ENS name (total 690k)
  • 3,001 avatar records set (total 77k)
  • 838 DWeb content records set (total 20,459) 


May 2023
  • 16k new .eth registrations (currently 2.7m names)
  • $1.4m in protocol revenue (all goes to the @ENS_DAO)
  • 12k new eth accounts w/ at least 1 ENS name (total 696k)
  • 16,326 avatar records set (total 93k)
  • 682 DWeb content records set (total 20,755)