Night Drop

app.nightdrop
by Zapstore _@zapstore.dev

Anonymous, end-to-end encrypted 1:1 chat over Tor

Republished from GitHub / F-Droid by the Zapstore main account.

Night Drop is a privacy-first 1:1 messenger. Like a night deposit box: every message is a sealed envelope, dropped for one person only, opened by no one in between. * Anonymous identities only — no phone number, no email, no account. Your identity is a keypair held on your device. * End-to-end encryption with the Signal Double Ratchet: only the sender and receiver can read a message. * Peer-to-peer over Tor by default. There is no clearnet path — the only network egress is the Tor network. * Local-first storage: messages live on your device. Optional server storage is opt-in, capped at 24 hours, and shows a persistent warning in the chat while active. * An untrusted store-and-forward relay carries offline delivery only. Any relay ever holds nothing but opaque, already-encrypted blobs under unlinkable handles — no keys, no plaintext, no identities, no logs. * Authorization before the first message: a stranger cannot message you until you approve them (scan a pre-authorized QR, or exchange a short code whose secret words block a man-in-the-middle). * Safety-number verification (scan or compare) to confirm no one is in the middle. * User-owned encrypted backups: the recovery password is generated on your device, shown once, and never sent to any server. Lose it and the backup is unrecoverable — by design. * No analytics, no crash reporters, no ad SDKs, no Google Play Services, and no third-party push service. * No automatic update check on F-Droid installs. Other builds (sideloaded, or the desktop AppImage, which have no update channel of their own) ask the Night Drop onion site over Tor, at most once a day, whether a newer version exists — and only tell you. The app never installs anything, and does not hold the permission that would let it. Night Drop is free software (AGPL-3.0-or-later) and built to be reproducible: anyone can rebuild the release from source and confirm it matches, byte for byte.

First release: Aug 16, 2026, 9 total releases.

Most recent release: Oct 28, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Oct 28, 2026 0.2.1
    ## A security update 0.2.1 is 0.2.0 with its dependencies updated for security advisories published in October. **Update when you can.** Nothing changes in how you use the app, and 0.2.1 talks to 0.2.0 normally. - **Compromised certificate authorities are no longer trusted.** In October, several intermediate certificate authorities from eMudhra (emSign) were found to have weak keys, letting someone on the network path forge certificates for any site. The Rust TLS components (`rustls-webpki`, `webpki-roots`, `webpki-root-certs`; RUSTSEC-2026-0381, -0382, -0383) now refuse them; the app uses them for "Get bridges" and for WebTunnel bridges. Flutter is updated to 3.47.8 (Dart 3.13.7, GHSA-frr6-h895-5pxp), which refuses them too; the app makes no TLS connections from Dart, so this is precautionary. Your messages themselves go over Tor with end-to-end encryption, which never relied on these authorities. - **Constant-time fixes in a cryptographic helper** (`ctutils`, RUSTSEC-2026-0385). - **`tokio`** updated past an unsoundness advisory (RUSTSEC-2026-0386). `crypto-bigint` 0.5 (RUSTSEC-2026-0387) appears in the lockfile but is compiled into no Night Drop binary; the reasoning is in `.cargo/audit.toml`.
    More…
    ## Verifying Every binary is signed with the release key and listed in `SHA256SUMS`, itself signed. See `SECURITY.md` for the full verification steps; `nightdrop-signing-key.asc` is attached. The AppImage also carries an embedded signature, and `Night_Drop-x86_64.AppImage.zsync` lets AppImage update tools fetch only what changed. The per-processor APKs are reproducible: F-Droid rebuilds them from this tag and checks they match. `NightDropSetup.exe` is not code-signed, so Windows SmartScreen may warn about an unknown publisher; check it against `SHA256SUMS` and its `.asc` signature before running it.
  • Oct 18, 2026 0.2.0
    ## The relay is optional When both people are online, messages always went device to device; the relay only held sealed messages while you were offline. In 0.2 the Night Drop relay is an ordinary entry in your relay list: keep it, add your own (up to four), remove ours, or use **direct only** with no relay at all. Then nothing about your messages touches a server, and you pair by QR code — your invite carries a key that lets one person send you one chat request, for one day. On direct only, messages wait on the sender's phone until you are both online, so a contact can tell roughly when you come online; the app says so where you choose it. With a relay, it can no longer link messages from different contacts: each chat has its own mailbox, under an address that changes daily. ## 0.2 cannot message 0.1 **Update, and ask your contacts to update.** Contacts still on 0.1 are told, in their own app's format, that you have updated; your messages to them wait until they do.
    More…
    ## New - **Screenshots and screen recording are blocked by default** (Android). If a contact blocks them, they are blocked in your chat with them too, and the chat says so. You can still allow screenshots in one chat — for instance to keep evidence — and the contact is told. Where the block is off, each screenshot or recording is reported to the other person. - **Invites are shared without the clipboard**, through the system share sheet; a copied link is marked sensitive and cleared after a minute. - **"Network changed — reconnecting to Tor"** shows while Tor rebuilds its connections after a network switch. - **Photos and videos lose their location, camera model and time** before they leave your phone. - **Cover traffic is on by default** for new identities that use a relay. - **Windows download**: `NightDropSetup.exe`. - The disappearing-message timer applies to messages sent from then on; short codes use 64 words and ignore case and spaces. ## Security fixes - **Updates:** the update notice trusts only a signed manifest, which now expires, and offers only a strictly newer release. Signing keys can be rotated with offline recovery keys. - **Contacts' messages are bounded:** a contact can only add so much in a day, oversized fields are refused, and a claimed sender can no longer close a chat or swap its onion key. Replay, forgery and oversized-field tests and fuzzing cover it. - **Media:** no contact- or backup-chosen file names or paths; only a plain JPEG of sane size is drawn; a video that points outside itself is not opened externally; burned, unsent and deleted media are removed everywhere. - **On the device:** no app data in Android backups or device-to-device transfer; keyboards may not learn what you type; app-lock attempts are counted on disk with a growing wait; desktop data is private to your user; Linux writes no core dumps; Windows loads libraries only from the app's folder and System32, and is excluded from Error Reporting; links from other apps no longer route into the app. - **Tor:** only v3 onions are dialled; our onions ask their introduction points to rate-limit, and limit streams per circuit. - **The relay:** bounded memory and handles, every stored entry charged, idle and slow streams cut, large uploads cannot crowd out messages; it keeps no logs. - **Builds:** run in a sandbox with no network access to this machine and no release keys; the release key signs afterwards. No binary carries the builder's file paths. ## Verifying Every binary is signed with the release key and listed in `SHA256SUMS`, itself signed. See `SECURITY.md` for the full verification steps; `nightdrop-signing-key.asc` is attached. The AppImage also carries an embedded signature, and `Night_Drop-x86_64.AppImage.zsync` lets AppImage update tools fetch only what changed. The per-processor APKs are reproducible: F-Droid rebuilds them from this tag and checks they match. `NightDropSetup.exe` is not code-signed, so Windows SmartScreen may warn about an unknown publisher; check it against `SHA256SUMS` and its `.asc` signature before running it.
  • Oct 7, 2026 0.1.28
    ## Tor blocked? Get bridges in one tap The bridges screen has a new button: **Get WebTunnel bridges from the Tor Project**. It asks the Tor Project's bridge service for bridges that work in your country, optionally for a country you choose, and adds them to the list for you to save. Because it exists for when Tor is blocked, this one request **does not go through Tor**. The app asks before sending it, and says so. It goes only to the Tor Project's service, through a content-delivery network so it is hard to block, with a browser-like connection; **nothing is sent to Night Drop**. Everything after, including all your messages, goes through Tor as always. ## Security updates - **Tor** (arti 0.43 → 0.47): the Tor Project's security fixes from four releases, among them two denial-of-service fixes, a directory server no longer able to stall updates, and fixes for memory exhaustion. - **Encryption** (vodozemac 0.8 → 0.11): refuses malicious key values that could weaken a session's shared secret, and checks signatures strictly. Your existing chats keep working, including with contacts still on 0.1.27 or older; we tested both directions.
    More…
    - **TLS** (rustls 0.23.45), **image decoding** (Flutter 3.47.6, which updates libpng), and the database Tor uses (SQLite 3.53). ## Less background data The app used to ask the relay for its list of Night Drop relays every few minutes. It now fetches that signed list from our website once a day, over Tor, and asks the relay only if the site cannot be reached. In our overnight test on a phone, background upload fell to about half of 0.1.27's. ## Smaller fixes - **Desktop:** the update check now runs while the app stays open (it used to check only at start-up), waits for Tor first, and retries a failed check a few hours later instead of a day. **If you are on 0.1.24–0.1.27 and keep the desktop app open for days**, your version still only checks at start-up: restart it, or use **Check for updates** in the menu, to get this one. - **Windows:** emoji, including the ghost on the chat list, show again; they were blank. ## Night Drop 0.2 is coming **0.2 and 0.1 apps won't be able to message each other.** Update when 0.2 arrives, and ask your contacts to update too. ## Verifying Every binary is signed with the release key and listed in `SHA256SUMS`, itself signed. See `SECURITY.md` for the full verification steps; `nightdrop-signing-key.asc` is attached. The per-processor APKs are reproducible: F-Droid rebuilds them from this tag and checks they match. `NightDropSetup.exe` is not code-signed yet, so Windows SmartScreen may warn about an unknown publisher; check it against `SHA256SUMS` and its `.asc` signature before running it.
  • Oct 3, 2026 0.1.27
    ## Much less background traffic and battery A bug in the Tor library Night Drop uses (arti) made the app re-publish its onion address more and more often the longer it ran: after a day, hundreds of uploads an hour instead of a few. Night Drop now ships a fix for it. In our overnight test on a phone, its background upload traffic dropped by about 70% and its battery use by about 40%. The fix has been reported to the Tor Project. ## Night Drop 0.2 is coming 0.2 changes how messages are delivered, and **0.2 and 0.1 apps won't be able to message each other.** This version tells you so on the home screen, and starts letting each app tell its contacts which version it runs, so 0.2 can show you which of your contacts still need to update. Update when 0.2 arrives, and ask your contacts to update too. ## Desktop: updates download the right file
    More…
    On Linux and Windows, "Download update" fetched the Android APK instead of the desktop build. It now saves the AppImage (marked executable) or `NightDropSetup.exe` to your Downloads folder, checked against the published hash first. **Installs of 0.1.26 or older still download the APK**: update those once by hand, from the website or this page. ## Verifying Every binary is signed with the release key and listed in `SHA256SUMS`, itself signed. See `SECURITY.md` for the full verification steps; `nightdrop-signing-key.asc` is attached. The per-processor APKs are reproducible: F-Droid rebuilds them from this tag and checks they match. `NightDropSetup.exe` is not code-signed yet, so Windows SmartScreen may warn about an unknown publisher; check it against `SHA256SUMS` and its `.asc` signature before running it.
  • Sep 30, 2026 0.1.26
    ## Private mailboxes for offline messages When someone is offline, messages wait for them on a relay. Until now every message for a person went into one mailbox, under an address that never changed, so a relay (or anyone who seized one) could see that messages from different people, on different days, were all for the same person. From 0.1.26, each chat agrees its own secret with the other side and drops offline messages in its own mailbox, under an address that changes every day. Your phone collects them in small groups over separate Tor connections, padded with mailboxes that do not exist. A relay can no longer link messages from different contacts, or from different days, to the same person. What a relay can still see is spelled out in `SECURITY.md` and on the website's limits page: messages in one chat on one day belong together, and the mailboxes your phone collects as one group (about seven contacts at most) share a reader. To keep those groups small, Night Drop now allows up to **50 contacts**, and says why when you reach the limit. ## Contacts on older versions
    More…
    Chats with someone still on 0.1.25 or earlier keep working in both directions, on the old fixed address, and show a notice asking them to update. **Offline messages with older versions will stop working two releases from now.** Messages sent while both of you are online are not affected. ## Also - **A message could stay "Held for delivery" after it arrived.** The delivery receipt could be written into a Tor connection whose other end had already gone, and was lost without an error. Receipts now open a fresh connection, and fall back to the relay when the other side is unreachable. - **Notifications show sooner.** A new message is shown before its delivery receipt is sent, not after. - **Background checks use less battery.** In the background, the app checks the relay every 5 minutes instead of every minute. - **Windows (new):** `NightDropSetup.exe` installs Night Drop for your user account, no administrator rights needed; Windows 10 or later, 64-bit. It is not code-signed yet, so Windows SmartScreen may warn about an unknown publisher: check it against `SHA256SUMS` and its `.asc` signature before running it. Uninstalling keeps your identity and chats. Tor over bridges, which used to hang on Windows, now works. ## Verifying Every binary is signed with the release key and listed in `SHA256SUMS`, itself signed. See `SECURITY.md` for the full verification steps; `nightdrop-signing-key.asc` is attached. The per-processor APKs are reproducible: F-Droid rebuilds them from this tag and checks they match.
  • Sep 28, 2026 0.1.24
  • Sep 27, 2026 0.1.25
    ## Stays reachable on fast connections After running for a while on a fast connection, Night Drop could become unreachable: contacts' messages stopped arriving directly, and it took minutes (or forever) to come back online after a restart. The cause was in how the Tor library learns its circuit-build timeout. It learns only from the connections that succeed, so on a fast link the timeout kept shrinking — to about half a second — until ordinary connections were being abandoned. Each abandoned connection counted against the Tor entry relay it used, and once enough had, that relay was disabled for good. With none left, the app could not publish its address at all. The timeout now has a two-second floor, which stops the spiral without slowing anything down. If your app has been slow to come online, this release fixes it going forward. ## Also
    More…
    - **A stalled connection can no longer freeze delivery.** If a Tor connection stopped moving mid-transfer, sending and receiving could stop until the app was restarted. Connections that make no progress for 60 seconds are now dropped and retried. - **Offline messages are stored on the relay once**, not twice. The relay was being counted twice under two names, doubling both the copies and the mail checks. - **An unopened burn message that expires now leaves a marker** ("Burn message expired unopened") instead of vanishing silently. - **Donations**: Bitcoin, through a silent payment address (each payment lands at a fresh output, so donations cannot be linked to each other or to the address), and Zcash. ## Verifying Every binary is signed with the release key and listed in `SHA256SUMS`, itself signed. See `SECURITY.md` for the full verification steps; `nightdrop-signing-key.asc` is attached.
  • Sep 22, 2026 0.1.22
    ## Tor over WebTunnel, when the network blocks it If your network blocks Tor, Night Drop can now use a **WebTunnel bridge**: Tor carried inside ordinary HTTPS to a normal-looking web server. Add one under **Bridges** — now reachable *before* you create an identity, which is when you are most likely to need it. Previously the editor sat behind the home screen, which you could only reach with a working identity, which needed a working Tor bootstrap. **What this is tested against, and what it is not.** It is tested against a network that blocks Tor by address, with a control confirming direct Tor could not build a single circuit; and against an intrusion-detection system carrying 52,311 public signatures, over a thousand of them for Tor, which raised nothing and saw only ordinary TLS. It has **never been run from inside a country that filters this way**, and public tooling is a far weaker adversary than a national firewall. One property is not disguised at all: the **shape** of the traffic. A connection that pulls tens of megabytes while sending very little does not look like reading a web page, however ordinary the handshake is. If being identified as a Tor user is itself dangerous where you are, do not rely on this alone. ## Fixes - Repeatedly tapping reconnect could leave the app offering to set up a new identity **over an existing one**. Launching is no longer re-entrant, and creating an identity now refuses to displace saved data unless the recovery screen asked for it. - The sealed onion key now travels with the state file it unseals, so recovering a set-aside identity keeps its `.onion` address instead of coming back on a new one.
    More…
    - A native library that fails to load reaches the error screen instead of leaving the splash on screen for ever. ## Verifying Every binary is signed with the release key and listed in `SHA256SUMS`, itself signed. See `SECURITY.md` for the full verification steps; `nightdrop-signing-key.asc` is attached.
  • Aug 16, 2026 0.1.21