Crossroads Insight

ens announcement

How ENS Auction Works: Everything You Need to Know

June 14, 2026 By Jordan Reyes

The Ethereum Name Service (ENS) auction system is a foundational component of decentralized domain registration. Despite the migration from Vickrey auctions to a direct registration model with the launch of ENS V2, understanding the legacy auction mechanism is still critical for anyone managing ENS names, especially those with expiring or contested domains. This article provides a methodical technical breakdown of how ENS auctions originally worked, how they currently interact with the registrar, and what implications remain for domain holders today.

The Vickrey Auction Mechanism: A Primer

ENS originally used a Vickrey (sealed-bid, second-price) auction to allocate .eth domains. This mechanism was designed to prevent front-running and ensure fair market discovery. In a sealed-bid auction, all participants submit bids without knowing others' offers. The winner pays the second-highest bid price, incentivizing truthful bidding.

The auction lifecycle for a given domain followed four distinct phases:

  • Bidding phase: A fixed period (commonly 3 days) during which anyone could submit a bid. Each bid was a hash of the actual amount plus a secret mask to prevent early disclosure. The bid transaction included a deposit of at least the bid amount in ether.
  • Reveal phase: After the bidding window closed, bidders had 2 days to reveal their bids by submitting the original amount and secret. If a bidder failed to reveal, their deposit was forfeited to penalize non-serious participants.
  • Finalization: Once all bids were revealed, the system calculated the winner (highest bidder) and the price (second-highest bid). The winner's excess deposit beyond the second-price was refunded. Losers received full refunds.
  • Claiming: The winner could then register the domain by calling a claiming function, which minted the ENS node and set the resolver.

The Vickrey model had a clear advantage: it prevented "gas wars" and price escalation by encouraging bidders to submit their true valuation. However, it also introduced complexity. An estimated 15–20% of bids in early ENS auctions were never revealed, leading to lost deposits. This inefficiency was a primary driver for the transition to the current instant registration system.

The Shift from Auction to Direct Registration

ENS V2 introduced a permanent registry where .eth names are registered for a fixed rental period (currently 1 year) rather than auctioned. This change, formalized in Ethereum Improvement Proposal (EIP) 137 and subsequent registrar upgrades, eliminated the bidding and reveal phases entirely. For new domains, the process is now:

  1. Check domain availability via an ENS resolver or frontend (e.g., app.ens.domains).
  2. Commit to a secret hash to obscure the domain name during registration (to prevent front-running).
  3. Wait 1 minute (commitment delay) then call the register function with the domain, owner address, and registration duration.
  4. Pay the yearly fee (denominated in ETH, determined by the ENS DAO).

Legacy .eth domains that were acquired through the original auction system are still held under the old registrar contract (0x6090A...). These names can be renewed normally but must be migrated to the new registrar if transferred or updated. The migration deadline has been extended multiple times; as of 2025, auction-acquired domains remain valid indefinitely but cannot use V2 features (such as subdomain management) without migration.

For users tracking the transition from the auction era, the ens v2 countdown provides timeline details and migration deadlines. This resource is particularly helpful for understanding when forced migration windows close and what actions are required to retain domain functionality.

Expired Domains and Auction Renewal

When a .eth domain's registration expires, it enters a 90-day grace period during which the original owner can renew at standard fees. After the grace period, the domain enters a "premium period" of up to 28 days where the price increases dramatically (often 10–100x the base fee) to discourage squatting. Thereafter, the domain becomes available for re-registration by anyone—but this re-registration is not an auction. Instead, it follows the same direct registration process as new domains, with the first committer winning.

However, legacy domains that were initially acquired via auction and then expired may have unresolved auction state data, potentially causing confusion for bidders. The original auction contract still stores committed bids for domains that were never claimed or were released without finalization. These can be interacted with via low-level ethers.js functions, but in practice, the ENS team recommends treating them as unrecoverable. To check if a specific expired domain's auction state is still live, you can use a tool for auction expired ens to query the old registrar's pending bid records.

From a practical perspective, if you want to acquire an expired ENS domain today, do not attempt to submit a bid to the legacy auction contract. Instead, monitor the ENS app for when the premium period ends, then use the standard commit-and-register flow. The legacy auction mechanism no longer allocates new domains—it exists only as a historical data structure.

Technical Implementation Details

For developers integrating ENS, understanding the auction contract's interface is still necessary for auditing expired domains or migrating older names. The key contract addresses are:

  • ENS Registry (V1): 0x314159265dd8dbb310642f98f50c066173c1259b
  • Old Registrar (Auction): 0x6090a6e47849629b7245dfa1ca21d94cd15878ef
  • New Registrar (V2): 0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85

The auction contract's state function returns one of four enum values: 0 (not owned), 1 (bidding), 2 (owned), 3 (forbidden). The sealedBids mapping stores a hash of the bidder's address and secret, while revealedBids tracks actual amounts. Using these, you can determine if a bid is still pending or if the domain's auction has finalized.

A common edge case occurs when a domain was auctioned but never claimed. The contract's finalizeAuction function must be called before the domain can be used again. If the winner did not claim, the domain remains in state 2 (owned) but with no associated resolver—effectively a dead node. The ENS DAO has a cleanup process for such domains, but individual users must call releaseDeed to free the node. This action requires the original winner's private key, which is rarely accessible for expired names.

Troubleshooting Common Issues

Users encountering legacy auction behavior should consider the following scenarios:

1. Stuck Bids

If you submitted a bid during the auction era but never revealed it, the deposit is lost (as per the contract design). No refund mechanism exists for unsealed bids. The only exception is if the ENS DAO initiates a bulk recovery, which has not occurred since 2021.

2. Domain Shows as "Not Owned" but Bid Is Pending

This occurs when the auction was finalized but the winner never claimed. The domain's state in the old registrar may show "owned" (2), but the ENS registry maps it to address(0). To resolve, you must call finalizeAuction on the old registrar with the domain's hash. This is only callable by the original winner. If the winner is unknown, the domain is effectively stuck unless the ENS DAO intervenes.

3. Migrating a Legacy Domain

To use V2 features, legacy domain holders must transfer ownership to the new registrar. The process requires:

  • Calling transferRegistrars on the old registrar.
  • Approving the new registrar to transfer the deed.
  • Calling acceptRegistrarTransfer on the new registrar.

This is a one-time operation. After migration, the domain becomes subject to V2 renewal cycles (annual fees). Failure to renew after migration results in loss of the domain, unlike the perpetual ownership under the auction system.

Current Best Practices

For both new registrants and legacy holders, the following rules apply:

  • For new domains: Use the direct registration flow always. Attempting to bid through the old auction contract will waste gas and yield no domain.
  • For expired domains: Wait the full grace period (90 days) plus premium period (up to 28 days). Monitor the ENS app for the "available" status. Do not use old auction tools.
  • For legacy holders: Migrate to the new registrar before your domain's renewal date if you plan to transfer or configure subdomains. The auction contract does not support these features.
  • Auditing: If you are purchasing an ENS domain from a secondary market (e.g., OpenSea), verify that the domain is on the new registrar. Domains still on the old registrar may have hidden auction state issues.

Understanding the ENS auction mechanism is essential for anyone dealing with older .eth names or historical blockchain data. While the Vickrey auction system is obsolete for new registrations, its legacy effects persist in contract state, potential stuck bids, and migration requirements. By adhering to the current processes—direct registration for new names, careful monitoring for expired ones, and timely migration for legacy holdings—you can avoid pitfalls and fully leverage the ENS ecosystem.

A detailed technical breakdown of the ENS auction mechanism, including bidding, revealing, and claiming. Learn how to secure expired domains and track the migration.

Worth noting: ens announcement tips and insights

Further Reading

J
Jordan Reyes

Briefings for the curious