theseus.x, sirius.x and hephaestus.x had a 1px border-bottom under the sticky/fixed topnav that read as a visible separator between the navigation and the page. The topnav's own translucent-blur backdrop is enough of a distinction already — the line is redundant and, on the theseus.x sidebar layout, made the top of the sidebar look like it was overhanging the header. theseus.x tabs also had a "Sirius .X" gap because the topnav <a> is a flex container and the icon + "Sirius" text + ".X" span were three flex items with a 6px gap between each. Wrapping the label in one <span> collapses the gap to a single space between icon and label. Sidebar border-right and mobile bottom-bar border-top also dropped — the panel tint carries the boundary; a hard line was too heavy.
192 lines
14 KiB
HTML
192 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 — the browser that speaks Bitcoin Cash names — Sirius.X</title>
|
|
<meta name="description" content="Theseus Navigator is a Chromium-based browser with native Bitcoin Cash Domain Names resolution built in — no OS-level daemon, no DNS shim, no root-store install. Download for Windows.">
|
|
<!-- Theseus.X has its own compass-mark favicon and logo — reuse them here so
|
|
tabs on this subpage read as Theseus (compass), not Sirius (star), and
|
|
shared-link previews carry Theseus's own OG image. Copied from
|
|
silentmode.st/bns/theseus.x/assets/ to keep sirius.x self-contained. -->
|
|
<link rel="icon" href="./assets/favicon.svg" type="image/svg+xml">
|
|
<link rel="mask-icon" href="./assets/favicon.svg" color="#d6ff3d">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:site_name" content="Theseus Navigator">
|
|
<meta property="og:title" content="Theseus Navigator — the browser that speaks Bitcoin Cash names">
|
|
<meta property="og:description" content="Native .bch and BCNR name resolution built into a Chromium browser. No OS-level daemon, no root-store install. Download for Windows.">
|
|
<meta property="og:url" content="https://silentmode.st/sirius-x/theseus/">
|
|
<meta property="og:image" content="https://silentmode.st/sirius-x/theseus/assets/logo.svg">
|
|
<meta name="theme-color" content="#0b0e14">
|
|
<meta name="twitter:card" content="summary">
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600;9..144,700&family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet">
|
|
<style>
|
|
:root{
|
|
--bg:#050810; --panel:#141a24; --panel2:#0a0f1c; --line:rgba(255,255,255,.06);
|
|
--ink:#f1f4fa; --mut:#b8c2d4; --dim:#6a7488; --acid:#d6ff3d;
|
|
--chain:#d6ff3d; --sia:#b39ddb; --srv:#4fd1a5; --ok:#4fd1a5; --taken:#f6768a; --warn:#ffc75f;
|
|
}
|
|
*{box-sizing:border-box}
|
|
html{scroll-behavior:smooth}
|
|
body{margin:0;background:radial-gradient(ellipse 1200px 600px at 50% -5%,#131a2a 0%,transparent 60%),radial-gradient(ellipse 900px 500px at 100% 100%,#0a0f1c 0%,transparent 55%),radial-gradient(ellipse 900px 500px at 0% 100%,#0c1424 0%,transparent 55%),var(--bg);
|
|
color:var(--ink);font:16px/1.65 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh}
|
|
a{color:var(--acid)}
|
|
.wrap{max-width:980px;margin:0 auto;padding:0 1.2rem}
|
|
.topnav{position:sticky;top:0;z-index:20;display:flex;gap:2px;align-items:center;flex-wrap:wrap;
|
|
padding:10px 1.2rem;background:rgba(11,14,20,.82);backdrop-filter:blur(10px)}
|
|
.topnav .brand{font-weight:600;color:var(--ink);text-decoration:none;margin-right:14px;font-size:15px;letter-spacing:.2px}
|
|
.topnav .brand .g{color:var(--acid)}
|
|
.topnav a{color:var(--mut);text-decoration:none;padding:6px 12px;border-radius:8px;font-size:14px}
|
|
.topnav a:hover{color:var(--ink);background:var(--panel)}
|
|
.topnav a.here{color:var(--acid);background:rgba(214,255,61,.08)}
|
|
.topnav a.portal{margin-left:auto;background:rgba(214,255,61,.10);color:var(--acid);font-weight:500}
|
|
.topnav a.portal:hover{background:rgba(214,255,61,.18)}
|
|
header.hero{text-align:center;padding:5rem 1.2rem 1rem}
|
|
.mark{font-size:56px;line-height:1}
|
|
h1{font-size:clamp(2rem,5.5vw,2.9rem);margin:.4rem 0 .3rem}
|
|
h1 .g{color:var(--acid)}
|
|
.tag{color:var(--mut);font-size:1.05rem;max-width:660px;margin:0 auto}
|
|
.cta{margin-top:1.8rem;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
|
|
.btn{display:inline-block;text-decoration:none;padding:11px 20px;border-radius:10px;background:#4b7bec;color:#fff;font-size:14px;border:none;cursor:pointer;font-family:inherit;transition:filter .1s}
|
|
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}
|
|
.btn.acid{background:var(--acid);color:#0b0e14;font-weight:600}
|
|
.btn:hover{filter:brightness(1.12)}
|
|
section{padding:2.6rem 0;border-top:1px solid var(--line);margin-top:2.5rem}
|
|
section:first-of-type{border-top:none;margin-top:1.5rem}
|
|
h2{font-size:1.5rem;margin:0 0 .4rem}
|
|
h3{font-size:1.1rem;margin:0 0 .35rem}
|
|
.lede{color:var(--mut);margin:0 0 1.6rem;max-width:720px}
|
|
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
|
|
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
|
|
.card h3{margin:0 0 .4rem;display:flex;align-items:center;gap:8px}
|
|
.card p{margin:0;color:var(--mut);font-size:14px}
|
|
.card .cta{margin-top:14px;justify-content:flex-start}
|
|
.card .sub{color:var(--dim);font-size:12.5px;margin-top:10px;font-family:ui-monospace,monospace;word-break:break-all}
|
|
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
|
|
.d-chain{background:var(--chain)} .d-sia{background:var(--sia)} .d-srv{background:var(--srv)}
|
|
.note{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--acid);
|
|
border-radius:10px;padding:14px 18px;color:var(--mut);font-size:14px;margin-top:1.4rem}
|
|
.note.warn{border-left-color:var(--warn)}
|
|
.note b{color:var(--ink)}
|
|
code,.mono{background:#0e131b;border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:13px}
|
|
pre{background:#0e131b;border:1px solid var(--line);border-radius:10px;padding:12px 14px;overflow-x:auto;
|
|
font-family:ui-monospace,monospace;font-size:13px;color:var(--ink);margin:1rem 0}
|
|
ol.steps{counter-reset:s;list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:10px}
|
|
ol.steps li{counter-increment:s;display:grid;grid-template-columns:30px 1fr;gap:14px;align-items:start;
|
|
background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:13px 16px}
|
|
ol.steps li::before{content:counter(s);grid-column:1;grid-row:1;
|
|
display:grid;place-items:center;width:24px;height:24px;border-radius:50%;
|
|
background:rgba(214,255,61,.14);color:var(--acid);font-size:12.5px;font-weight:700}
|
|
ol.steps li > *{grid-column:2;min-width:0}
|
|
ol.steps b{color:var(--ink)} ol.steps span{color:var(--mut);font-size:14px}
|
|
.pill{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(214,255,61,.13);color:var(--acid);margin-left:8px;vertical-align:middle;font-weight:500}
|
|
footer{border-top:1px solid var(--line);padding:2.4rem 0 3.5rem;color:var(--dim);font-size:13px;text-align:center;margin-top:2.5rem}
|
|
/* Deviant-family fonts + Fraunces/Ubuntu reader toggle. */
|
|
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-feature-settings:"ss01","ss02"}
|
|
code,.mono{font-family:'JetBrains Mono',ui-monospace,monospace}
|
|
body{font-family:'DM Sans','Inter',system-ui,sans-serif !important;font-feature-settings:"ss01","ss02"}
|
|
html[data-font-cmp="ubuntu"] body,html[data-font-cmp="ubuntu"] h1,html[data-font-cmp="ubuntu"] h2,html[data-font-cmp="ubuntu"] h3,html[data-font-cmp="ubuntu"] p,html[data-font-cmp="ubuntu"] a,html[data-font-cmp="ubuntu"] button,html[data-font-cmp="ubuntu"] span,html[data-font-cmp="ubuntu"] div,html[data-font-cmp="ubuntu"] label,html[data-font-cmp="ubuntu"] input,html[data-font-cmp="ubuntu"] li{font-family:'Ubuntu',system-ui,sans-serif !important}
|
|
html[data-font-cmp="ubuntu"] code,html[data-font-cmp="ubuntu"] .mono{font-family:'JetBrains Mono',ui-monospace,monospace !important}
|
|
.font-picker{display:inline-flex;align-items:center;gap:2px;padding:2px;margin:0 10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:999px;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
|
|
.font-picker button{background:transparent;border:none;color:var(--dim);padding:4px 10px;border-radius:999px;cursor:pointer;font-family:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit}
|
|
.font-picker button:hover{color:var(--ink)}
|
|
.font-picker button.active{background:var(--acid);color:var(--bg);font-weight:600}
|
|
</style>
|
|
<script type="importmap">
|
|
{ "imports": { "@bitauth/libauth": "https://silentmode.st/js/libauth.js" } }
|
|
</script>
|
|
</head>
|
|
<body>
|
|
|
|
<nav class="topnav">
|
|
<a class="brand" href="../">⭐ <span class="g">Sirius.X</span></a>
|
|
<a href="../#try">Try it</a>
|
|
<a href="../#search-input">✏️ Register</a>
|
|
<a href="../tld.html">🌐 TLD</a>
|
|
<a href="../market.html">🛒 Market</a>
|
|
<a href="./" class="here"><svg width="14" height="14" viewBox="0 0 64 64" style="vertical-align:-2px;margin-right:4px" aria-hidden="true"><rect width="64" height="64" rx="12" fill="#0b0e14"/><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>Theseus</a>
|
|
<a href="../portal.html" class="portal">🔑 Sign in</a>
|
|
</nav>
|
|
|
|
<header class="hero">
|
|
<div class="mark"><img src="./assets/favicon.svg" alt="" width="72" height="72" style="vertical-align:middle;filter:drop-shadow(0 0 24px rgba(214,255,61,.15))"></div>
|
|
<h1>Theseus <span class="g">Navigator</span></h1>
|
|
<p class="tag">A Chromium-based browser with native <b>Bitcoin Cash Domain Names</b> resolution built in.
|
|
No OS-level daemon, no DNS shim, no root-store install. Type <code>hello.bch</code> in the
|
|
address bar and it just works.</p>
|
|
<div class="cta">
|
|
<a class="btn acid" href="#download">Download for Windows</a>
|
|
<a class="btn ghost" href="#how">How it works</a>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="wrap">
|
|
|
|
<section id="download">
|
|
<h2>Download</h2>
|
|
<p class="lede">Theseus ships from its own site — <a href="https://silentmode.st/bns/theseus.x/#download" rel="noopener"><b>theseus.x</b></a> — so the version and checksums you see are always the current build, not a snapshot cached here. Windows installer + portable, plus Ariadne Resolver (lighter, no-browser).</p>
|
|
<div class="cta" style="justify-content:flex-start;margin-top:1.2rem">
|
|
<a class="btn acid" href="https://silentmode.st/bns/theseus.x/#download" rel="noopener">Open theseus.x downloads →</a>
|
|
<a class="btn ghost" href="https://silentmode.st/bns/theseus.x/" rel="noopener">Full Theseus site</a>
|
|
</div>
|
|
<div class="note" style="margin-top:1.4rem"><b>Why not list versions here?</b> Theseus updates weekly; a hardcoded version on this page went stale within days last time. theseus.x is the single source of truth — its own operator ships the current build, and Sirius.X links there instead of duplicating.</div>
|
|
</section>
|
|
|
|
<section id="how">
|
|
<h2>How Theseus works</h2>
|
|
<p class="lede">Theseus is a Chromium wrapper (Electron) with two things regular browsers don't
|
|
have: in-process BCNR name resolution, and a certificate-verify hook that trusts on-chain
|
|
TLS fingerprints instead of the OS root store for BCNR hostnames.</p>
|
|
<ol class="steps">
|
|
<li><b>Address bar accepts <code>.bch</code> / <code>.x</code> / any BCNR TLD.</b>
|
|
<span>The URL parser is short-circuited: any hostname whose TLD is in the registry is
|
|
resolved by walking the chain via the built-in <code>bns.js</code> — never through DNS.</span></li>
|
|
<li><b>Records decide how the site is served.</b>
|
|
<span><code>h</code> renders inline HTML from the OP_RETURN payload itself. <code>s3</code>
|
|
serves from a Sia bucket via the in-app gateway. <code>ip</code> connects to a server by
|
|
IP. <code>u</code> redirects. Priority is handled by the shared <code>record-picker</code>.</span></li>
|
|
<li><b>TLS verifies against on-chain fingerprints.</b>
|
|
<span>Electron's <code>setCertificateVerifyProc</code> is intercepted: for BCNR hostnames,
|
|
instead of walking the OS trust chain, the leaf's SHA-256 fingerprint is compared to the
|
|
<code>tls</code> record on chain. Matches → trusted. No <code>tls</code> record → the
|
|
browser falls back to the local root CA.</span></li>
|
|
<li><b>Provenance indicator in the URL bar.</b>
|
|
<span>A tiny badge shows whether the page came from the chain, from Sia, or from an
|
|
IP-configured server — with the NFT category shown on hover. The decentralized padlock.</span></li>
|
|
</ol>
|
|
<div class="note"><b>What Theseus is NOT.</b> Not a wallet — for that, use Deviant, Cashonize,
|
|
Paytaca, or the built-in browser wallet at
|
|
<a href="../#search-input">the name search</a>.
|
|
Not a hosting service — for that, register a name and point its records at any host (Sia, VPS,
|
|
your own server). Theseus just makes those names openable in a normal-feeling browser.</div>
|
|
</section>
|
|
|
|
<section id="verify">
|
|
<h2>Verify a download</h2>
|
|
<p class="lede">The binaries are unsigned (Windows will show a SmartScreen warning). Before
|
|
running, verify the SHA-256 against what the operator publishes on-chain — the current
|
|
hashes live on the theseus.x download page itself, alongside each release:</p>
|
|
<pre>PowerShell:
|
|
Get-FileHash <downloaded-file>.exe
|
|
|
|
Bash:
|
|
sha256sum <downloaded-file>.exe</pre>
|
|
<p class="lede">Compare the digest to the hash panel on
|
|
<a href="https://silentmode.st/bns/theseus.x/#verify" rel="noopener">theseus.x/#verify</a>.
|
|
For a stronger guarantee, sign in with the wallet and check that the release-signing key
|
|
matches the on-chain identity for <code>releases.silentmode.bch</code>.</p>
|
|
</section>
|
|
|
|
</div>
|
|
|
|
<footer id="site-footer"></footer>
|
|
|
|
<script src="../js/pin-escrow.js?v=20260909pin"></script>
|
|
<script src="../js/pricing.js?v=20260909tldhigh"></script>
|
|
<script defer src="../js/site-footer.js?v=20260907rel"></script>
|
|
<script defer src="../js/theme.js?v=20260910font"></script>
|
|
<script defer src="../js/profile-menu.js?v=20260908tabs"></script>
|
|
</body>
|
|
</html>
|