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" >
< title > Hermes — messaging by name — Silent Mode< / title >
< meta name = "description" content = "Hermes: end-to-end encrypted messaging where your Bitcoin Cash name is your identity. NIP-17 sealed DMs over Nostr, no email, no phone number, no company account." >
2026-09-07 23:01:57 +02:00
< meta property = "og:type" content = "website" >
< meta property = "og:site_name" content = "Silent Mode" >
< meta property = "og:title" content = "Hermes — messaging by name — Silent Mode" >
< meta property = "og:description" content = "Hermes: end-to-end encrypted messaging where your Bitcoin Cash name is your identity. NIP-17 sealed DMs over Nostr, no email, no phone number, no company account." >
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/hermes" >
2026-09-07 23:01:57 +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" >
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" class = "here" > Hermes< / a >
< a href = "tools" > Tools< / a >
2026-07-29 13:54:34 +02:00
< / nav >
< header class = "hero" >
< div class = "mark" > ⛓️✉️< / div >
< h1 > Hermes < span class = "pill p-designed" style = "vertical-align:middle;font-size:12px;margin-left:.6rem" > designed · not yet built< / span > < / h1 >
< p class = "tag" > End-to-end encrypted DMs over Nostr, addressed by your
< code class = "inline" > .bch< / code > name instead of a public-key string. Same wallet
is your identity — no email, no phone number, no company, no server that can delete
your account.< / p >
< / header >
< div class = "wrap narrow" >
< section class = "plain" >
< h2 > The one idea that makes this different< / h2 >
< p class = "lede" > Every existing Nostr client has the same wart: identity is
< code class = "inline" > npub1q8s7f3k…< / code > gibberish. The human-name fix — NIP-05 —
resolves < code class = "inline" > alice@example.com< / code > through a DNS domain and a
web server. That is exactly the ICANN + server chain Silent Mode exists to escape.
Decentralized messaging bolted onto centralized identity.< / p >
< div class = "note" > < b > The Hermes pitch.< / b > < br >
< code class = "inline" > alice.bch< / code > publishes her Nostr pubkey as an on-chain
record. Her name certificate < i > is< / i > her verified, seizure-resistant identity.
Message anyone by their < code class = "inline" > .bch< / code > name — no phone number, no
email, no ICANN, no company, no server that can delete your account.< / div >
< / section >
< section >
< h2 > How it works< / h2 >
< ol class = "steps" >
< li > < b > Your name owns your key.< / b >
< span > Register any name you like on the chain (or reuse one you already own),
publish your Nostr pubkey to it as a new < code class = "inline" > np< / code > record.
The key is derived from the same wallet seed as the name itself, so one seed
backs both.< / span > < / li >
< li > < b > Find people by name.< / b >
< span > Type < code class = "inline" > bob.bch< / code > . The client resolves it against
the chain, pulls < code class = "inline" > np< / code > (Nostr pubkey) and
< code class = "inline" > nr< / code > (preferred relays). No directory server involved.< / span > < / li >
< li > < b > Send the message sealed.< / b >
< span > NIP-17 gift-wrapped DMs — the relay sees neither sender nor content, only
that a wrap addressed to some pubkey exists. Route over Tor to also hide your
IP; Theseus already can.< / span > < / li >
< li > < b > The name shows, not the pubkey.< / b >
< span > Incoming messages reverse-resolve pubkey → name where possible, so your
chat list looks like a normal chat list — not a wall of hex.< / span > < / li >
< / ol >
< / section >
< section >
< h2 > Where it will live< / h2 >
< div class = "grid" >
< div class = "card" >
< h3 > In Theseus < span class = "src s-chain" > desktop< / span > < / h3 >
< p > A Messages panel inside the browser you already have. Routes relay traffic over
Tor. Reuses the built-in wallet's seed as the messaging identity.< / p >
< / div >
< div class = "card" >
< h3 > In Ariadne mobile < span class = "src s-chain" > phone< / span > < / h3 >
< p > A Messages screen in the existing Android app. Same seed, same identity — you
can message from either device without a linked-account handshake.< / p >
< / div >
< / div >
< / section >
Snapshot in-progress work: Ariadne mobile, Theseus password manager, Hephaestus
Several concurrent workstreams committed together as a checkpoint:
- Ariadne mobile resolver — BchFetcher/Bns/MainActivity resolution logic,
AndroidManifest + build.ps1
- Theseus password manager — settings.html/chrome.html/settings-preload.js UI +
main.js wiring + package.json resource; Argus password-vault.js, record-picker.js
(+ tests) and resolver-web.d.ts
- Hephaestus — new BCH-wallet OIDC auth-proxy + Forgejo docker-compose and
restic/S3 scripts (secrets referenced via env only; Hephaestus/.env is gitignored)
- Argus public-gateway.mjs updates
- Docs — root README, Email README/RUNBOOK, VPS access runbooks (Checkers/Deviant),
site/hermes, WebsiteDev registry + faster-blocks, Failures/ AAAA-mangle writeup,
Decentralized Storage map, coordination notes
- .gitignore — exclude /.keys/ and Hephaestus/.env
2026-08-14 23:17:18 +02:00
< section >
< h2 > Where your history lives< / h2 >
< p class = "lede" > Three modes, one toggle. The default assumes no cloud at all — every
later option is opt-in, and none of them let anyone but you read your messages.< / p >
< div class = "grid" >
< div class = "card" >
< h3 > Local only < span class = "src s-chain" > default< / span > < / h3 >
< p > The client keeps your message history on the device. Nothing else knows it
exists. Same seed on Theseus and Ariadne gives you two-device redundancy for
free — lose one, restore from the other. Lose both, history is gone. Signal's
model, on purpose.< / p >
< / div >
< div class = "card" >
< h3 > Silent Mode cloud backup < span class = "src s-chain" > opt-in< / span > < / h3 >
< p > Toggle on and the client encrypts your message history with a key derived
from your wallet seed, then backs it up to decentralized cloud storage on
the Sia network. Only you can read it. < b > Text messages only< / b > — no
pictures, no video, no attachments.< / p >
< / div >
< div class = "card" >
< h3 > Your own Sia account < span class = "src s-chain" > advanced< / span > < / h3 >
< p > Prefer to own the storage yourself? Hermes sets up your own Sia account
and routes your backups there instead. Same encryption from your wallet
seed — and this time media backup is on the table too.< / p >
< / div >
< / div >
< / section >
2026-07-29 13:54:34 +02:00
< section >
< h2 > Honest boundaries< / h2 >
< div class = "grid" >
< div class = "card" >
< h3 > Messaging, not email< / h3 >
< p > No Gmail interop — by design. A separate anonymous-mailbox product covers
"sign up on services without leaking a real address."< / p >
< / div >
< div class = "card" >
< h3 > Metadata resistance is good, not perfect< / h3 >
< p > NIP-17 hides sender and content from relays. Relays still see the recipient
pubkey, timing, and your connection IP unless you route over Tor. The UI will
tell you when it's on.< / p >
< / div >
< div class = "card" >
< h3 > Relays are Nostr's soft spot< / h3 >
< p > A message lives only while some relay keeps it. Silent Mode runs one relay on
the same anonymous VPS as the gateway, and writes to a few public relays for
reach and redundancy.< / p >
< / div >
< / div >
< / section >
< div class = "note warn" > < b > Status: designed, not built.< / b > The full protocol design is
in < a href = "https://github.com/deviant" > < code class = "inline" > Hermes/DESIGN-hermes.md< / code > < / a >
(mirror). Nothing to install yet — this page exists to say what is coming, and to
make it possible to ask for updates in the messaging panel of a future Theseus or
Ariadne build.< / div >
< / div >
< footer >
< div > Silent Mode — a Deviant project.< / div >
< div class = "fine" > Named for the messenger of the gods. Not yet built. Contents subject
to change until the first client ships.< / div >
< / footer >
< / body >
< / html >