Theseus for developers

Everything you need to extend Theseus Navigator, or borrow its superpower — on-device Bitcoin Cash Domain Name resolution — for whatever you are building. Theseus ships Ariadne's Thread as a bundled plug-in; the same resolver can live inside your app too.

Resolve BNS names from your own code

The authoritative developer page is on Ariadne.X — the resolver is the Ariadne project. It covers the BNS1 protocol in one page, the record types, a 60-line Node.js resolver you can run as-is, and the pointers to every production implementation.

→ Resolve a BNS name from your own code

Protocol, record types, minimum resolver, reference implementations, public endpoints.

ariadne.x/dev

→ Ariadne's Thread

What it is, how it works, system-wide mode, trust model.

ariadne.x/thread

→ Protocol spec

The authoritative BNS1 specification on the forge.

PROTOCOL.md ↗

Add BNS to your own app

If you ship any kind of app with a browser surface — Electron, native, game launcher, mail client — your users can resolve .bch, .x, .p2p as soon as Ariadne's Thread is on the machine. Three paths:

Easiest — chain-install the Windows service

Bundle the Thread installer and run AriadneResolver-Setup.exe /S after your own install finishes. Theseus does this today. The resolver registers an NRPT rule that only affects BNS TLDs, so everything else on the machine is untouched.

JavaScript / Electron — import the resolver

import { resolveName } from
  "https://code.silentmode.st/silentmode/ariadne/raw/branch/master/Argus/src/lib/resolver-web.js";

const { records } = await resolveName("sirius.x");
// records.s3 → "bns/sirius.x/"

Any language — HTTP API against a local Thread

If the Thread is installed, it exposes a local HTTP API on 127.0.0.1:4626:

GET /api/name/<name>
GET /api/dns/<name>
GET /health

Full embedding guide, platform coverage table, and the NSIS/Inno chain-install snippets live on ariadne.x/dev/#embed.

Build an extension

Extensions are everyone's add-ons: published by any BCNR name holder, signed by that name's wallet, verified on your users' devices before a byte runs. They are not plug-ins — plug-ins are first-party and ship inside Theseus (see Plug-ins).

Publish an extension

  1. Register a .x name on sirius.x.
  2. Build your extension tarball — same manifest as Chrome extensions plus a Silent Mode addon.json.
  3. Upload it with PUT /api/ext, signed with the wallet that owns the name.
  4. Theseus verifies the signature against the on-chain owner before installing. Updates work the same way; your users' Theseus checks for a newer updates.json on your own Sia bucket.

Walk-through: theseus.x/extensions/publish.

Plug-ins (first-party)

Plug-ins are the few add-ons Silent Mode builds, signs with the operator key, and ships as part of Theseus — Aegis wallet, Ariadne's Thread, Shield blocker. Users enable or disable them from Settings › Plug-ins.

If you have an idea for one, open an issue on silentmode/theseus first — the plug-in surface is intentionally small and we triage proposals before accepting code.

Where everything lives