← gwei.domains

Host a website on your .gwei name

No servers, no DNS. Store a site on IPFS, set it on your name once, and it's served at yourname.gwei.domains.

1Build your site

Make a self-contained site — at minimum an index.html. Keep links relative and put assets (CSS, images) next to it. A single folder is ideal.

my-site/
  index.html
  style.css

2Pin it to IPFS

IPFS is content-addressed: uploading produces a CID — a hash of the exact content. "Pinning" keeps it hosted so it stays reachable.

The easiest free option is BuidlGuidl's IPFS — no account, no key:

npx bgipfs upload config init -u https://upload.bgipfs.com   # one-time
npx bgipfs upload ./my-site                                  # -> CID: bafy...

Save the CID — that's all you need. Other options: Pinata, web3.storage, or your own kubo node (ipfs add -r --cid-version 1 ./my-site). Whatever you use, something has to keep the content pinned, or IPFS eventually garbage-collects it.

3Set it on your name

In the gwei.domains dapp:

  1. Connect the wallet that owns the name.
  2. Open your name → Set Website.
  3. Paste the CID (bafy... or Qm...; an ipfs://... URL works too) and confirm the transaction.

This stores the CID on-chain as an ENSIP-7 contenthash — the same standard ENS uses. The stored bytes start with 0xe301, the multicodec marker that means "this is IPFS."

Swarm is supported too — if your site lives on Swarm, paste a bzz://… reference in step 3 instead. It's stored the same way, with a Swarm codec marker. This guide walks through IPFS.

4Visit it

Open yourname.gwei.domains. The gateway reads your name's contenthash, decodes the CID, and reverse-proxies the content from a public IPFS gateway. That's the whole stack.


Updating later

IPFS content is immutable, so any edit to your site produces a new CID. Re-pin, then Set Website again with the new CID — your name always resolves to whatever CID you last set. The old version stays reachable at its old CID.

gwei name service · ownerless · gwei.domains