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.
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.
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.
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.
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.
One query, several workers, first answer wins. Everything happens on the device.
The input is lowercased, punycode-decoded, and split into label/tld.
Bare words are search queries; anything with a dot goes to the thread.
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.
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.
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.
Ariadne's Thread never trusts a single source. Four independent streams feed the index; any one can drop offline and the resolver stays live.
A pre-computed index shipped inside every build, updated on every release. Answers the top-N most requested names with zero network calls.
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.
WebSocket connection to any public Electrum server. Streams the on-chain OP_RETURN payloads that encode name registrations; the resolver parses them locally.
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.
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.
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.
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.
Same resolver, same registry, same signature checks. The device changes what wraps around it.
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.
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.
A resolver is a trust boundary. Ariadne's Thread minimises how much of the machine has to believe it.
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.
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.
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.