site/store/index.html
Local Dev 038aca8c09 Initial commit — Silent Mode baseline (2026-07-29)
Snapshot of the decentralized-web stack at the point of the resolver+Theseus
rebuild deploy. Includes:

- Argus (BNS engine + resolver daemon + Sia gateway)
- AriadneResolver (Windows Inno installer bundle + Android APK sources +
  Firefox extension)
- TheseusNavigator (Electron browser)
- site/ (silentmode.st content, deployed to Sia at bns/silentmode/)
- design docs, roadmap, protocol spec

Secrets excluded via .gitignore: Argus/sia-s3.json, Argus/wallets.json,
Argus/ca/*.key,*.crt. Build outputs, node_modules, and bundled runtimes
also excluded.

Shipped hashes on dl.silentmode.st at this commit:
  AriadneResolver-Setup-0.1.0.exe    5bcb216eef31ea28ed767e4134ab74bd5ac69dfbd365fd249e9e6938e55c986a
  TheseusNavigator-Setup-0.0.1.exe   7c735e88bad2da3347145adba3016c8f626a18b8422289c8c6ba471972e2952b
  TheseusNavigator-0.0.1-portable.exe 008fd84445babeabb401b2bca40ea9466b24b0e6d6c85104da7640c5c5c84521
  ariadne-v0.2.apk                   635c8f04d44ef855a8390b9eeddb8cd2d50622e81cc4e5004e8daffc1bb0425c
2026-07-29 13:54:34 +02:00

111 lines
5.2 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>App store — Silent Mode</title>
<meta name="description" content="A decentralized app store where entries live on the Bitcoin Cash blockchain and reviews are signed endorsements you filter by who you trust. No gatekeeper approves what ships.">
<link rel="stylesheet" href="../shared.css">
</head>
<body>
<nav class="topnav">
<a class="brand" href="../">⛓️ Silent <span class="g">Mode</span></a>
<a href="../nav/">Tools</a>
<a href="../apps/">Apps</a>
<a href="../register.html">Names</a>
<a href="./" class="here">Store</a>
<a href="../hermes/">Messenger</a>
</nav>
<header class="hero">
<div class="mark">🏛️</div>
<h1>App <span class="g">store</span>
<span class="pill p-designed" style="vertical-align:middle;font-size:12px;margin-left:.6rem">designed · not yet built</span>
</h1>
<p class="tag">The <i>listings</i> live on the Bitcoin Cash blockchain. The
<i>reviews</i> are signed endorsements you filter by who you trust. Nobody approves
what ships — but you decide whose word to believe.</p>
</header>
<div class="wrap narrow">
<section class="plain">
<h2>The problem this fixes</h2>
<p class="lede">Every existing app store is one company deciding what runs on your
device. That company can be pressured — by governments, by competitors, by its own
politics — and every developer above them stands or falls on their whim. Sideloading
exists as an escape hatch but with none of the discovery, updates, or verification
that make a store useful.</p>
<p class="lede">A store without a gatekeeper needs two things it usually can't have at
once: <b>a canonical listing</b> nobody can rewrite, and <b>a review system</b> that
isn't captured by whoever votes hardest.</p>
</section>
<section>
<h2>How the design solves both</h2>
<ol class="steps">
<li><b>Listings are on-chain records.</b>
<span>Same shape as BNS name registrations, under a new prefix
(<code class="inline">APS1</code>). One record per app: name, description, icon,
version, APK / installer SHA-256, and the signing-cert fingerprint the client
must match on install. Payload is a hash — the full manifest lives on Sia.</span></li>
<li><b>Anyone can list. That's the point.</b>
<span>Publishing a listing costs a small on-chain fee and needs no permission.
Removing something you don't own is impossible. Store operators — if they exist
— curate what they <i>surface</i>, they don't gatekeep what <i>exists</i>.</span></li>
<li><b>Reviews are signed endorsements you filter.</b>
<span>An endorsement is a signed on-chain statement: "I, <code class="inline">alice.bch</code>,
vouch for app X." Your client filters endorsements by trust lists you subscribe
to — a security researcher's list, a friend's, your own. A one-star review from
a bot you don't follow simply doesn't render. Token-curated registries and
formal reputation come later.</span></li>
<li><b>Install verifies against the chain.</b>
<span>The Ariadne client pulls the APK from wherever the listing says (Sia,
server, mirror), checks the SHA-256 against the on-chain record, checks the
signing cert against the fingerprint in the record, and only then installs.
Same principle as verifying a website: the chain is the truth, not the mirror.</span></li>
</ol>
</section>
<section>
<h2>Where it fits</h2>
<div class="grid">
<div class="card">
<h3>The frontend <span class="src s-sia">.bch site</span></h3>
<p>Browse, search, and read the listing pages in any browser via the
<a href="../nav/#relay">relay</a>, or natively in <a href="../nav/#theseus">Theseus</a>
and <a href="../nav/#android">Ariadne</a>.</p>
</div>
<div class="card">
<h3>The listings <span class="src s-chain">on chain</span></h3>
<p>Records under the <code class="inline">APS1</code> prefix, indexed by the same
Argus engine that already reads BNS. Adding the record type is a small change,
not a new blockchain.</p>
</div>
<div class="card">
<h3>The verified install <span class="src s-chain">via Ariadne</span></h3>
<p>Mobile-track slice: an "install with on-chain hash + cert verification" flow
inside the Ariadne Android app. That's the reason the store frontend and the
resolver ship as one story.</p>
</div>
</div>
</section>
<div class="note warn"><b>Status: designed, not built.</b> The proposal lives in
<code class="inline">_coordination/sessions/mobile-resolver.md</code>. A protocol
addition (<code class="inline">APS1</code> record type) and a frontend track are the
two open pieces. The trust-list review system starts permissionless; formal token-
curated registries are a Phase 2 conversation, not a launch requirement.</div>
</div>
<footer>
<div>Silent Mode — a Deviant project.</div>
<div class="fine">Not yet built. The listing model is decided; the review model starts
simple (client-side trust lists) and formalizes only if the simple version proves
insufficient in practice.</div>
</footer>
</body>
</html>