Zapstore: The Permissionless App Store Built on Nostr
Zapstore: The Permissionless App Store Built on Nostr
We are done watching governments and corporations turn the internet into a surveillance panopticon. Your data is your sovereignty. Your keys are your freedom. Break the Digital Cage.
Google Play is a gatekeeper. It takes a 15-30% cut, demands real-name verification, kills apps for political reasons, and vacuums metadata on everyone who installs. F-Droid is better, but still centralized infrastructure with human maintainers who can be pressured.
Zapstore (zapstore.dev) is the cypherpunk answer: an open Android app store where identity comes from your Nostr key, trust is cryptographic plus social, and developers get paid in Bitcoin over Lightning — directly, no middleman.
What Is Zapstore
Zapstore is an open Android app store built on Nostr. Developers publish signed release metadata to relays; users discover apps, verify publishers, and install APKs from the original sources.
Key facts:
- Built with Flutter (mobile client). Listings and publisher identity sync from Nostr relays.
- APKs are verified (file hash plus signing certificate) before install.
- Direct APK distribution — the APK is downloaded from the original source URL, not a central CDN.
- No listing fees. No revenue share. No registration. Developers can receive Lightning tips directly.
- Nostr is the identity and metadata layer. The catalog is for Android apps broadly, not just Nostr apps.
Why It Matters
The app store is the single biggest chokepoint in mobile. Whoever controls distribution controls what you are allowed to run. Zapstore flips that:
- No gatekeeper. Trust comes from cryptographic signatures, social context, and reputation.
- No KYC. You publish with a Nostr key. No government ID.
- Sovereign payments. Zaps go straight from user wallet to developer via NWC.
- Censorship-resistant by design. Anyone can run a relay and publish their own catalog.
Architecture: It Is All Nostr Events
| Kind | Purpose |
|---|---|
| 32267 | App metadata (addressable app record) |
| 32268 | Release (version, APK URL, hashes) |
| 1063 | File metadata (icons, screenshots, APKs via Blossom) |
| 31990 | App stacks (curated collections) |
| NIP-C1 | Certificate linking — proof binding APK signing key to Nostr identity |
Your Nostr key signs the catalog events (who published). The Android APK signing certificate controls what updates on the device. Both matter.
Relay topology (named groups):
- AppCatalog: relay.zapstore.dev, purplepag.es
- social: relay.damus.io, relay.primal.net, nos.lol
- vertex: relay.vertexlab.io (DVM reputation / Web of Trust)
The Trust Model
When you publish for the first time, the relay checks your pubkey in order:
- Explicit allow list — Zapstore team plus early devs.
- Repository verification — repo contains zapstore.yaml with your pubkey; relay fetches it, verifies, whitelists you.
- Vertex reputation — enough social-graph standing (followers, activity, PageRank) = auto-whitelisted.
- Blocked — if none pass, rejected.
Pubkeys can be blocked for malware/spyware, data exfiltration, impersonation, or ToS violations.
Install-time verification
On install Zapstore checks: release event signed by dev Nostr key; APK hash matches downloaded file; if NIP-C1 present, APK cert matches linked proof. Any failure blocks install and explains why.
Decentralized catalogs
relay.zapstore.dev is the default, not the only. Anyone can run a relay and publish a catalog with different rules. Users can point Zapstore at any relay.
Publishing Your App
Use zsp (the Zapstore publishing CLI). Fastest path:
go install github.com/zapstore/zsp@latest
zsp publish --wizard
Supports APK sources from GitHub/GitLab/Codeberg/Gitea, F-Droid, local files, or direct URL. Sign with nsec, hex key, NIP-46 bunker (best for CI), or NIP-07. Whitelisting: commit zapstore.yaml with your pubkey, publish, relay verifies and whitelists. Certificate linking (NIP-C1) is a one-time step binding your APK signing key to your Nostr identity.
Lightning: Pay Developers Directly
Add a Lightning address to your Nostr profile. Users with a wallet connected via NWC tip from the app page. Payments go to you directly — no Zapstore processor. Recent versions added sign-in with Amber (NIP-55) and zaps via Nostr Wallet Connect.
How to Install Zapstore
- Download APK from https://zapstore.dev (SHA-256 checksum on-site).
- Allow installs from this source.
- Open Zapstore, optionally add your Nostr profile.
- Browse, search, install. Back up your app list across devices.
Gaps and Where 0xPrivacy Fits
- Centralized default relay. We need more independent catalogs plus IPFS/Blossom mirrors.
- Reputation centralization (Vertex). Web-of-trust should be multi-source.
- NoT opportunity. IoT devices discovering/updating firmware via Nostr catalogs — Zapstore is a blueprint.
- NIP-89 publishing. Publish Zapstore itself as a NIP-89 app handler so any client can surface it.
Break the Digital Cage
Every app that leaves Google Play is a link in the chain we are breaking.
brought to you by 0xPrivacy — https://0xPrivacy.online
Write a comment