> For the complete documentation index, see [llms.txt](https://prodocs.webhash.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prodocs.webhash.com/custom-domains-ens.md).

# Custom Domains (ENS)

WebHash Pro lets you point a human-readable **ENS domain** (like `yourname.eth`) at the latest version of your site on IPFS. Instead of sharing a long IPFS gateway link, visitors can reach your deployment through your `.eth` name in ENS-aware browsers and gateways.

This guide explains what ENS is, how to connect your wallet, how to attach an ENS name to a deployment, and how to keep it pointing at your newest build.

{% hint style="success" %}
**You stay in control.** Every change to your ENS records is signed by *your own wallet*. WebHash Pro never holds your domain, your keys, or the ability to change your records on its own. This is fully self-custodial.
{% endhint %}

***

## What is ENS?

**ENS** (Ethereum Name Service) is like a phone book for the decentralized web. It maps an easy-to-read name such as `yourname.eth` to things like a wallet address or a website.

For WebHash Pro, the part that matters is a record called the **contenthash**. When you point your ENS name's contenthash at an IPFS **CID** (the unique fingerprint of your deployed site), ENS-aware browsers and gateways can load your site simply by visiting your `.eth` name.

A few things to know before you start:

* You need to **already own an ENS name**. If you don't have one yet, you can register one at [app.ens.domains](https://app.ens.domains).
* ENS lives on **Ethereum Mainnet**. All ENS actions in WebHash Pro must be done with your wallet switched to Mainnet.
* Only top-level `.eth` names are supported (for example `yourname.eth`, in all lowercase). Subdomains are not supported.

***

## Step 1: Connect your wallet

ENS records are controlled by the wallet that owns the name, so the first step is to connect that wallet to WebHash Pro.

1. Sign in to your dashboard at <https://pro.webhash.com>.
2. In the left sidebar, click **ENS Domains**.
3. Click **Connect Wallet** in the top-right corner.
4. Choose your wallet (for example MetaMask, Rainbow, or any WalletConnect-compatible wallet) and approve the connection in your wallet.

![ENS Domains Connect Wallet header](/files/VpVo2KZ3HB9Dp9tgzrAP)

Once connected, your wallet address and balance appear in the top-right. If you are not on the right network, you'll see a **Wrong Network** warning.

{% hint style="warning" %}
**Switch to Ethereum Mainnet.** ENS only works on Ethereum Mainnet. If your wallet is on another network, you'll see a yellow "Wrong Network" banner with a **Switch** button - click it (and approve the network switch in your wallet) before continuing. You cannot add or connect ENS domains while on the wrong network.
{% endhint %}

{% hint style="info" %}
Connecting your wallet here is only used for ENS actions. It is completely separate from the GitHub sign-in you use for the rest of the platform, and separate again from the wallet you use to **pay for storage** in Billing.
{% endhint %}

***

## Step 2: Add your ENS domain

Before you can connect a name to a deployment, add it to your account so WebHash Pro knows it's yours.

1. On the **ENS Domains** page, go to the **Add ENS Domain** screen (`/dashboard/domains/add`).
2. In the **Domain Name** field, type your full ENS name, including the `.eth` ending - for example `yourname.eth`.
3. Your connected wallet address is filled in automatically and cannot be edited (this is the wallet that must own the name).
4. Click **Add Domain**.

![Add ENS Domain card](/files/n1Q28IJvqqK6gheBfc12)

WebHash Pro then checks **on the blockchain** that the connected wallet actually controls that name. This check is strict and fails safely:

* If the name resolves to a *different* owner, you'll see an error telling you which address owns it.
* If the ownership check can't be completed (for example a temporary network issue), the domain is **not** added - just try again.

When the check passes, your domain is saved and you're returned to the **ENS Domains** list, where it appears with a **Not Connected** badge.

![ENS Domains list with Not Connected card](/files/c5F2xj3dSqnEkiGhNEZ5)

{% hint style="info" %}
**Don't see your domains automatically?** WebHash Pro shows the domains you've added to your account. If a name you own isn't showing, use the **Refresh Domains** button, make sure you're on Ethereum Mainnet, and confirm you're connected with the wallet that owns the name. You can always add a name manually using the steps above.
{% endhint %}

***

## Step 3: Connect a domain to a deployment

Connecting a domain links your `.eth` name to a specific deployment and **updates the ENS contenthash on-chain** to point at that deployment's CID. This is the step where your wallet signs the change.

1. In the sidebar, open **Deployments** and click the deployment you want to use.
2. Make sure the deployment status is **Success** and has a CID - the **Connect ENS Domain** button is only available for successful deployments.
3. Click **Connect ENS Domain**.
4. In the dialog, make sure your wallet is connected and on **Ethereum Mainnet**, then choose your name from the **Select Domain** dropdown.
5. Click **Connect Domain**.
6. **Your wallet will pop up asking you to sign a transaction.** Review it and confirm. This is the on-chain `setContenthash` update that points your name at the new site.

![Connect ENS Domain dialog with domain picker](/files/h4lBQf9jaF1gp0dayEBW)

When the transaction is confirmed, you'll see a success message, and the domain shows up under **Connected Domains** on the deployment page. You can click the external-link icon next to it to open `https://yourname.eth` in an ENS-aware browser or gateway.

{% hint style="warning" %}
**You pay a small Ethereum gas fee.** Because the contenthash update is a real Ethereum Mainnet transaction signed by your wallet, your wallet covers the network gas fee in ETH. This fee goes to the Ethereum network - not to WebHash Pro. WebHash Pro never asks for your private keys and can't sign anything on your behalf.
{% endhint %}

{% hint style="info" %}
**A name points at one deployment at a time.** Connecting a name to a new deployment replaces its previous link. If you point `yourname.eth` at a different deployment, it stops being associated with the old one.
{% endhint %}

***

## Step 4: Updating the contenthash after a new deploy

Every time you deploy a new version of your site, IPFS produces a **new CID**. Your ENS name keeps pointing at whatever CID it was last set to - so after a fresh build, your `.eth` name will still show the *previous* version until you update its contenthash.

### How you'll be reminded

After a successful new deployment of a repository that has one or more ENS domains connected to an **earlier** build, WebHash Pro sends you an email letting you know your new build is live and that your domain(s) still resolve to the old version.

The email includes:

* The **new CID** and a preview link to the new build.
* The **ENS domain(s)** that still point to the previous version.
* A button - **Update ENS contenthash** - that takes you to your dashboard.

{% hint style="info" %}
The email is sent to the address on your WebHash Pro account. It's purely a heads-up - WebHash Pro never changes your records for you. Updating the contenthash is always your action, signed by your wallet.
{% endhint %}

### How to update it

1. Open the latest **successful** deployment from the **Deployments** page (or follow the **Deployment details** link in the email).
2. Click **Connect ENS Domain**.
3. Select the same domain from the dropdown and click **Connect Domain**.
4. Confirm the transaction in your wallet.

That's it - your name now points at the newest CID. This is the same flow as the first connection; re-running it simply re-points the contenthash at the latest build.

***

## Manual today, automatic later

Right now, pointing your ENS name at a new CID is a **manual** step: each new deployment is signed by you so that you stay fully in control of your domain.

WebHash Pro's **auto-deploy** (via a GitHub webhook) automatically rebuilds and re-publishes your site to IPFS whenever you push to your connected branch - but it produces a new CID and then **emails you** to update the contenthash. It does not (and cannot) change your ENS records, because only your wallet can sign that transaction.

{% hint style="info" %}
**Coming later:** automatic contenthash updates are on the roadmap. They would require granting permission ahead of time so updates can be signed for you. Until that's available, the email-then-confirm flow above keeps the update self-custodial: nothing changes on-chain without your signature.
{% endhint %}

***

## Disconnecting a domain

You can remove the link between a domain and a deployment at any time:

* On a **deployment** page, click the unlink icon next to the domain under **Connected Domains**.
* Or on the **ENS Domains** page, click **Disconnect** on the domain's card and confirm.

{% hint style="warning" %}
**Disconnecting only updates WebHash Pro** - it removes the link inside the dashboard. It does **not** change your on-chain ENS records. Your name will keep resolving to whatever CID it was last set to until you point it somewhere else (by connecting it to another deployment) or clear the contenthash yourself in the [ENS app](https://app.ens.domains).
{% endhint %}

***

## Troubleshooting

* **"Wrong Network" / can't add or connect a domain** - Switch your wallet to **Ethereum Mainnet** and try again.
* **"You don't own this ENS domain"** - The name is owned by a different address. Connect the wallet that actually owns it, or double-check the name spelling (lowercase, ending in `.eth`).
* **"Could not verify on-chain ownership… Please try again"** - A temporary network/RPC hiccup. Wait a moment and retry.
* **My `.eth` site shows the old version** - Your contenthash is still pointing at the previous CID. Re-run **Connect ENS Domain** on your latest successful deployment to update it.
* **The Connect ENS Domain button is disabled** - The deployment must have a status of **Success** and a valid CID. Wait for the build to finish, then try again.
* **My domain isn't listed** - Click **Refresh Domains**, confirm you're on Mainnet with the owning wallet, or add the name manually via **Add ENS Domain**.

***

## Related guides

* Deploying a repository to IPFS
* Setting up auto-deploy with a GitHub webhook
* Storage usage and billing (paying in ETH/USDC/USDT)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://prodocs.webhash.com/custom-domains-ens.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
