Two brand kits, one design language. Each site now has a /brand/ page + a
favicon; every page I own on silentmode.st links the SVG favicon (parallel
sessions can add the same line to Sirius/Hephaestus/Choose when they touch
those files).
Silent Mode kit (site/brand/, site/favicon.svg):
Mark — two interlocking chain links, one muted (#8b98a9) + one acid
(#d6ff3d). The umbrella family mark.
Logo, wordmark, avatar (400x400 social), banner (1500x500 social header).
Brand page shows every asset with SVG download, colour palette
(tokens matching shared.css), usage do's and don'ts.
navigate.st kit (navigate.st/brand/, navigate.st/favicon.svg):
Mark — compass rose (N acid, other points muted) inside a chain-link
ring. Ring keeps it in the Silent Mode family without cloning the
SilentMode mark; compass says what this specific site is (the
wayfinding front door).
Same asset set: logo, wordmark, avatar, banner. Standalone brand page
(no shared.css — navigate.st runs single-file).
nginx (VPS): added two locations to sites-enabled/navigate-st so /favicon.svg
and /brand/* resolve from /opt/silent-mode/navigate-brand/. Rollback point
at sites-enabled/navigate-st.bak.1788146513. silentmode.st serves both from
disk under /opt/silent-mode/site/ — no vhost change needed.
Verified live: all favicon + brand URLs return 200 on both hosts.
153 lines
6.8 KiB
HTML
153 lines
6.8 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 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.">
|
|
<link rel="stylesheet" href="../shared.css">
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
</head>
|
|
<body>
|
|
|
|
<nav class="topnav">
|
|
<a class="brand" href="../">⛓️ Silent <span class="g">Mode</span></a>
|
|
<a href="../tools/">Theseus</a>
|
|
<a href="../prometheus/">Prometheus</a>
|
|
<a href="../sirius/">Sirius</a>
|
|
<a href="../hephaestus/">Hephaestus</a>
|
|
<a href="../helios/">Helios</a>
|
|
<a href="./" class="here">Hermes</a>
|
|
</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>
|
|
|
|
<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>
|
|
|
|
<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>
|