Glossary · Blockchain development

ENS (Ethereum Name Service)

Published 28 Apr 2025 · Updated 21 Oct 2026 · 13 min read

ENS (Ethereum Name Service) is a naming system that maps readable names to blockchain addresses and other records. It does not replace blockchain addresses, which still handle onchain transactions. One name can point to addresses on different chains. Lookups start on Ethereum, with some records on layer 2 networks or offchain. Names can also hold profile text and website hashes.

  • ENS links names to multichain addresses, text and content hashes without replacing addresses.
  • A .eth name with five or more characters costs $5 yearly in October 2026 and can be lost after expiry.
  • A wallet should show a primary name only when it resolves back to the same address.

How ENS finds an address

Three kinds of smart contracts make up ENS. The registry stores each name's owner, resolver and cache time, called TTL. An app asks the registry for the resolver, then asks that contract for an address or content hash. Registrars allocate names under domains such as .eth. Names are stored as hashes, giving contracts a fixed identifier to query rather than the text someone types. These roles separate allocation, ownership tracking and record retrieval.

Figure 1 · Four public names, read on 21 October 2026Follow a public namePick a public ENS name to follow five lookup steps, compare the return path and inspect its other records.
Name
Name tag iconStep 1Normalize and hashnamehash('ens.eth')Labelsens + ethNode0x4e34…46df
Contract iconStep 2Ask the registryregistry.resolver(node)Registry0x0000…2e1eResolver0x4976…Ba41
Wallet iconStep 3Ask the resolverresolver.addr(node)ETH address0xFe89…44b7
Magnifier iconStep 4Look up the reverse recordfe89…44b7.addr.reverseReverse resolver0xF291…AC15Primary namewallet.ensdao.eth
Check iconStep 5Check both waysaddr(primary name)Forward result0xFe89…44b7MatchYes
What a wallet should showDifferent primary nameThe address chose wallet.ensdao.eth as its primary name. A wallet shows wallet.ensdao.eth, not ens.eth.
Records on this nameETH address0xFe89…44b7urlhttps://ens.domains/com.twitterensdomainscom.githubensdomainsavatarImage URLcontenthashSwarm hash

The address behind ens.eth names itself wallet.ensdao.eth, the ENS DAO timelock, not the name entered. It also has text records and a Swarm content hash.

The page team read these values from Ethereum mainnet on 21 October 2026.

An app first applies ENSIP-15 normalization, then runs namehash on the normalized name. It splits the name into labels and hashes each with Keccak-256. Each hashed label is called a labelhash. Starting from 32 zero bytes, it hashes those results together from right to left. The final identifier is the node. For ens.eth, that node is 0x4e34…46df. The Universal Resolver completes the lookup in one call. Its current ENS DAO-owned proxy, deployed in August 2025, can be upgraded for ENSv2.

Anyone can point a name at any address. A name resolving to an address does not prove that the address owner chose it. A wallet reads the address's reverse record to find its claimed primary name. It then resolves that name forward and compares the returned address with the original. If they differ, the wallet shows the hex address instead. With no reverse record, it also shows the address. This two-way check is required before displaying the name.

What an ENS name can hold

An ENS address lookup is only one request an app can make. Other record types support profiles, websites and identities across chains. When no Ethereum address is set, a lookup returns the zero address. Clients must then refuse to send funds.

Addresses across chains

ENSIP-9 (2019) selects addresses using SLIP-44 coin types, including Bitcoin 0, Ethereum 60 and Solana 501. ENSIP-11 (2022) gives EVM chains a coin type using the chain ID with its top bit set (0x80000000).

Text records

A text record stores a UTF-8 string under a key. Common keys include avatar, description, email and url, while service-specific keys include com.github and com.twitter.

Website content hashes

A content hash points to a website on the IPFS network, Swarm or similar systems. Multicodec prefixes identify the target, including 0xe3 for IPFS and 0xe4 for Swarm.

Primary names across networks

Since August 2025, reverse records support primary names on Ethereum and five layer 2 networks: Base, OP Mainnet, Arbitrum One, Scroll and Linea.

Registering, renewing and losing .eth names

In October 2026, ENSv1 annual fees are $640 for three characters, $160 for four and $5 for five or more. Payments use ETH on Ethereum mainnet, converted through Chainlink's ETH/USD feed. ENS registration uses commit and reveal, hiding the request before registration to prevent front-running. The reveal must follow at least 60 seconds later, within 24 hours. Anyone can renew a name, not only its owner. The minimum registration lasts 28 days. Renewals follow the same fee table.

Figure 2 · The .eth registrar on 21 October 2026Follow the registration lifecycleChoose ENSv1 or proposed ENSv2 rules and a length, then move the expiry slider to compare yearly fees, premiums and totals.
Rules
Name length
Day 100 after expiry
Life of a .eth registrationReleased. Day 10 of the 21-day premium.Anyone can register it now. The premium halves every day and reaches zero on day 21.
Yearly fee, 5 or more characters$50.0020 ETH at the oracle price
Premium on this day$97,60938.95 ETH
To register for one year$97,61438.95 ETH at $2,505.98 per ETH

After grace, anyone can register with a temporary premium. It starts at $100 million, halves daily and is about $97,600 on day 10.

The page team read prices and oracle values from registrar contracts on 21 October 2026.

The ENSv2 activation vote remains open on 21 October 2026 and ends on 25 October 2026. If it passes, payments move to USDC or DAI, and five-character or longer names cost $8 yearly. The grace period becomes 28 days, with no resolution or transfers during it. Existing names receive 62 extra days, while the temporary premium stays unchanged. Migration stays optional, with no deadline.

Names beyond .eth registrations

An ENS integration cannot assume every supported name is a paid Ethereum registration. Resolution starts on Ethereum, even when its records live elsewhere. Issuance also happens through other services. ENS Labs reports about 17.6 million world.id names and 2 million uni.eth names at the end of 2025.

DNS imports

Since 2021, DNSSEC lets DNS names enter ENS. Gasless DNSSEC, introduced in 2024, checks proofs at query time. Apps must not require an .eth ending.

Offchain and layer-2 records

CCIP-Read lets a resolver fetch verified answers offchain or from a layer 2. Coinbase stores cb.id names on its servers. Basenames live on Base, and Linea names are verified on Ethereum with storage proofs.

Subnames and permissions

Owners create subnames such as pay.example.eth. The Name Wrapper wraps names as ERC-1155 tokens with permission fuses. Second-level .eth names also follow the ERC-721 token standard.

ENSv2 and Namechain

The proposal would give each name level a registry and each account a resolver. In February 2026, development moved to Ethereum alone and the Namechain plan ended.

Lookalike names and normalization

A homoglyph is a character that resembles another character. Such similarities can make two different names look alike. ENSIP-15 normalization defines a shared way to convert typed text before hashing. It folds capitals and full-width letters, removes ignored invisible characters, and combines accents. It also rejects mixed confusable scripts and disallowed characters. The checks reduce ambiguity, but a normalized name can still mislead a reader. In October 2026, the standard uses Unicode 17.0.0.

Figure 3 · ENSIP-15 normalizationCompare spellings before sendingChoose one of eight spellings to inspect code points, the normalized result and whether its hash changes or the name is rejected.
Spelling
What was typedеns.ethCyrillic e among Latin letters
еU+0435nU+006EsU+0073
After normalizationRejectedNo valid nameLibrary error: contains visually confusing characters from multiple scripts (Cyrillic/Latin).Hash of the raw input0xfea5…aa38Hash after normalizationNot computed

The mixed Cyrillic example, all-Cyrillic lookalike and trailing zero-width joiner are rejected, so compliant apps must not resolve them.

Normalization results come from ens-normalize 3.0.10, a Python implementation of ENSIP-15. Hashes were computed by the page team.

Normalization is not enforced onchain and covers only single-character confusables. It accepts address-like names, which Hayden Adams flagged in a February 2024 scam warning. Expired names can change owners. An IMC 2024 study of 3.1 million names found 241,000 re-registered names and 2,633 transactions mistakenly sent to new owners. ENS support cannot reverse a transaction sent to a lookalike.

How ENS changed since 2017

Ownership rules, fees and record formats have changed over time. The ENS DAO, a decentralized autonomous organization, governs the protocol through ENS token holders. Registration fees go to its treasury, while ENS Labs leads core development. Since August 2026, the ENS Foundation has operated with staff and a five-member board.

  1. May 2017

    Mainnet launch with auctions

    Ethereum mainnet registration opened with sealed-bid Vickrey auctions for names of seven or more characters. The specification dated to April 2016, followed by the first registry in March 2017.

  2. May 2019

    Annual registration replaces auctions

    The permanent registrar introduced yearly fees, replacing the auction process. Names with seven or more characters cost $5 annually, paid in ETH, and auction deposits were returned.

  3. November 2021

    Token holders gain governance

    The ENS token launched with DAO governance. The token airdrop allocated 25% of the 100 million tokens to more than 137,000 eligible accounts. Claims opened on 8 November 2021.

  4. March 2023

    Permissions for wrapped names

    Wrapping converted names into ERC-1155 tokens with settings called fuses. The Name Wrapper applied to any ENS name, not only second-level registrations. Parent owners could burn fuses to set guaranteed permissions for subnames.

  5. June 2023

    One shared normalization standard

    ENSIP-15 established a common normalization process. The DAO approved refunds of about 115 ETH for 2,973 addresses whose names became invalid. Payouts went out in December 2023.

  6. August 2025

    Primary names reach more chains

    Support expanded to five layer 2 networks, removing the earlier need for a mainnet transaction. A new Universal Resolver proxy also arrived, with onchain two-way checks for primary names.

  7. February 2026

    Ethereum replaces the rollup plan

    ENS Labs abandoned the planned Namechain rollup and kept ENSv2 on Ethereum. It cited a 99% fall in registration gas costs over the preceding year. The announcement came on 6 February 2026.

  8. October 2026

    Contracts deployed before activation vote

    Contracts reached Ethereum mainnet on 2 October 2026. The activation vote opened on 18 October 2026. ENSv2 is not live on 21 October 2026, with voting still open.

ENS and other naming systems

The Ethereum Name Service is not the same as DNS, even though DNSSEC can connect the two. Other blockchain naming systems use different networks, payment rules and identifiers. A readable name does not imply the same ownership model or identity checks across systems.

SystemWhere names liveHow names are heldWhat names point to
ENSWhere names liveThe registry lives on Ethereum, with records also stored offchain or on layer 2How names are heldIn October 2026, .eth registrations require yearly fees and can expireWhat names point toNames resolve to multichain addresses, text records and content hashes
Unstoppable DomainsWhere names liveIts UNS service runs on Ethereum and PolygonHow names are heldDomains are held as NFTs under the provider's naming rulesWhat names point toNames resolve through its own UNS naming service
Solana Name ServiceWhere names liveNames and their records live on SolanaHow names are heldNames are priced by length and can be wrapped as NFTsWhat names point toNames map to Solana accounts and associated records
Canton Name ServiceWhere names liveDaml contracts run on Canton's Global Synchronizer under DSO governanceHow names are heldSubscription renewals use Canton Coin, and payments are burnedWhat names point toNames map to Canton party identifiers without verifying registrant identity

Building ENS support into products

A team integrating ENS needs clear requirements for lookup behavior, identity checks and payment confirmation. Missing records, mismatched reverse lookups and changing ownership need explicit handling. Names whose data sits outside Ethereum add another lookup path. These concerns belong in product requirements and tests, rather than a promise that readable labels make every transfer safe. The scope should state which chains and record types the product will support.

PixelPlex case icon

At PixelPlex, we build naming into Canton wallets and apps, addressing the same naming problem ENS handles on Ethereum. CC Tag in our CC Suite uses Canton Name Service. The Canton Loop wallet, built for FiveNorth, combines name-based sending with an address book that highlights verified entries. The CC View explorer includes name data through CNS integration.

  1. Resolution and library support

    The Universal Resolver reduces a lookup to one call. October 2026 ENSv2 guidance lists viem 2.35+, ethers 6.17+ and web3.py 7.16+.
  2. Normalization before hashing

    Test accepted, rejected and visually ambiguous input against the ENSIP-15 rules. Keep typed text distinguishable from the normalized name used to request records.
  3. Verified display names

    Treat reverse lookup as a claim until its forward address matches. Display the hex address when that check fails or no reverse record exists.
  4. Expiry and cache handling

    Account for registry TTL values and renewal states. A cached destination should not conceal an ownership change after a name expires.
  5. Subnames and external records

    Define who controls each subname and where its records live. Test CCIP-Read paths for offchain services and layer-2 data before exposing name-based payments.

Plan name support for your next integration

We can discuss resolution paths, display checks and renewal behavior for a wallet, app or payment flow.

Discuss an integration

ENS FAQ

What is ENS and how does it work?

ENS is the Ethereum Name Service, an open naming system that links readable names to addresses and other records. An app asks the registry for a resolver, then asks that resolver for the requested record. It also supports reverse records for primary names, letting addresses identify their chosen names.

How much does a .eth name cost?

The October 2026 fee table charges $5 yearly for five or more characters, $160 for four and $640 for three. On 21 October 2026, those fees equal about 0.0020, 0.0638 and 0.2554 ETH respectively, before gas. The registrar's implied exchange rate is $2,505.98 per ETH. Names shorter than three characters cannot be registered.

What happens when an ENS name expires?

Under October 2026 ENSv1 rules, the owner retains a 90-day renewal window before registration opens with an added premium. That premium falls to about $781,000 on day seven, $6,060 on day 14 and $48 on day 20. It reaches zero on day 21. This is a registration charge, not a renewal penalty.

Is ENS the same as a DNS domain?

They are distinct systems, although DNSSEC lets a DNS domain participate in ENS. Gasless DNSSEC checks a proof during resolution rather than requiring an import transaction. This means a name can work without an .eth ending. ENS documentation explicitly warns against apps that accept only that suffix, since they exclude supported DNS names.

Can ENS store Bitcoin or Solana addresses?

Yes, a single name can publish separate records for Bitcoin, Solana and Ethereum addresses. The requested coin type determines which record an app reads: Bitcoin uses 0, Ethereum 60 and Solana 501. EVM networks follow a separate chain-ID convention. For example, Base uses coin type 2147492101, so a chain-aware lookup need not return the mainnet address.

What is an ENS primary name?

It is the name an address claims for display, subject to a matching forward lookup. The reverse record sits under [address].addr.reverse, rather than in the ordinary name-to-address record. Without that second lookup, a name pointing at someone else's address could be mistaken for the address owner's chosen identity. A mismatch means displaying the hex address instead.

What does ENSv2 change for existing names?

Voting remains open on 21 October 2026, so ENSv2 is not live. Approval would leave existing names working, with optional migration and no deadline. Each would get a free 62-day extension. Three- and four-character fees remain unchanged. For names with five or more characters, a six-year term would cost $27 under the multi-year discounts the DAO approved for ENSv2.
Sources (35)

Get updates about blockchain, technologies and our company

We will process the personal data you provide in accordance with our Privacy policy. You can unsubscribe or change your preferences at any time by clicking the link in any email.

Follow us on social networks and don't miss the latest tech news

  • facebook
  • X
  • linkedin
  • instagram
Stay tuned and add value to your feed