Skip to main content

Fix .eth registration errors

Stuck on 'Almost there'? Insufficient balance, expired commit, or leftover commit? Find your error and run the fix.

Stuck on "Almost there"? Do this first.

Disconnect your wallet, close the page, reopen app.ens.domains in the same browser, and reconnect. It's free, it takes a minute, and it often works. If your registration comes back at Step 3, finish it and you're done.

Don't clear your site data or switch browsers yet. If the app still has your commit code, clearing it destroys the one thing that can finish your registration.

If reconnecting didn't bring it back, find your case below.

Good to know

  • Registration is 3 steps: commit (Step 1) → wait 60 seconds (Step 2) → register (Step 3). The commit and the register are two separate transactions.

  • You need ETH on Ethereum Mainnet for the registration fee and gas. There's no other cost.

  • You have 24 hours to complete Step 3 after Step 1. The countdown the app shows is a deadline, not a wait — you don't have to sit it out. After that, you need to start over.

  • Don't speed up the commit transaction (Step 1). Replacing it leaves the registration stuck on "Almost there".

What went wrong

Most .eth registration errors trace to one of four causes — not enough ETH on Ethereum Mainnet, an expired commit, a leftover commit that didn't clear, or a replaced commit that left the registration stuck on "Almost there". "Almost there" is the most common, so start there if your registration won't move past Step 3.

Stuck on "Almost there"

"Almost there" means the ENS App can't find a code it saved in your browser when you did Step 1. It needs that code — the commit hash — to finish Step 3.

If you haven't tried reconnecting yet, do that first — it's at the top of this page and it's free. If you have, find the commit transaction in your wallet's activity log — it's the first of the two — and paste the hash into Etherscan.

What your commit transaction shows

What it means

What to do

Still Pending

The commit hasn't confirmed yet. The app is waiting for it.

Wait it out. Don't speed up, replace, or cancel it — that changes the hash and leaves the registration stuck.

Success, under 24 hours

Your commit went through and is stored on the blockchain. But the app has lost the matching code in your browser, and it can't use the commit without it. You can't get that code back.

Start over from Step 1 (below).

Success, over 24 hours

The commit has expired.

Start over from Step 1 (below).

You sped it up, replaced it, or cancelled it — or there's no matching transaction

The app is tracking a hash that isn't on the blockchain.

Start over from Step 1 (below).

To start over cleanly:

  1. Clear the ENS App's site data — cache and local storage for app.ens.domains — or open the app in a different browser.

  2. Reopen app.ens.domains and reconnect the same wallet.

  3. Search for the name and register from Step 1.

Your old commit stays on the blockchain and expires by itself. It won't block your next attempt, so there's no need to wait before you start again.

You won't get back the gas you paid on that first commit, and starting over means paying it a second time.

Still stuck? If reconnecting didn't work and you'd rather we took a look before you start over, send us what the app has stored. Open your browser's developer console — Control + Shift + I on Chrome or Edge, Option + ⌘ + J on Safari — and run localStorage.getItem("registration-status"). Then start a chat and send us three things: your wallet address, the name, and whatever the console printed out.

"Insufficient balance"

The app checks your wallet for enough ETH on Ethereum Mainnet to cover the registration fee and the gas. If it says you're short and you think you're not, it's usually one of these.

What you have

Why it doesn't count

What to do

USDC, or any token other than ETH

The registration fee and the gas are both paid in ETH.

Swap some of it for ETH on Ethereum Mainnet.

ETH on Base, Arbitrum, or another L2

Registration happens on Ethereum Mainnet. ETH held on an L2 can't pay for it.

Bridge it to Ethereum Mainnet, then try again.

Roughly the price of the name, in ETH on Ethereum Mainnet

Gas sits on top of the registration fee, and the app checks for both before it lets you continue.

Add a little more ETH and try again.

A card, because you used to pay with MoonPay

Card checkout isn't available. ETH on Ethereum Mainnet is the only way to pay.

Get ETH however you normally would, send it to the wallet you're connecting, and register from there.

"Commitment Too Old"

More than 24 hours passed between Step 1 (commit) and Step 3 (register). The commit window is 24 hours.

Clear the ENS App's site data (or open the app in a different browser), then start over from Step 1. You won't get back the gas you paid on the original commit.

"UnexpiredCommitmentExists"

The app sees a previous commit transaction that's still active but didn't get fully tracked in your browser:

  1. Disconnect your wallet from the ENS App.

  2. Close the page.

  3. Reopen app.ens.domains and reconnect.

  4. Try the registration again.

If it still fails, the commit was probably sped up or replaced — go back to Stuck on "Almost there". If you do end up starting over, you won't get back the gas from the original commit.

The app says "in progress" but there's no transaction on Etherscan

Your wallet never sent it. If there's no transaction hash, nothing reached Ethereum Mainnet — so you haven't been charged and no ETH has left your wallet.

The usual cause is MetaMask's Smart Transactions setting, or a wallet connection that dropped partway. Turn Smart Transactions off in MetaMask, reconnect your wallet, and try the registration again. If your wallet's activity log shows the transaction as failed, clear its pending activity before you retry.

The first transaction went through but the second one failed

Registering a .eth name takes two transactions: the commit (Step 1) and the register (Step 3), with a 60-second wait in between. If the commit went through but the register failed — or you rejected it in your wallet — your name isn't registered yet. The good news: your commit is usually still valid, and you have 24 hours from Step 1 to finish.

To pick up where you left off, reopen app.ens.domains, connect the same wallet, and search for the name again. The app should let you finish from Step 3.

If it won't move past "Almost there", work through the Stuck on "Almost there" checklist above. And if more than 24 hours have passed, your commit has expired ("Commitment Too Old") — clear the site's data and start over from Step 1. Either way, the gas you paid for the commit isn't refundable.

Did this answer your question?