2026-07-29 13:54:34 +02:00
<!doctype html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
2026-09-10 00:32:01 +02:00
< meta property = "og:type" content = "website" >
< meta property = "og:site_name" content = "Silent Mode" >
< meta property = "og:title" content = "Silent Mode — releases &amp; checksums" >
site: slash-less page URLs; /theseus is the Theseus page, /tools the overview
Canonical silentmode.st URLs no longer carry a trailing slash (/tools, not
/tools/). nginx (tracked now in VPS/SilentMode/silentmode-st.nginx) 301s
the old form and serves <dir>/index.html; sub-sites deployed from other
repos with relative asset paths (deviant, sirius-x, theseus-x, hephaestus.x,
fly.x, code) keep their directory URLs. Every page's internal links are
now site-root-relative, which resolves correctly both at /x on nginx and
under the BNS gateway's injected <base href="/bns/silentmode.bch/"> — the
old ../x/ links were already broken on the gateway route.
/theseus becomes the Silent Mode-headered Theseus page (what it is, what's
inside, Windows + Android downloads with manifest hashes, verify), linking
out to the sovereign theseus.x whose VPS mirror moves to /theseus-x/, the
same split as /sirius vs /sirius-x/. /tools is repurposed as the overview:
every site, the on-chain twins, the other clients (relay, Firefox, the
standalone Ariadne Resolver) and the machine endpoints. The old tools page
carried stale APK and resolver hashes; the new pages use the manifest's,
verified against the files on dl.silentmode.st.
scripts/serve-site.mjs mirrors the nginx rules for local preview.
2026-09-20 17:21:30 +02:00
< meta property = "og:url" content = "https://silentmode.st/releases" >
2026-09-10 00:32:01 +02:00
< 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" >
2026-07-29 13:54:34 +02:00
< title > Silent Mode — releases & checksums< / title >
< style >
:root{--bg:#0b0e14;--panel:#141a24;--line:rgba(255,255,255,.09);--ink:#e7eaf1;--mut:#8b98a9;--dim:#5e6678;--acid:#d6ff3d}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(1100px 560px at 50% -12%,#16202e,var(--bg));
color:var(--ink);font:16px/1.65 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.wrap{max-width:820px;margin:0 auto;padding:3.5rem 1.2rem 4rem}
a{color:var(--acid)}
h1{font-size:1.8rem;margin:0 0 .3rem}
h1 .g{color:var(--acid)}
.lede{color:var(--mut);margin:.2rem 0 2rem}
.rel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:16px}
.rel h2{font-size:1.15rem;margin:0 0 .2rem}
.rel .meta{color:var(--dim);font-size:12.5px;margin-bottom:1rem}
.file{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.file .n{font-size:14px;color:var(--ink)}
.file .n a{text-decoration:none}
.file code{display:block;font-family:ui-monospace,monospace;font-size:11.5px;color:#c9d4e3;
word-break:break-all;margin-top:4px}
.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:13.5px;margin-top:1.6rem}
.note b{color:var(--ink)}
footer{color:var(--dim);font-size:12.5px;margin-top:2.5rem;text-align:center}
< / style >
site: slash-less page URLs; /theseus is the Theseus page, /tools the overview
Canonical silentmode.st URLs no longer carry a trailing slash (/tools, not
/tools/). nginx (tracked now in VPS/SilentMode/silentmode-st.nginx) 301s
the old form and serves <dir>/index.html; sub-sites deployed from other
repos with relative asset paths (deviant, sirius-x, theseus-x, hephaestus.x,
fly.x, code) keep their directory URLs. Every page's internal links are
now site-root-relative, which resolves correctly both at /x on nginx and
under the BNS gateway's injected <base href="/bns/silentmode.bch/"> — the
old ../x/ links were already broken on the gateway route.
/theseus becomes the Silent Mode-headered Theseus page (what it is, what's
inside, Windows + Android downloads with manifest hashes, verify), linking
out to the sovereign theseus.x whose VPS mirror moves to /theseus-x/, the
same split as /sirius vs /sirius-x/. /tools is repurposed as the overview:
every site, the on-chain twins, the other clients (relay, Firefox, the
standalone Ariadne Resolver) and the machine endpoints. The old tools page
carried stale APK and resolver hashes; the new pages use the manifest's,
verified against the files on dl.silentmode.st.
scripts/serve-site.mjs mirrors the nginx rules for local preview.
2026-09-20 17:21:30 +02:00
< link rel = "stylesheet" href = "shared.css?v=20260910" >
< link rel = "icon" type = "image/svg+xml" href = "favicon.svg" >
2026-07-29 13:54:34 +02:00
< / head >
< body >
< nav class = "topnav" >
site: slash-less page URLs; /theseus is the Theseus page, /tools the overview
Canonical silentmode.st URLs no longer carry a trailing slash (/tools, not
/tools/). nginx (tracked now in VPS/SilentMode/silentmode-st.nginx) 301s
the old form and serves <dir>/index.html; sub-sites deployed from other
repos with relative asset paths (deviant, sirius-x, theseus-x, hephaestus.x,
fly.x, code) keep their directory URLs. Every page's internal links are
now site-root-relative, which resolves correctly both at /x on nginx and
under the BNS gateway's injected <base href="/bns/silentmode.bch/"> — the
old ../x/ links were already broken on the gateway route.
/theseus becomes the Silent Mode-headered Theseus page (what it is, what's
inside, Windows + Android downloads with manifest hashes, verify), linking
out to the sovereign theseus.x whose VPS mirror moves to /theseus-x/, the
same split as /sirius vs /sirius-x/. /tools is repurposed as the overview:
every site, the on-chain twins, the other clients (relay, Firefox, the
standalone Ariadne Resolver) and the machine endpoints. The old tools page
carried stale APK and resolver hashes; the new pages use the manifest's,
verified against the files on dl.silentmode.st.
scripts/serve-site.mjs mirrors the nginx rules for local preview.
2026-09-20 17:21:30 +02:00
< 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" > 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 >
2026-07-29 13:54:34 +02:00
< / nav >
< div class = "wrap" >
< h1 > Silent < span class = "g" > Mode< / span > — releases< / h1 >
< p class = "lede" > Canonical SHA-256 checksums for every published build. This page lives at the on-chain
name < code > releases.silentmode.bch< / code > ; the name pins where it is served from, so a tampered
mirror cannot change what you check against here.< / p >
< div class = "rel" >
2026-10-02 22:20:22 +02:00
< h2 > Theseus Navigator < span style = "color:var(--acid)" > 0.3.64< / span > < / h2 >
< div class = "meta" > Windows 64-bit · unsigned · 2026-10-02 · < b > 0.3.64 — cleaner "not responding" dialog< / b > — Windows's "App is not responding" dialog and Task Manager now read as "Theseus Navigator" instead of the full marketing tagline — the exe's VERSIONINFO FileDescription was pulling the whole description. (The freeze that triggers the dialog is addressed in 0.3.63 by the lazy tab restore; this release only tidies the dialog's text.)< / div >
2026-07-29 13:54:34 +02:00
< div class = "file" >
2026-10-02 22:20:22 +02:00
< div class = "n" > < a href = "https://dl.silentmode.st/TheseusNavigator-Setup-0.3.64.exe" > TheseusNavigator-Setup-0.3.64.exe< / a > — installer< / div >
< code > 7a45bf30f0a76fc015ed5f0e77221ecb000c7e34b21dd8f6aea580c39d803119< / code >
2026-07-29 13:54:34 +02:00
< / div >
< div class = "file" >
2026-10-02 22:20:22 +02:00
< div class = "n" > < a href = "https://dl.silentmode.st/TheseusNavigator-0.3.64-portable.exe" > TheseusNavigator-0.3.64-portable.exe< / a > — portable< / div >
< code > df68c95577aababad4b1f2c71a1e4882e163927ed400edfbc172e7bc77c686a6< / code >
2026-07-29 13:54:34 +02:00
< / div >
< / div >
< div class = "rel" >
Ariadne 0.1.13: /api/status + per-source enable toggles in policy.json
Every subsystem is now individually switchable and reports its own state.
GET http://127.0.0.1/api/status returns:
- daemon: version, startedAt, uptimeSec, policy, permittedTlds, ports,
upstream, gateway
- index: size, nameCacheSize, warmStart {source, at, size}
- sources.snapshotHttps: enabled, urls, lastAttempt/Success/Status/Error,
winnerUrl, notModified count, refreshes count, ETags
- sources.electrumWss: enabled, lastAttempt/Success/Error, failStreak, refreshes
- sources.perQueryLookup: enabled, gateway, lastAttempt, hits/misses/errors
- sources.diskCache: enabled, path, exists, size, mtime
- sources.localApi: enabled, endpoints[]
- policyFile: path, exists
policy.json schema extended with a sources.<name>.enabled block, hot-reloaded
by the existing loadPolicyOverride() on the same 5-second tick as the
collision policy. Each refresh/lookup path guards on its flag, so an operator
can isolate any subsystem without a restart:
- snapshotHttps off -> daemon skips dl.silentmode.st/Sia polling
- electrumWss off -> daemon skips chipnet WSS refresh
- perQueryLookup off -> DNS handler misses fall straight through to forward
- diskCache off -> no write to and no read from bns-name-snapshot.json
- localApi off -> /api/* return 503 with a hint pointing at policy.json
Verified locally on port 18080: /api/status returned the full JSON with a
snapshot warm-start from dl.silentmode.st recorded in warmStart, ETag captured
in sources.snapshotHttps.etags, disk cache path/size/mtime populated.
Deployed dl.silentmode.st + Sia. sha256 a16d10759efede4412f4fdb52d59424bf56bbb258bb002ab930f4a5a5aef8a41.
The matching Theseus panel UI (source table with the toggles + a Copy-status
button that fetches /api/status) belongs in the Theseus release; not touched
here to avoid colliding with settings-preload.js work in flight from a
parallel session.
2026-10-01 00:08:57 +02:00
< h2 > Ariadne Resolver — Windows < span style = "color:var(--acid)" > 0.1.13< / span > < / h2 >
< div class = "meta" > Windows 64-bit · unsigned · bundled Node runtime · 2026-10-01 · < b > 0.1.13 — every subsystem is switchable and reports its own state< / b > — New endpoint < code style = "display:inline" > http://127.0.0.1/api/status< / code > returns a full state report: daemon version + startup + policy + permitted TLDs + ports + upstream + gateway; index size + warm-start source; and per-source < code style = "display:inline" > enabled< / code > /< code style = "display:inline" > lastAttempt< / code > /< code style = "display:inline" > lastSuccess< / code > /< code style = "display:inline" > lastError< / code > /counters for < b > snapshotHttps< / b > , < b > electrumWss< / b > , < b > perQueryLookup< / b > , < b > diskCache< / b > , < b > localApi< / b > . Same JSON drives a settings UI (once Theseus's Plug-ins panel picks it up) and is a support-ready "current state" dump. < code style = "display:inline" > C:\ProgramData\Ariadne\policy.json< / code > extended with a < code style = "display:inline" > sources.< name> .enabled< / code > block (hot-reloaded every 5 s alongside the collision policy) — flip any source off to isolate a path or measure without it. Includes 0.1.12 (orphan-safe upgrade + local BNS indexer API). Upgrades in place.< / div >
2026-07-29 13:54:34 +02:00
< div class = "file" >
Ariadne 0.1.13: /api/status + per-source enable toggles in policy.json
Every subsystem is now individually switchable and reports its own state.
GET http://127.0.0.1/api/status returns:
- daemon: version, startedAt, uptimeSec, policy, permittedTlds, ports,
upstream, gateway
- index: size, nameCacheSize, warmStart {source, at, size}
- sources.snapshotHttps: enabled, urls, lastAttempt/Success/Status/Error,
winnerUrl, notModified count, refreshes count, ETags
- sources.electrumWss: enabled, lastAttempt/Success/Error, failStreak, refreshes
- sources.perQueryLookup: enabled, gateway, lastAttempt, hits/misses/errors
- sources.diskCache: enabled, path, exists, size, mtime
- sources.localApi: enabled, endpoints[]
- policyFile: path, exists
policy.json schema extended with a sources.<name>.enabled block, hot-reloaded
by the existing loadPolicyOverride() on the same 5-second tick as the
collision policy. Each refresh/lookup path guards on its flag, so an operator
can isolate any subsystem without a restart:
- snapshotHttps off -> daemon skips dl.silentmode.st/Sia polling
- electrumWss off -> daemon skips chipnet WSS refresh
- perQueryLookup off -> DNS handler misses fall straight through to forward
- diskCache off -> no write to and no read from bns-name-snapshot.json
- localApi off -> /api/* return 503 with a hint pointing at policy.json
Verified locally on port 18080: /api/status returned the full JSON with a
snapshot warm-start from dl.silentmode.st recorded in warmStart, ETag captured
in sources.snapshotHttps.etags, disk cache path/size/mtime populated.
Deployed dl.silentmode.st + Sia. sha256 a16d10759efede4412f4fdb52d59424bf56bbb258bb002ab930f4a5a5aef8a41.
The matching Theseus panel UI (source table with the toggles + a Copy-status
button that fetches /api/status) belongs in the Theseus release; not touched
here to avoid colliding with settings-preload.js work in flight from a
parallel session.
2026-10-01 00:08:57 +02:00
< div class = "n" > < a href = "https://dl.silentmode.st/AriadneResolver-Setup-0.1.13.exe" > AriadneResolver-Setup-0.1.13.exe< / a > — ~24 MB< / div >
< code > a16d10759efede4412f4fdb52d59424bf56bbb258bb002ab930f4a5a5aef8a41< / code >
2026-07-29 13:54:34 +02:00
< / div >
< / div >
< div class = "rel" >
2026-09-28 02:02:21 +02:00
< h2 > Ariadne for Android < span style = "color:var(--acid)" > 0.20< / span > < / h2 >
< div class = "meta" > Android 5.0+ (API 21) · self-signed release key · 2026-09-28 · < b > 0.20 — every live TLD, fresh snapshot< / b > — Every live BNS TLD is claimed by the on-device resolver. The app took its TLD list from the registry's legacy advertised set (nine TLDs), so a name under a newer TLD was only intercepted once it had turned up in the local index; the app now reads the registry's routable list (every TLD on the public listing, 24 today), and ships a bootstrap list matching it for cold start. The cold-start snapshot it pulls from the CDN is now refreshed every ten minutes from the gateway's index instead of by hand, so a fresh install sees names registered minutes ago rather than weeks. Same signing key; installs over 0.19.< / div >
2026-07-29 13:54:34 +02:00
< div class = "file" >
2026-09-28 02:02:21 +02:00
< div class = "n" > < a href = "https://dl.silentmode.st/ariadne-v0.20.apk" > ariadne-v0.20.apk< / a > — 150 KB< / div >
< code > e7362e356de14f010646f3c60908ccd4bbd8030914f7e6a5dc2722d9dcf5e51e< / code >
2026-07-29 13:54:34 +02:00
< / div >
< div class = "file" >
< div class = "n" > Signing certificate — SHA-256 (the same key signs every future release)< / div >
< code > 46ebbbe5dc73148d66410fd0337b1e6683472128c983e8e2578200b9e3ca548c< / code >
< / div >
< / div >
< div class = "note" > < b > How to verify.< / b > After downloading, compute the file's SHA-256 and compare it to
the value above — on Windows: < code style = "display:inline" > certutil -hashfile < file> SHA256< / code > ;
on Android, hash the downloaded < code style = "display:inline" > .apk< / code > on a computer before you move
it to the phone, or use any file-hashing app. Nothing here is signed by an authority your device
already trusts — < b > by design< / b > — so it will warn about an unrecognized app; the checksum is the
real check. The machine-readable manifest is at
< a href = "https://dl.silentmode.st/releases-manifest.json" > releases-manifest.json< / a > .< / div >
< footer > Silent Mode — a Deviant project. Alpha software on a test network.< / footer >
< / div >
< / body >
< / html >