Skip to main content

Fix DNS import errors

Match your DNS-import symptom in the table, then run the fix: propagation, DNSSEC, offchain vs onchain records, custom TLD.

Most DNS-import problems trace to one of four things: DNS hasn't finished spreading, DNSSEC isn't set up correctly, you're looking at the offchain result when you wanted the onchain one, or your TLD has a custom integration. Match your symptom below, then run the fix.

Find your symptom

What the app says

What it means

Go to

The app can't find your TXT record, but it looks right at your DNS host

DNS changes still spreading — or a typo in the record

Records not picked up

"DNSSEC is not enabled"

DNSSEC isn't on, or the chain is broken somewhere — the Analyzer tells you which

DNSSEC not detected

The app shows your offchain setup when you expected the onchain one

The offchain record is resolving, which keeps the claim window shut

Both TXT records set

"The team behind [].tld have customised their ENS experience"

TLD operator runs its own ENS integration

Custom TLD

If you're not sure which case you're in, paste your domain into ens-resolution.vercel.app — what it shows points you to one of the sections.

Good to know

  • DNS import needs a real DNS domain — one whose TLD comes from the ICANN root, like .com, .org, .xyz, or a country code such as .uk. A TLD that isn't part of DNS can't be imported at all.

  • DNS changes can take 10–30 minutes to spread. If your records are correct, wait and refresh.

  • Your domain needs DNSSEC with RSA/SHA-256 or ECDSA keys. WordPress.com doesn't support DNSSEC — move your DNS to another provider if you're hosted there.

  • Not sure which route you took? See Can I use my DNS domain as an ENS name?


Important: DNS controls ENS. Whoever owns the DNS domain can reclaim the ENS version at any time by changing the TXT record at their DNS provider. If your domain expires or you transfer it, the new owner can take the ENS name. Keep your DNS domain active to keep control.

Records not picked up

DNS changes don't reach every DNS server at the same time. After you save a record at your registrar, the ENS App might still be reading an older view.

Wait 10–30 minutes and refresh the page. If you've waited longer:

  1. Check the record values at your DNS host. Type, Name, and Value all have to be exact:

    • Onchain: Type: TXT · Name: _ens · Value: a=0xYourWalletAddress

    • Offchain: Type: TXT · Name: @ (root) · Value: ENS1 dnsname.ens.eth 0xYourWalletAddress

  2. For offchain, verify the lookup at ens-resolution.vercel.app.

  3. If the record is correct and 30+ minutes have passed, the issue is probably DNSSEC — see the next section.

DNSSEC not detected

On the Enable DNSSEC step the app shows "DNSSEC is not enabled". It says the same on both routes, offchain and onchain.

That one line is all the app can tell you. It doesn't say why, so the next check happens in the DNSSEC Analyzer below.

DNSSEC has several moving parts: keys at your registrar, a DS record at the parent zone, signatures across the DNS chain. A break anywhere in that chain makes DNSSEC look enabled at your registrar but fail when ENS verifies it.

Run the DNSSEC Analyzer (verisignlabs.com) against your domain. It walks the chain and reports the specific failure. Common causes:

  • Missing DS record at the parent zone (your registrar usually sets this, but not always automatically).

  • Wrong key algorithm — only RSA/SHA-256 and ECDSA work with ENS.

  • WordPress.com doesn't support DNSSEC. Move your DNS to another provider while keeping WordPress for the site.

  • Some hosts charge extra for DNSSEC; confirm it's actually active.

Fix what the Analyzer flags, wait 10–30 minutes for the change to spread, then press the refresh button beside the message in the app. It shows when it last checked.

Both TXT records set

Having both records set is not an error. They belong to two different routes, and the offchain one takes over until you remove it.

Route

The record

What happens

Offchain

Name: @ · Value: ENS1 dnsname.ens.eth 0xYourWalletAddress

Resolves in the app on its own. No import, no transaction.

Onchain

Name: _ens · Value: a=0xYourWalletAddress

Needs the import step first. It resolves once the import is done.

While the offchain record exists, the app just resolves the name. The claim window never opens, so there is no way to pick the onchain route — that is what makes it look stuck.

To move to onchain:

  1. Delete the offchain ENS1 … record at Name: @ at your DNS host.

  2. Add the onchain record if it isn't there yet: Type: TXT · Name: _ens · Value: a=0xYourWalletAddress.

  3. Wait 10–30 minutes for the change to spread.

  4. Open the name in the ENS App again. The claim window appears and asks how you'd like to import your domain.

  5. Choose Onchain, then follow Onchain DNS import to claim the name and approve the transaction.

You can move from offchain to onchain, but not the other way around. Once a name is imported onchain, you can't revert it to offchain.


Custom TLD

The app says: "The team behind [].tld have customised their ENS experience", with your own TLD in place of [].tld.

Some TLDs — .box is the most common example — run their own ENS integration outside the standard DNS-import flow. If you see that message, your TLD is in this group. What this means:

  • You can't import the name through the ENS App's standard flow.

  • The TLD operator controls how their names work with ENS — different process, different tools, different docs.

  • ENS support can't help with the specifics.

Contact the team behind your TLD. They run the integration and have the docs and the support channel.

Did this answer your question?