Skip to main content

How do I import my DNS domain into ENS without paying gas?

Offchain DNS import on ENS — enable DNSSEC, add one _ens TXT record at your DNS provider, verify it. No gas, no transactions.

You can use your existing .com, .net, or .org as an ENS name without sending a transaction. The setup lives at your DNS provider, not in the ENS App — turn on DNSSEC, add one TXT record. No gas, no fee, your domain starts resolving as an ENS name as soon as the record propagates.

Onchain or offchain?

Route

Cost

Where records live

Best if

Offchain (this article)

Free — no gas, no fee

At your DNS provider

You want zero gas. You'll keep managing records in your DNS panel. Quickest to set up.

One gas-only transaction on Ethereum Mainnet

In the ENS App

You want a wrapped NFT, want to manage records and subnames in the ENS App, or want to transfer the name later.

Both routes need DNSSEC on the domain. The rest of this article covers the offchain path.

Good to know

  • You need to already own the DNS domain at a registrar — ENS doesn't sell DNS domains.

  • Your domain must have DNSSEC enabled using RSA/SHA-256 or ECDSA keys.

  • Offchain is free — no gas, no ENS fee. You only pay your DNS registrar each year.

  • The records live at your DNS provider, not in the ENS App. There's no wrapped NFT and nothing to manage in the ENS App.

  • WordPress.com doesn't support DNSSEC. If WordPress hosts your DNS, move your DNS to another provider — keep WordPress for the site.

Important: DNS controls ENS. ENS ownership of a DNS name follows DNS ownership. If your DNS domain expires or transfers, your ENS name goes with it. Keep your DNS domain active to keep control.

Steps

  1. Enable DNSSEC at your DNS host. Open your registrar's control panel and turn DNSSEC on. The keys have to be RSA/SHA-256 or ECDSA — other types won't work. See the provider table below.

  2. Add the _ens TXT record at the root of your domain.

    • Type: TXT

    • Name: @ (root of your domain)

    • Value: ENS1 dnsname.ens.eth 0xYourWalletAddress (replace 0xYourWalletAddress with the address you want the name to point at)

    • The value format may change in future — see docs.ens.domains for the current spec.

  3. Verify it works. Open ens-resolution.vercel.app and enter yourname.com. You should see the address you set. If you don't, wait 10–30 minutes — DNS changes take time to spread — and try again.

After that, any web3 app that reads ENS will resolve yourname.com to the address you set.

DNSSEC support by hosting provider

Provider

Key support

Setup guide

easyDNS

RSA/SHA-256 & ECDSA

Google Cloud DNS

RSA/SHA-256 & ECDSA

Namecheap

RSA/SHA-256 & ECDSA

Hostinger

RSA/SHA-256 & ECDSA

Check provider docs

Hostgator

RSA/SHA-256 & ECDSA

Check provider docs

Bluehost

RSA/SHA-256 & ECDSA

Check provider docs

For any provider not listed, search "DNSSEC" in their docs. Some major hosts charge extra for it.

What if it doesn't resolve?

Wait 10–30 minutes — DNS changes spread slowly. If it's still failing, run a DNSSEC Analyzer to confirm DNSSEC is set up correctly on the DNS side. See How do I fix common DNS import errors? for more cases.

Subdomains work too

You can offchain-resolve any subdomain by adding the same TXT record at that subdomain — just change the Name field:

  • For vault.myname.com, set Name to vault

  • For sub.vault.myname.com, set Name to sub.vault

Each subdomain can point at a different wallet. The same TTL, same value format apply.

Common questions

How is this different from the onchain TXT record?

Different mechanism, different format. The onchain route uses Name: _ens / Value: a=0xAddress and writes the ownership to Mainnet (one transaction, one gas fee). The offchain route uses Name: @ / Value: ENS1 dnsname.ens.eth 0xAddress and stays at your DNS provider — the ENS resolver reads it on demand at lookup time. If you've already set the onchain record and want to switch to offchain, delete the old _ens record first.

How does it work without a transaction?

The ENS resolver reads your DNS TXT record over the internet whenever a wallet or dApp looks up yourname.com. The mechanism is CCIP Read (ERC-3668) — the lookup happens at read time, so there's nothing to write onchain. Read the spec if you want the technical detail.

Can I switch to onchain later?

Yes. Delete the offchain ENS1 … TXT record, add the onchain _ens / a=… record, then follow How do I import my DNS domain into ENS?. You'll need ETH for one gas-only transaction. The reverse — onchain → offchain — isn't practical: once a name is imported onchain, that registration takes priority over any offchain TXT record.

Can a developer use a custom Resolver?

Yes. ENS1 dnsname.ens.eth is the standard Resolver that reads an ETH address from the same TXT record. You can substitute any Resolver contract address — ENS1 <your-Resolver-address> — for custom record schemas. See docs.ens.domains.

What's next?

Did this answer your question?