site/theseus/index.html

237 lines
14 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Theseus Navigator — Silent Mode</title>
<meta name="description" content="Theseus Navigator: a Chromium-based browser with the Ariadne resolver built in. Bitcoin Cash names resolved on the device — no daemon, no DNS shim, no root-store install. Windows and Android downloads with SHA-256.">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Silent Mode">
<meta property="og:title" content="Theseus Navigator — Silent Mode">
<meta property="og:description" content="A browser that resolves Bitcoin Cash names on the device itself. Windows and Android, verified by SHA-256.">
<meta property="og:url" content="https://silentmode.st/theseus">
<meta property="og:image" content="https://silentmode.st/brand/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
<link rel="stylesheet" href="shared.css?v=20260910">
<link rel="icon" type="image/svg+xml" href="favicon.svg">
<style>
/* One panel, two versions: Windows + Android are the same product on two platforms. */
.flagship{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px 26px 22px;margin:1.4rem 0 2rem}
.flagship .versions{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--panel2);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.flagship .versions .ver + .ver{border-left:1px solid var(--line)}
@media (max-width:800px){
.flagship .versions{grid-template-columns:1fr}
.flagship .versions .ver + .ver{border-left:none;border-top:1px solid var(--line)}
}
.ver{padding:20px 22px 18px;display:flex;flex-direction:column;gap:.55rem}
.ver .plat{color:var(--acid);font:600 11px/1 system-ui;letter-spacing:.22em;text-transform:uppercase;margin-bottom:.1rem}
.ver h3{font-size:1.1rem;font-weight:600;margin:0}
.ver .desc{color:var(--mut);font-size:13.5px;line-height:1.62;margin:0}
.ver .meta{color:var(--dim);font-size:12px;margin-top:.2rem}
.ver .buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:.4rem}
.ver .buttons .btn{padding:9px 16px;font-size:13.5px}
.ver .verifybox{margin-top:auto;padding-top:11px;border-top:1px solid var(--line)}
.ver .verifybox .lbl{color:var(--mut);font-size:11.5px;margin-bottom:5px}
.ver .h{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;font-size:11px;color:var(--dim);margin-top:4px}
.ver .h b{color:var(--mut);font-weight:600;min-width:78px}
.ver .h code{font-family:ui-monospace,monospace;font-size:10.5px;color:#c9d4e3;word-break:break-all}
.flagship .footnotes{margin-top:1.1rem;display:grid;gap:8px}
.flagship .fn{color:var(--mut);font-size:12.5px;padding:9px 13px;background:var(--panel2);border:1px dashed rgba(255,255,255,.09);border-radius:8px}
.flagship .fn b{color:var(--ink)}
.sov{margin:1.4rem 0 0;color:var(--dim);font-size:13px}
.sov b{color:var(--mut)}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
</style>
</head>
<body>
<nav class="topnav">
<a class="brand" href="./"><svg class="logo" viewBox="0 0 32 20" aria-hidden="true"><rect class="l1" x="1.5" y="3.5" width="17" height="13" rx="6.5" ry="6.5" fill="none" stroke-width="2.6"/><rect class="l2" x="13.5" y="3.5" width="17" height="13" rx="6.5" ry="6.5" fill="none" stroke-width="2.6"/></svg>Silent <span class="g">Mode</span></a>
<a href="theseus" class="here">Theseus</a>
<a href="prometheus">Prometheus</a>
<a href="sirius">Sirius</a>
<a href="hephaestus">Hephaestus</a>
<a href="helios">Helios</a>
<a href="hermes">Hermes</a>
<a href="tools">Tools</a>
</nav>
<header class="hero">
<div class="mark"><svg viewBox="0 0 64 64" aria-hidden="true" style="width:64px;height:64px"><rect width="64" height="64" rx="12" fill="#141a24"/><path d="M32 6 L38 32 L26 32 Z" fill="#e04e4e"/><path d="M38 32 L32 58 L26 32 Z" fill="#d6ff3d"/><path d="M6 32 L32 27 L58 32 L32 37 Z" fill="#d6ff3d" opacity=".55"/><circle cx="32" cy="32" r="3" fill="#0b0e14"/></svg></div>
<h1>Theseus <span class="g">Navigator</span></h1>
<p class="tag">A Chromium-based browser that resolves Bitcoin Cash names on the device
itself. The <b>Ariadne resolver</b> is built in, so the app is both browser and
resolver: no daemon, no DNS shim, no root certificate. Type
<code class="inline">silentmode.bch</code>, get the on-chain answer, and see which
registry and which storage served it.</p>
<div class="cta">
<a class="btn acid" href="#download">Download for Windows</a>
<a class="btn ghost" href="#android">Android APK</a>
<a class="btn ghost" href="#what">How it works</a>
</div>
<p class="sov">
<b>Theseus.X</b> is the browser's sovereign site, served from its own on-chain name.
Mirror: <a href="/theseus-x/">silentmode.st/theseus-x/</a> ·
gateway: <a href="https://navigate.st/bns/theseus.x/">navigate.st/bns/theseus.x/</a> ·
native with a resolver: <a href="https://theseus.x/"><code class="inline">https://theseus.x/</code></a>
</p>
</header>
<div class="wrap">
<figure class="shot">
<img src="theseus/img/theseus-hello-bch.png" width="1424" height="888" alt="Theseus Navigator showing https://hello.bch, a page served from a Bitcoin Cash transaction, with the BCNR badge in the address bar" loading="lazy">
<figcaption>hello.bch opened in Theseus. The page bytes come from a Bitcoin Cash transaction; the badge next to the address says so.</figcaption>
</figure>
<!-- ============ WHAT IT IS ============ -->
<section id="what">
<h2>What it is</h2>
<p class="lede">Theseus is built on one assumption: names should be resolved by the
person using them, not by an intermediary. Every page carries a badge showing which
registry produced the record (BCNR or ICANN) and which backend served the bytes
(on-chain, Sia, direct IP, or a plain HTTPS fallback).</p>
<div class="three">
<div class="card">
<h3>On-chain first</h3>
<p>Every dotted host is asked of BCNR before anything else. If the chain answers,
that answer wins, whatever any DNS operator says. If BCNR has no record, Theseus
falls through to the clearnet.</p>
</div>
<div class="card">
<h3>Trust one thing</h3>
<p>The app is the trust boundary. No daemon, no root certificate, no proxy in the
middle. Uninstall it and BCNR is gone from that machine; nothing lingers in the OS.</p>
</div>
<div class="card">
<h3>Warm from the first click</h3>
<p>A bundled beacon snapshot loads before the first navigation can fire. A background
refresh keeps the index current every 30 seconds, and a Sia snapshot pull on boot
catches a long-idle install up in one request.</p>
</div>
</div>
</section>
<!-- ============ WHAT'S INSIDE ============ -->
<section id="features">
<h2>What's inside</h2>
<p class="lede">Everything a mainstream browser has, plus what the chain enables.</p>
<div class="grid">
<div class="card"><h3>Native BCNR</h3><p>Type a name, get the on-chain record. <code class="inline">h</code> serves from the chain, <code class="inline">s3</code> from Sia, <code class="inline">ip</code> connects directly with TLS pinned to the on-chain fingerprint, <code class="inline">u</code> redirects.</p></div>
<div class="card"><h3>window.bcnr API</h3><p>Pages can call <code class="inline">resolveName</code>, <code class="inline">isRegistered</code>, <code class="inline">getBcnrTlds</code> and <code class="inline">getRecordVersion</code>. dApps need not ship their own resolver.</p></div>
<div class="card"><h3>Password manager</h3><p>Local vault with deterministic derivation from a BIP-39 seed. The same seed on another device produces the same passwords. Autofill on demand only.</p></div>
<div class="card"><h3>Tor toggle</h3><p>One click routes everything through a bundled Tor client, pluggable transports included. Off by default; nothing is proxied without your say-so.</p></div>
<div class="card"><h3>Anti-fingerprinting</h3><p>Timezone, locale, language and geolocation can each be shown, hidden, spoofed with a plausible decoy, or set by hand. Media-device labels are blanked by default.</p></div>
<div class="card"><h3>Privacy by default</h3><p>Cookies, cache, storage and history clear on quit unless you opt in. Camera and microphone denied by default. WebRTC limited to public addresses.</p></div>
<div class="card"><h3>Extensions and plug-ins</h3><p>Bundled add-ons such as Aegis, plus community extensions anyone can publish under a BCNR name. Catalog at <a href="https://navigate.st/bns/theseus.x/extensions/">theseus.x/extensions</a>.</p></div>
<div class="card"><h3>Small, auditable</h3><p>Electron plus a few kilobytes of BCNR glue. Reproducible builds with <code class="inline">SOURCE_DATE_EPOCH</code>. Source on <a href="https://code.silentmode.st/silentmode/theseus">Hephaestus</a>.</p></div>
</div>
</section>
<!-- ============ DOWNLOAD ============ -->
<section id="download">
<h2>Download</h2>
<p class="lede">One brand, two platforms. Both builds are alpha software on a test
network. Check the SHA-256 before you install; that check is the real one.</p>
<div class="flagship">
<div class="versions">
<div class="ver" id="windows">
<div class="plat">Desktop · Windows 64-bit</div>
<h3>Theseus for Windows</h3>
<p class="desc">Full-window desktop browser with Tor toggle, search bar, password
vault and add-ons. macOS and Linux not yet packaged.</p>
<div class="meta">v0.3.52 · installer ~134 MB · portable ~133 MB · unsigned</div>
<div class="buttons">
<a class="btn acid" href="https://dl.silentmode.st/latest/TheseusNavigator-Setup.exe">Installer</a>
<a class="btn ghost" href="https://dl.silentmode.st/latest/TheseusNavigator-portable.exe">Portable .exe</a>
</div>
<div class="verifybox">
<div class="lbl">SHA-256 — verify before running</div>
<div class="h"><b>Installer</b><code>44610849112d838001247da21865df63f4f27a35024572e460f87ed135ab818f</code></div>
<div class="h"><b>Portable</b><code>ba82455d2ad66239bc26241fc64f9975fa1a84e403c7a62f622a8000a20e83d6</code></div>
</div>
</div>
<div class="ver" id="android">
<div class="plat">Mobile · Android 5.0+ (API 21)</div>
<h3>Theseus for Android</h3>
<p class="desc">Phone-sized browser with tap-to-verify provenance: the block and
transaction behind each name are one tap away. Still packaged as
<code class="inline">ariadne-v0.19.apk</code>; same app, same signing key.</p>
<div class="meta">v0.19 · ~146 KB · self-signed release key · in-app auto-update</div>
<div class="buttons">
<a class="btn acid" href="https://dl.silentmode.st/latest/ariadne.apk">Download APK</a>
</div>
<div class="verifybox">
<div class="lbl">SHA-256 — verify before installing</div>
<div class="h"><b>APK</b><code>d2f4ad359e7ac36c1d0729100aef613be968cd17b153e94e124f8500fcbfc711</code></div>
<div class="h"><b>Signing key</b><code>46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c</code></div>
</div>
</div>
</div>
<div class="footnotes">
<div class="fn"><b>Ariadne's Thread is bundled.</b> The Windows installer prompts
once during setup, recommended-on, to also install the system-wide resolver so
BNS names work in Chrome, Edge and every other browser on the machine. Uninstalling
Theseus asks whether to remove it too. Skip the prompt and Theseus is still fully
self-contained. Want only the resolver? It is a separate download on the
<a href="tools#resolver">tools page</a>.</div>
<div class="fn"><b>Always current.</b> The <code style="background:transparent;border:none;padding:0">dl.silentmode.st/latest/…</code>
links redirect to the newest build. Version history and every hash:
<a href="releases">releases</a> · machine-readable
<a href="https://dl.silentmode.st/releases-manifest.json">releases-manifest.json</a>.</div>
</div>
</div>
<div class="note"><b>Not in a store.</b> Neither version is on the Microsoft Store,
Google Play or the App Store. Distributing there requires a legal identity and the
store's permission, the two things this project exists to do without. You will have
to allow the install once, and your OS will warn about an unrecognized app.
<b>The SHA-256 (and, on Android, the signing-key fingerprint) is the real check.</b></div>
</section>
<!-- ============ VERIFY ============ -->
<section id="verify">
<h2>Verify what you downloaded</h2>
<div class="grid">
<div class="card">
<h3>Windows</h3>
<p>Compute the SHA-256 and compare it to the value above:
<code class="inline">certutil -hashfile &lt;file&gt; SHA256</code>. Builds carry
no code-signing certificate, so Windows will warn about an unrecognized app.
That warning is expected; the hash is the check.</p>
</div>
<div class="card">
<h3>Android</h3>
<p>Hash the <code class="inline">.apk</code> on a computer before moving it to the
phone, or use any file-hashing app. The signing-certificate fingerprint matters
most: every future update is signed with the same key, and Android refuses an
update signed by anyone else.</p>
</div>
<div class="card">
<h3>On chain</h3>
<p>The canonical checksum list is pinned by the name
<code class="inline">releases.silentmode.bch</code>, so a tampered mirror cannot
change what you check against. Human-readable page:
<a href="releases">silentmode.st/releases</a>.</p>
</div>
</div>
</section>
</div>
<footer>
<div>Silent Mode — a Deviant project.</div>
<div class="fine">Alpha software on a test network. Nothing here is signed by an
authority your device already trusts, by design. The SHA-256 is the real check.
Nothing here is a service, a product guarantee, or an investment.</div>
</footer>
</body>
</html>