Some sites — including several of the most-cited pages in the Bitcoin
Cash ecosystem — return HTTP 503 to Theseus, no matter what user-agent it sends.
A short note on why, and how a .bch name gets you through.
Cloudflare's Bot Fight Mode (and similar WAF rules) fingerprints the TLS ClientHello — the cipher list, extensions, and JA3/JA4 hash your browser sends before any HTTP header is negotiated. Chromium's TLS stack, which Theseus is built on via Electron, ships with a slightly different fingerprint than desktop Chrome — enough to trigger the bot heuristic. The server replies with a short 503 page and the load fails.
Stripping Electron/… from the user-agent
doesn't help: the fingerprint sits below HTTP. Disabling HTTP/2 doesn't help either.
From the site's perspective, Theseus is indistinguishable from a scraper.
p record doesA BCDN name can carry a p record — a
single upstream URL. When Theseus loads a name whose record picker returns
p, it doesn't hand the request to Chromium's network
stack. It hands it to Node's fetch() from the
main process, which uses a different HTTP client (undici) with a completely
different TLS fingerprint — one Cloudflare doesn't flag. The response body comes
back and gets served under the .bch origin.
The address bar stays on the BNS name; the upstream never sees your IP resolve through Cloudflare's browser-bot rules, only through Theseus's outbound Node fetch. No captcha, no interstitial, no 503.
Trade-offs to know: the p path uses the
upstream's own DNS and public certificate authority (unlike ip,
which pins to a raw IP + on-chain TLS fingerprint), and Theseus streams the body
through its own process — so the upstream sees Theseus's outbound IP, not yours.
This is a shared proxy in effect, though only for the one request.
These names are registered on the Bitcoin Cash chain with a
p record pointing at a Cloudflare-fronted upstream
Theseus can't reach directly. Click any to open it in Theseus (or via
navigate.st if you don't have the browser
installed yet).
See a site missing? If a Cloudflare-fronted page you care about is
unreachable from Theseus, either mint a p record for
it yourself, or open an issue on
the Theseus repo and
we'll add it to the featured list once it's on chain.
Registration costs a few sats of BCH. Theseus 0.3.14+ ships with the Aegis wallet — the wallet the Sirius UI signs against — so this is a couple of clicks once your wallet has a small balance.
.bch TLD if the site is
BCH-related; other registered TLDs work too. Mint the name.p: "https://the-original-upstream.example/"
yourname.bch in Theseus's address
bar. If the upstream returns 200, Theseus renders it under your name. Send us
the name and we'll add it to the featured list.For anyone curious about the exact mechanism:
pickRecord() in Argus:
h > s3 > ip > p > u at the apex, and
subdomain inheritance never picks p. Theseus
carries an inline copy to keep in step.theseus/main.js,
the serveP closure inside serveBns().
Uses fetch(target, { redirect: "manual" })
from the main process, which is Node's undici — a different TLS stack from
Chromium's, and the reason the fingerprint check doesn't fire.