Home: Prometheus and Hermes are live, not "designed"; new Ariadne and Pithos cards; VPN, Bergamot and Mirrors linked; the page no longer claims to run on nginx or to list "seven pieces". /ariadne: new Silent Mode-headered page for the resolver family — Android browser (APK, hash, signing key), standalone Windows resolver, how a lookup resolves — linking out to the sovereign ariadne.x. "Ariadne" tab added to every page's top nav; VPN and Bergamot navs normalised to the site-root scheme while there. Hermes: Download section (Windows installer + MSI, Android APK with hashes from the manifest, web messenger), mobile and Windows marked live, hero image path fixed; the brand-kit page's links were relative to a URL that no longer has a trailing slash and the folder had never been deployed. Releases/dl: the live dl manifest had been overwritten from a stale base and was serving 0.3.106 to updaters while 0.3.110 was on the host; merged (union) and reshipped. Manifest gains hermes-android/hermes-desktop; keep policy aligned between the page (releases-page.mjs) and the VPS (dl-vps-archive.sh, new, all products) so the page never links a build the host no longer has. dl.silentmode.st/ now serves a generated index with absolute links; dl-latest.sh tracked in-repo and extended with Hermes rows. scripts/site-linkcheck.mjs resolves links the way the slash-less URLs do.
335 lines
18 KiB
HTML
335 lines
18 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Hermes — messaging by on-chain name — Silent Mode</title>
|
|
<meta name="description" content="Hermes: end-to-end encrypted messaging where your on-chain registered name is your identity. Live in Theseus desktop and at hermes.x/messenger. NIP-17 sealed DMs over Nostr, no email, no phone number, no company account.">
|
|
<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 on-chain registered name is your identity. Live in Theseus desktop and at hermes.x/messenger. NIP-17 sealed DMs over Nostr, no email, no phone number, no company account.">
|
|
<meta property="og:url" content="https://silentmode.st/hermes">
|
|
<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">
|
|
</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">Theseus</a>
|
|
<a href="ariadne">Ariadne</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>
|
|
</nav>
|
|
|
|
<header class="hero">
|
|
<div class="mark" style="line-height:0; display:inline-flex">
|
|
<img src="hermes/branding/mark.webp" alt="Hermes" width="120" height="120" style="display:block">
|
|
</div>
|
|
<h1>Hermes <span class="pill p-shipped" style="vertical-align:middle;font-size:12px;margin-left:.6rem;background:rgba(79,209,165,.12);color:#4fd1a5;padding:2px 10px;border-radius:999px">live · desktop, web, Android</span></h1>
|
|
<p class="tag">End-to-end encrypted DMs over Nostr, addressed by your
|
|
on-chain registered 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>
|
|
<p class="tag" style="font-size:.95rem;margin-top:.8rem">
|
|
Lives inside <a href="theseus"><b>Theseus</b></a> (Hermes icon in the left sidebar, or <kbd style="background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:12px">Ctrl</kbd>+<kbd style="background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:12px">Shift</kbd>+<kbd style="background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:12px">E</kbd>
|
|
E as in <i>Ermis</i>) and in any browser at <a href="https://navigate.st/bns/hermes.x/messenger/"><b>hermes.x/messenger</b></a>. Brand kit at
|
|
<a href="hermes/branding"><code class="inline">/hermes/branding</code></a>.
|
|
</p>
|
|
<p style="margin:1.4rem 0 0;color:var(--dim);font-size:13px">
|
|
<b style="color:var(--mut)">Hermes.X</b> is the messenger's sovereign site, served from its own on-chain name.
|
|
Mirror: <a href="/hermes-x/">silentmode.st/hermes-x/</a> ·
|
|
gateway: <a href="https://navigate.st/bns/hermes.x/">navigate.st/bns/hermes.x/</a> ·
|
|
native with a resolver: <a href="https://hermes.x/"><code class="inline">https://hermes.x/</code></a>
|
|
</p>
|
|
</header>
|
|
|
|
<div class="wrap narrow">
|
|
|
|
<!-- ============ WHAT SHIPS TODAY ============ -->
|
|
<section class="plain">
|
|
<h2>What ships today</h2>
|
|
<p class="lede">Hermes is live inside the Theseus desktop browser and as a web messenger at
|
|
<a href="https://navigate.st/bns/hermes.x/messenger/">hermes.x/messenger</a>. Core messaging,
|
|
sign-in, profiles and the address book work end to end. Mobile and Tor transport follow.</p>
|
|
<div class="grid">
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>Threaded chat</h3>
|
|
<p>Contact list on the left with search and unread badges, the selected conversation on the
|
|
right with bubbles and inline reply. Enter to send, Shift-Enter for a new line.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>Send and receive by name</h3>
|
|
<p>Type <code class="inline">alice.x</code>. The client resolves the name on-chain, wraps the
|
|
message NIP-17 to the recipient's Nostr key and publishes to their declared relays.
|
|
Sealed-sender: the relay never sees who sent what to whom.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>Three ways to sign in</h3>
|
|
<p>Open with <b>Theseus ID</b> (the browser's own identity), a <b>name and password</b>,
|
|
or a <b>seed phrase</b> (12 or 24 words, or an nsec). You stay signed in on the device;
|
|
a new device needs the seed phrase.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>Handles the way you like them</h3>
|
|
<p>One identity, three spellings: <code class="inline">hermes:alice</code>,
|
|
<code class="inline">alice.x</code>, or the email form. Paste any of them; pick which
|
|
one the client shows in Settings.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>Profiles</h3>
|
|
<p>Display name, picture and a short bio as a standard Nostr profile, so other clients see
|
|
them too. Non-unique and display-only; the name is the identity.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>Address book and vCard import</h3>
|
|
<p>Named contacts stored locally, with optional vCard import from an existing address book.
|
|
You preview who gets added; nothing is uploaded.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live · opt-in</span>
|
|
<h3>Phone discovery</h3>
|
|
<p>Link a phone number and let contacts who know it find you. Off unless you turn it on;
|
|
lookups work the other way too, by number.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>History on your device</h3>
|
|
<p>Messages persist to disk per identity. Close and reopen the panel and your threads are
|
|
still there, unread marks included. Seed backup lives behind your password.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>Hermes for Windows</h3>
|
|
<p>The messenger as a stand-alone desktop app, installer or MSI, for machines without
|
|
Theseus. Byte-equal with the Theseus panel; sign in with the same recovery phrase.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-alpha">preview</span>
|
|
<h3>Web messenger</h3>
|
|
<p>The same panel wrapped as a stand-alone web app at hermes.x/messenger, for anyone without
|
|
the desktop browser. Same crypto, same identity, signs in with an nsec or a mnemonic.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>Hermes for Android</h3>
|
|
<p>A native app (Kotlin, Jetpack Compose) with the same identity and wire format as the
|
|
desktop and web clients: one inbox on every surface. Background delivery, in-app
|
|
auto-update verified against the release manifest, find people by phone number.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-upcoming">planned</span>
|
|
<h3>Tor transport</h3>
|
|
<p>Relay traffic over the Tor client Theseus already runs, so even your connection IP leaves
|
|
the relay. The UI will say when it is on.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ============ DOWNLOAD ============ -->
|
|
<section id="download">
|
|
<h2>Download</h2>
|
|
<p class="lede">Alpha software on a test network. Check the SHA-256 before you install; that check
|
|
is the real one. Every hash and every older build is on the <a href="releases">releases page</a>.</p>
|
|
<div class="grid">
|
|
<div class="card">
|
|
<span class="pill p-live">Android 8.0+</span>
|
|
<h3>Hermes for Android <span style="color:var(--acid)">0.3.0</span></h3>
|
|
<p style="margin-bottom:.7rem">Self-signed release key, in-app auto-update.</p>
|
|
<p><a class="btn acid" href="https://dl.silentmode.st/latest/hermes.apk">Download APK</a></p>
|
|
<p style="margin-top:.8rem;font-size:11.5px;color:var(--dim)">SHA-256 <code class="inline" style="word-break:break-all">77d16184ba2c26fb81b79d9e4c5f98f8bfb434690c1e6acd9b7fd5f16651a6cb</code></p>
|
|
<p style="margin-top:.4rem;font-size:11.5px;color:var(--dim)">Signing key <code class="inline" style="word-break:break-all">b1e4685a7476fcbb3b53d807e298dea2ef2c7375f240cf04847d3d712cab95b7</code></p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">Windows 64-bit</span>
|
|
<h3>Hermes for Windows <span style="color:var(--acid)">0.1.0</span></h3>
|
|
<p style="margin-bottom:.7rem">Unsigned build; Windows will warn about an unrecognized app.</p>
|
|
<p><a class="btn acid" href="https://dl.silentmode.st/latest/Hermes-Setup.exe">Installer</a>
|
|
<a class="btn ghost" href="https://dl.silentmode.st/latest/Hermes.msi">MSI</a></p>
|
|
<p style="margin-top:.5rem;font-size:11.5px;color:var(--dim)">Hermes-0.1.0-setup.exe <code class="inline" style="word-break:break-all">0adc742d54daaee2b62e7fdcbff2f0203bd50f995444487ff93233ccc6328552</code></p>
|
|
<p style="margin-top:.5rem;font-size:11.5px;color:var(--dim)">Hermes-0.1.0.msi <code class="inline" style="word-break:break-all">fa81948bba8c3d6e9306a5aa218424fd2a4bc692891f3d2543c2782207f86b3f</code></p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">no install</span>
|
|
<h3>In Theseus, or in any browser</h3>
|
|
<p>Theseus ships Hermes as a bundled add-on: open the Hermes icon in the left sidebar or
|
|
press Ctrl+Shift+E. Without Theseus, the web messenger at
|
|
<a href="https://navigate.st/bns/hermes.x/messenger/">hermes.x/messenger</a> runs in
|
|
any browser; sign in with a recovery phrase.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ============ THE IDEA ============ -->
|
|
<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-plus-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.x</code> publishes her Nostr pubkey as an on-chain record. Her name
|
|
certificate is her verified, seizure-resistant identity. Message anyone by their on-chain
|
|
registered name, with no phone number, no email, no ICANN, no company, and no server that can
|
|
delete your account.</div>
|
|
</section>
|
|
|
|
<!-- ============ HOW IT WORKS ============ -->
|
|
<section>
|
|
<h2>How it works</h2>
|
|
<ol class="steps">
|
|
<li><b>Your name owns your key.</b>
|
|
<span>Register any name on the chain, or reuse one you already own, and publish your Nostr
|
|
pubkey to it as an <code class="inline">np</code> record. The key is derived from the same
|
|
wallet seed as the name, so one seed backs both.</span></li>
|
|
<li><b>Find people by name.</b>
|
|
<span>Type <code class="inline">bob.x</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.</span></li>
|
|
<li><b>The name shows, not the pubkey.</b>
|
|
<span>Incoming messages reverse-resolve pubkey to name where possible, so your chat list
|
|
looks like a normal chat list rather than a wall of hex.</span></li>
|
|
</ol>
|
|
</section>
|
|
|
|
<!-- ============ NAMES ============ -->
|
|
<section>
|
|
<h2>Getting a name</h2>
|
|
<p class="lede">Today a Hermes identity is any on-chain registered name, such as one under
|
|
<code class="inline">.x</code> from <a href="sirius">Sirius</a>. Two more paths are designed
|
|
and wait for the mainnet launch, when the Hermes top-level domains get minted.</p>
|
|
<div class="grid">
|
|
<div class="card">
|
|
<span class="pill p-live">today</span>
|
|
<h3>Your own on-chain name</h3>
|
|
<p>Register <code class="inline">alice.x</code> at Sirius, publish the Nostr pubkey to it,
|
|
sign in to Hermes with the same seed. One transaction, yours for good.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-designed">designed</span>
|
|
<h3>Free sub-identity</h3>
|
|
<p>A name under the Hermes parent, issued through its signed-records manifest on Sia with
|
|
no chain fee, for people who have no Bitcoin Cash on hand. Promote it to a sovereign name
|
|
later from Settings in one transaction; the chain wins once both exist.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-designed">designed</span>
|
|
<h3>Hermes TLDs</h3>
|
|
<p>A short Hermes TLD for the dotted form and a second one for the email form, both minted on
|
|
mainnet rather than the test network. The client already parses all three spellings, so
|
|
the switch is a configuration change.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ============ WHERE IT LIVES ============ -->
|
|
<section>
|
|
<h2>Where it lives</h2>
|
|
<div class="grid">
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>In Theseus desktop</h3>
|
|
<p>A Messages panel in the left sidebar of the browser you already have. Reuses the
|
|
built-in wallet's seed as the messaging identity.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-alpha">preview</span>
|
|
<h3>In any browser</h3>
|
|
<p>hermes.x/messenger, served from the name itself over Sia. Sign in with a seed phrase;
|
|
history stays in that browser's storage.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-live">live</span>
|
|
<h3>On Android and Windows</h3>
|
|
<p>Native apps with the same seed and the same identity, so you can message from any
|
|
device. Ariadne for Android also opens hermes.x from its menu.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ============ HISTORY ============ -->
|
|
<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">
|
|
<span class="pill p-live">default</span>
|
|
<h3>Local only</h3>
|
|
<p>The client keeps your message history on the device. Nothing else knows it exists. The
|
|
same seed on two devices gives two-device redundancy; lose both and history is gone.
|
|
Signal's model, on purpose.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-designed">designed</span>
|
|
<h3>Silent Mode cloud backup</h3>
|
|
<p>Toggle on and the client encrypts your history with a key derived from your wallet seed,
|
|
then backs it up to the Sia network. Only you can read it. Text only, no media.</p>
|
|
</div>
|
|
<div class="card">
|
|
<span class="pill p-designed">designed</span>
|
|
<h3>Your own Sia account</h3>
|
|
<p>Prefer to own the storage? Hermes sets up your own Sia account and routes backups there
|
|
instead. Same encryption, and media backup becomes possible.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ============ BOUNDARIES ============ -->
|
|
<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 signing 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 until Tor transport lands.</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 and writes to a
|
|
few public relays for reach and redundancy.</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div class="note"><b>Design documents.</b> The protocol design is in
|
|
<a href="https://code.silentmode.st/silentmode/silentmode/src/branch/master/Hermes/DESIGN-hermes.md">Hermes/DESIGN-hermes.md</a>,
|
|
the Android plan in <code class="inline">DESIGN-mobile-hermes.md</code>, and the free
|
|
sub-identity scheme in <code class="inline">DESIGN-sub-identity-manifest.md</code>, all in the
|
|
same folder. The desktop client ships as a bundled Theseus add-on and updates on its own channel,
|
|
independent of browser releases.</div>
|
|
|
|
</div>
|
|
|
|
<footer>
|
|
<div>Silent Mode — a Deviant project.</div>
|
|
<div class="fine">Named for the messenger of the gods; Ermis in modern Greek. Alpha software on
|
|
a test network. Nothing here is a service, product guarantee, or investment.</div>
|
|
</footer>
|
|
|
|
</body>
|
|
</html>
|