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:
Clear the ENS App's site data — cache and local storage for
app.ens.domains— or open the app in a different browser.Reopen
app.ens.domainsand reconnect the same wallet.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:
Disconnect your wallet from the ENS App.
Close the page.
Reopen
app.ens.domainsand reconnect.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.
If that doesn't shift it, work through Why won't my wallet connect or broadcast my ENS transaction?
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.
