Ariadne's Thread

The on-device resolver that answers Bitcoin Cash Domain Name lookups directly from the chain. Both Ariadne Navigator (mobile) and Theseus Navigator (desktop) carry it. No gateway in the middle, no operator who can rewrite the answer, no ISP resolver to blame when a page moves.

What Ariadne's Thread actually is

A small library, embedded in every Silent Mode browser and available as a standalone service, that takes a name like hello.bch or sirius.x and returns the record its owner published on the Bitcoin Cash chain. The thread part of the name is the metaphor — an unbroken line from the person typing a name to the on-chain answer. Nothing anyone else runs stands between the two ends.

Reads Bitcoin Cash directly

Every lookup is an on-chain query, either against a bundled snapshot on disk or against a live Electrum server. The chain is the source of truth for what a name means; nothing higher-level sits in front of it.

Storage-agnostic

Once the chain says this name resolves to that record, Ariadne's Thread hands the record back and the browser fetches the content from wherever the record points — Sia bucket, plain HTTPS host, or inline on-chain payload.

Runs anywhere

Same JavaScript module in Theseus, same logic ported to Android (Kotlin) inside Ariadne Navigator, and packaged as a standalone Windows resolver for apps that aren't browsers at all.

How the lookup actually resolves

One query, several workers, first answer wins. Everything happens on the device.

1

Normalise

The input is lowercased, punycode-decoded, and split into label/tld. Bare words are search queries; anything with a dot goes to the thread.

2

Race the sources

The bundled snapshot answers instantly from disk. In parallel, a live Electrum client asks the chain for the same name. Whichever finishes first serves the page.

3

Apply consensus rules

TLDs marked as cosign or hidden require the TLD owner's certificate for every registration under them. Names without a valid certificate are dropped from the index.

4

Return the record

The browser gets a small JSON object: { s3, ip, u, h, … }. It picks the right handler and fetches the content — no more resolver work needed.

Never blocking. A navigation never waits for both workers. If the snapshot has the name, the tab loads while the live check runs in the background; if the live check confirms, the snapshot is trusted for the next lookup, and if it disagrees, the chain overrides.

Sources the thread queries

Ariadne's Thread never trusts a single source. Four independent streams feed the index; any one can drop offline and the resolver stays live.

Bundled snapshot

A pre-computed index shipped inside every build, updated on every release. Answers the top-N most requested names with zero network calls.

Sia delta pull

On launch, the resolver pulls the last few hours of index deltas from a public Sia bucket. The heavy work of full-chain scan is done by the shipping tool, not on the phone.

Live Electrum

WebSocket connection to any public Electrum server. Streams the on-chain OP_RETURN payloads that encode name registrations; the resolver parses them locally.

Signed records manifest

Name owners can publish DNS-like records off-chain, signed with the wallet that owns the name. Zero chain transactions per edit; the resolver verifies signatures against the on-chain owner.

System-wide mode

A one-tap toggle turns Ariadne's Thread into a phone-wide resolver, so every app benefits from BNS name resolution — not just this browser.

Android · VPN service

The thread runs as an Android VpnService: a local loopback that intercepts DNS traffic from every app, answers BNS lookups on-device, and falls through to normal DNS for everything else. No root, no signed profile, no OS-level install.

Windows · standalone resolver

A small service (Ariadne's Thread in the installer) hooks into NRPT and forwards BNS TLDs to a local loopback. Any browser or app that follows the OS DNS stack — Firefox, curl, your mail client — resolves hello.bch immediately.

Opt-in, opt-out. The system-wide mode is off by default in the browsers. Enabling it flips one setting; disabling it removes the VPN profile / NRPT rule cleanly. Nothing hangs around after you uninstall.

The thread in each device

Same resolver, same registry, same signature checks. The device changes what wraps around it.

Ariadne Navigator — Android

The thread is compiled into the app. Small Kotlin wrapper around the resolver library, WebView on top, one-tap VPN service for system-wide mode.

→ Get Ariadne Navigator

Theseus Navigator — desktop

Same resolver library, called from Electron. The desktop browser also uses the standalone Ariadne's Thread installer to hand BNS resolution to Firefox, curl, and everything else on the machine.

→ Get Theseus Navigator

Trust model

A resolver is a trust boundary. Ariadne's Thread minimises how much of the machine has to believe it.

You trust the chain

Anything the Bitcoin Cash chain confirms is authoritative for the resolver. If the chain says a name resolves to a record, that's what the browser uses.

You verify the storage

A name's record points at storage. If it's Sia, the bucket integrity comes from the Sia network. If it's HTTPS, TLS covers it. The resolver never rewrites the record between reading and returning it.

You verify the build

Every Silent Mode browser and the standalone resolver ship SHA-256 checksums on silentmode.st/releases. Verify the download before installing — that's how you know your copy of the thread is the one that everyone else is using.