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
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.
Add the
_ensTXT record at the root of your domain.Type:
TXTName:
@(root of your domain)Value:
ENS1 dnsname.ens.eth 0xYourWalletAddress(replace0xYourWalletAddresswith the address you want the name to point at)The value format may change in future — see docs.ens.domains for the current spec.
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 tovaultFor
sub.vault.myname.com, set Name tosub.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?
How do I import my DNS domain into ENS? — the onchain alternative
Can I use my DNS domain as an ENS name? — the choice between onchain and offchain
Try it: ens-resolution.vercel.app
Video walkthrough: Loom
