An overview of ENS
In the ever-expanding landscape of Web3, interacting with long, unreadable Ethereum addresses like 0x4cbe58c50480...
is both error-prone and unfriendly. That’s where ENS — the Ethereum Name Service—comes in. It serves as the naming protocol of the decentralized web, providing human-readable names for Ethereum addresses, content hashes, smart contracts, and more.
- ENS maps human-readable names like
alice.eth
to Ethereum addresses and other identifiers. - It’s a decentralized protocol built on Ethereum.
- It consists of a Registry, Resolvers, and Namehashing algorithm.
- ENS names can be owned, transferred, subdivided, and resolved like DNS names.
Top-Level Domains (TLDs), like .eth
and .test
, are owned by smart contracts called registrars, which specify rules governing the allocation of their names. This enables seamless interoperability with the DNS (Domain Name System).
ETH Registrar
The ETH Registrar is the registrar for the .eth
TLD. It allows for trustless decentralized names to be issued on the Ethereum Blockchain. Registration is done through smart contracts, and name ownership is secured by the Ethereum blockchain.
ENS Registry
The ENS Registry is a smart contract (ENSRegistry.sol) that serves as the single source of truth for all ENS domain ownership and control. It stores three critical pieces of data for every ENS name:
- owner: The address that controls the name.
- resolver: The contract responsible for name resolution.
- ttl: The time-to-live for the record.
Each ENS name is identified using 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.
Resolvers
A Resolver is a smart contract that implements the logic to convert a name into the actual resource: an Ethereum address, content hash (like IPFS), or metadata.
Resolvers implement the PublicResolver interface, supporting:
addr()
: Ethereum addresstext()
: Metadata like email, descriptioncontenthash()
: IPFS or Swarm hashes
Advanced Features
- Subdomain Creation: Create subdomains such as
app.enscribe.eth
and delegate ownership to another address or app. - Reverse Resolution: Map a wallet or contract address back to its ENS name (used in wallets like MetaMask).
- Content hashes: Map ENS names to decentralized websites on services such as IPFS or Swarm.
- Text Records: Store metadata such as Twitter handle, avatar, or Discord ID against ENS records
Integration in dApps
ENS names are widely supported in the Web3 ecosystem:
- Wallets: MetaMask, Rainbow, Rabby
- Explorers: Etherscan, Chainlens, Blockscout
- Libraries: Viem, Wagmi, ethers.js, Web3j, and web3.py
ENS plays a critical role in making Ethereum more usable and accessible. By turning complex addresses into readable, verifiable identities, ENS helps bring clarity, trust, and UX improvements to dApps across the ecosystem.