Uses IPFS Desktop + Helios Lightclient

Open .eth websites like any other, verified locally.

A browser extension that resolves ENS names directly against Ethereum state via a light client, and serves the content from your own IPFS node. No public gateway. Nothing to trust in the middle.

Why this exists

The trust boundary belongs on your machine.

Typing name.eth in a browser usually meant trusting a gateway like eth.limo. That was always the wrong trust model.

dapp3 resolves ENS on your machine, verifies it with a Helios light client, and loads content from your own local IPFS node. No gateway. No shared DNS. No middleman.

Flow

How a .eth navigation works

Three local components. Everything the extension reads from the network, it verifies.

  1. 01

    Intercept

    The service worker catches the navigation to *.eth before Chrome issues DNS. The browser never asks a public resolver where your ENS name points.

  2. 02

    Resolve & verify

    A Helios light client, running inside an offscreen document, reads the ENS resolver's contenthash via eth_call. Every read is proof-checked against the beacon chain. The RPC you point it at is never trusted.

  3. 03

    Serve locally

    The CID is loaded from your own Kubo node at <cid>.ipfs.localhost:8080. Per-CID subdomains give every site its own browser origin, so cookies and storage stay isolated, just like on the public web.

Benefits

What you get

Security properties and browser ergonomics, without introducing a new trusted middle layer.

No trusted gateway

Nothing between you and Ethereum. State reads are verified against the consensus-committed root by a light client on your device.

Proof-checked at the edge

Your IPFS node

Content loads from the Kubo / IPFS Desktop node you already run. Nothing is ever fetched through a public gateway.

Content stays local

Origin isolation

Each site gets its own origin via CID-per-subdomain. Cookies, localStorage, and service workers stay scoped to one .eth site.

Browser primitives stay clean

The real name, always

A minimal banner shows the ENS name you actually typed, even though the tab's URL is pointed at localhost. No spoofing surface.

Human-readable routing

Bring your own RPC

Point it at any mainnet RPC: Alchemy, Infura, your own node, whatever. Health is tracked per endpoint and you can swap at any time.

Provider-agnostic by design
Install

Install dapp3

You'll need IPFS Desktop (or kubo) running locally and one Ethereum mainnet RPC URL. Onboarding walks you through both.

  • Browser

    Chromium-based (Chrome, Brave, Arc, Edge). MV3.

  • IPFS

    IPFS Desktop or Kubo running locally.

    Subdomain gateway enabled on localhost
  • RPC

    Any Ethereum mainnet RPC. It's never trusted. Helios verifies everything.