Skip to main content

Add a decentralised website to your ENS name

Point your ENS name at an IPFS site by setting the Content Hash record. Visitors then reach your site at yourname.eth.limo from any browser.

You set the Content Hash record on your ENS name. It points at a site you've already hosted on IPFS (or another decentralised storage protocol), and once it's set, visitors can reach your site at yourname.eth.limo from any browser. The whole thing is one transaction.

Good to know

  • You need a site already hosted on IPFS, Arweave, or Swarm. ENS doesn't build or host websites — it links your name to a site you've hosted elsewhere.

  • Only the Manager can set the Content Hash. The Manager is the wallet that controls a name's records: the ETH Address, text records, and so on. For wrapped names, the Manager role is merged into the Owner role.

  • You need ETH on Ethereum Mainnet for gas, and nothing else.

  • The ENS App handles .eth names, their onchain subnames, and DNS names you've imported. For project subnames like base.eth or uni.eth, use the project's own site.

Steps

  1. Open Edit Profile. Go to app.ens.domains and connect your wallet. Search for your name, open the Profile tab, and select Edit Profile.

  2. Paste your IPFS CID into the Content Hash field. Open the Other section. The Content Hash field is there. Paste in your CID and select Save.

    The records editor, with the cursor on the Other tab
  3. Approve in your wallet. Most confirm in 1–2 blocks (12–24 seconds); busy networks can take longer. Once it lands, you'll see the Content Hash record on your profile.

Open yourname.eth.limo in a browser to check it's working.

How visitors reach your site

Two routes, depending on what they're using:

  • yourname.eth.limo in any browser — eth.limo is a free public gateway that reads your Content Hash and loads the content from IPFS. Anyone can use it; there's nothing to sign up for. eth.link works the same way.

  • yourname.eth in ENS-aware browsers: Brave reads the Content Hash directly and loads the site without a gateway. Opera works the same way.

The Content Hash is the same in both cases — the gateway is just what makes it accessible from a regular browser.

A name's profile page, with the contenthash record highlighted

If your site does not load

Work through these in order. The first two cover most cases.

  1. Wait for it to be picked up. A Content Hash you have just set has to reach the gateway before your site can be served.

  2. Read the page eth.limo returns. When a Content Hash stops resolving, eth.limo serves a page explaining why. It usually names the cause and what to do next.

  3. Check the Content Hash is actually saved. Open your name in the ENS App and look at the Records tab. If the field is empty, the transaction did not go through.

  4. Check your content is still pinned. A gateway reads what your storage provider serves. If nothing is pinning the files any more, there is nothing to load.

  5. Try the other gateway. If yourname.eth.limo fails, try yourname.eth.link. If one works and the other does not, the problem is with that gateway, not your name.

Supported storage protocols

The Content Hash record supports identifiers for:

  • IPFS / IPNS — the most common. Most decentralised-site tooling targets IPFS.

  • Arweave — permanent storage with a one-off fee.

  • Swarm — Ethereum's storage layer.

If you haven't hosted yet, pinning services like Fleek upload to IPFS without needing you to run a node yourself.

Where the Content Hash record lives

The Content Hash is a record on your Resolver, alongside your ETH Address, avatar, and other records. If your resolver isn't set or is on an older contract, the ENS App can't edit records on it — see What is the resolver on my ENS name? for the full picture.


Common questions

What's eth.limo?

eth.limo is a free public gateway run by the eth.limo team. Append .limo to any ENS name and you get a regular URL — yourname.eth.limo — that loads the decentralised site in any browser.

Does this replace my existing website?

No. If your name is an imported DNS domain, the site people reach at that domain the normal way keeps serving exactly as it did. The Content Hash is a separate record: it is what ENS-aware browsers and gateways read, and it does not touch your DNS hosting.

How do I update or remove the Content Hash?

Open Edit Profile, find the Content Hash field in the Other section, and either paste a new CID or select the X to remove it. Select Save and approve in your wallet. Once it lands, the record updates.

Why does my CID look different in the ENS App?

The ENS App converts older CIDv0 format to CIDv1 automatically. Both point to the same content — just a different encoding. Verify at the IPFS CID Checker: cid.ipfs.tech. For IPFS itself, support lives at docs.ipfs.tech/community/support.

Does ENS host my website?

No. ENS only holds the pointer (the Content Hash record). The site itself lives on IPFS, Arweave, or wherever you hosted it.

Did this answer your question?