Skip to content

Canopy

Install Canopy

Download Zapstore

Download
QR code for zapstore.dev/download
  • Scan the code with your phone’s camera
  • Tap Download anyway if the browser warns about the file
  • Allow your browser to install unknown apps if Android asks
  • Open Zapstore and finish the onboarding

Open Canopy in Zapstore

Open
QR code to open Canopy in Zapstore
  • Scan the code to open Canopy in Zapstore, or search for it there
  • Tap Install, and Download if Zapstore asks you to confirm the developer
  • Confirm in Android’s install dialog. Allow Zapstore to install unknown apps if Android asks

Claimed by the developer

Pete Winn cryptographically proved they hold the key that signs Canopy. The claim is a signed proof on Nostr, tied to the certificate below.

Developer
Pete Winn
Developer key
npub1jss47s4fvv6usl7tn6yp5zamv2u60923ncgfea0e6thkza5p7c3q0afmzy
Signing certificate
50b54aeaeedaa71d4a2e27625e75835fb4b9ab8544a8fa8dd49b58b13082685e
APK checked by
relay.zapstore.devIt read the APK and found it signed with this certificate before listing the release.
Claim published
Nov 12, 2026
Valid until
Nov 12, 2027
Proof event
b8c8eaa54ee35715eb18c59198cd093d36896852386ad80c4775a52eaae0a404in relay.zapstore.dev
How trust works

Native Nostr client featuring a reactive feed, profiles, threads, search, bookmarks, and media. It integrates with Amber for secure signing via NIP-55 intents, keeping identity keys separate from the app.

Canopy brings a reactive Nostr feed, profiles, threads, mentions, quotes, search, bookmarks, media and wallet settings to Android. Kotlin and Jetpack Compose provide a fully native interface; Amber signs using NIP-55 intents. Identity keys stay in Amber. NStack backup requires the browser bridge and is unavailable in the native Android app.

Summary generated by Zapstore from source.

Original description, as the developer published it.

Zap Canopy

Zapping anonymously. Sign in to zap with your identity.

Sats go to npub1jss47…0afmzy, the developer who signed the app’s certificate proof.

Amount in sats

Latest release

Nov 12, 2026

Claimed app No Google servicesSource available

It asks for no sensitive access.

Release notes

Full Kotlin/Jetpack Compose Android interface with native Flow state, verified relay transport, SQLite cache/search, Android navigation/pickers/sharing, Coil/Media3 media, and account-bound Amber Activity Results. Replaces the historical bundled React host. Includes following feeds, profiles/edit/follow, notes/replies/quotes/mentions, reactions/reposts, saved/discovery views, notifications, encrypted wallet settings and NWC/external-wallet zaps. Website remains intact. NStack backup remains browser-only.

Publisher updated to Pete Winn. Existing Android APK unchanged.

Comments

Loading comments…

See more

Get Canopy the private way

Updates checked on your device, and every release verified before it installs.

Get Zapstore for Android

  1. Tap Download APK below.Scan the code with your Android phone’s camera.
  2. If Android asks, allow your browser to install unknown apps.
  3. Open Zapstore and finish the onboarding.
Download APK

v2.0.4 · 71.2 MB · Android 10+

Verify the download

On a computer, run shasum -a 256 <the file you downloaded>. It should print: b13e01319fecf0b3ba1fd60132758bd0fa08a235836c52d44fddb412cf1b7137

If you have zsp, Zapstore’s publishing tool, zsp utils extract-apk <the file you downloaded> works too. Its hash should be the same SHA-256: b13e01319fecf0b3ba1fd60132758bd0fa08a235836c52d44fddb412cf1b7137

On the phone, AppVerifier should show this signing certificate: 99e33b0c2d07e75fcd9df7e40e886646ff667e3aa6648e1a1160b036cf2b9320

Source code All releases and notes

Get zsp

  1. Download the file for your computer.
  2. Make it executable and put it on your PATH.
  3. In your project folder, run zsp.

Have Go? This does the same:

go install github.com/zapstore/zsp/v2/cmd/zsp@latest
macOS, Apple silicon Linux, x86-64 Linux, arm64

v2.0.1 · macOS and Linux

Verify the download

On your computer, run shasum -a 256 <the file you downloaded>. It should print the SHA-256 for the one you chose.

macOS, Apple silicon · 18.6 MB 99018fb9744e5ace2b44557550dc333496239912c0e9b1137266d4922c803346

Linux, x86-64 · 23.8 MB 1ef5373f8ecd9ba63d2c3fab98abb0d31b2244a2aac31b3749fb205c7d5f5b38

Linux, arm64 · 22.1 MB e421005ee47cba58293dce4277bb784e4cfe706dbbcb8617d671629d0238be18

Source code All releases and notes