Frequently Asked Questions
Everything you need to know about ZChat, privacy messaging on Zcash, and how to get started.
Privacy & Security
ZChat is an encrypted messenger built on Zcash. Your identity is a Zcash address, so there is no phone number, no email, and no account to register. Every message is end-to-end encrypted on your device, and you choose per conversation how it travels: Shielded puts the message in a memo inside a Zcash shielded transaction, so nothing but the Zcash network carries it; Tunnel anchors the conversation with one shielded on-chain handshake and then sends free over NOSTR; Open is free encrypted chat over NOSTR from the first message. Tunnel or Open is the default for a new conversation, so Shielded is the strongest option rather than the automatic one. In Shielded mode you inherit what the Zcash protocol provides — hidden sender, hidden receiver, hidden amount, and an encrypted memo.
Signal and WhatsApp encrypt message content, but both require a phone number, and their servers still see who is messaging whom, when, and how often. ZChat needs no phone number, no email, and no account. In Shielded mode the message is a Zcash shielded transaction, so sender, recipient, and amount are hidden by the protocol and no server of ours carries the text (attachments are the exception in every mode, and go to a third-party media host). In Tunnel and Open modes an encrypted envelope travels over NOSTR relays, which see a recipient key and a timestamp but never the sender and never the content. Signal, though, is mature and independently audited, and ZChat is early-stage software with no third-party audit, so Signal is still the right answer for most people.
No. Encryption and decryption happen on your device and your keys never leave it, so neither we nor any relay can read a message. What we do run is worth naming: a NOSTR relay that stores gift-wrapped messages and observes recipient keys and timing, never sender identity and never content; a TURN server that relays media for calls and therefore observes call metadata; and an API backend for the update check and the optional AI assistant, which logs client IP addresses on a seven-day retention window. The AI tab is opt-in, separate from messaging, and sends your prompt as plaintext to a third-party provider (Venice). In Shielded mode none of that carries your text — the message is a Zcash transaction. One carve-out applies in every mode: if you attach a file it is encrypted on your device, but the blob is uploaded to a third-party media host (Blossom/NIP-96), which sees your IP, the file size and the time; only the link rides in the message.
In Shielded mode, Zcash hides sender address, receiver address, and amount on-chain, and the memo carrying your message is encrypted. Off-chain there is more to say, so here it is. Our NOSTR relay sees the recipient key and the timing of a gift-wrapped message, never the sender and never the content, and holds it for thirty days. Two third-party relays, relay.damus.io and nos.lol, are used by default and cannot be turned off in the app today. Our TURN server sees call metadata by design. Our API backend logs client IP addresses for the update check and the optional AI assistant, kept for seven days. Network-level metadata is not hidden by ZChat — Tor support is built in but off by default, and some paths still bypass the proxy when it is on, so use a VPN or system-level Tor if your threat model needs it. See our Security page for the full threat model.
Yes, and both repositories are MIT licensed. github.com/decentrathai/zchat holds the backend, the landing page, and the Rust wallet-core; github.com/decentrathai/zchat-android is the Android client, forked from Zashi, the Electric Coin Company wallet published under MIT (that upstream has since been renamed and now lives at github.com/zodl-inc/zodl-android). Nothing in the client is proprietary, and there is no closed component you have to trust for messaging to work.
No. ZChat has never had a third-party security audit. It is experimental software, and we recommend against relying on it for high-stakes communication until that changes. An audit has been requested from the OTF Security Lab and is pending a decision; our own timeline targets Q4 2026, then remediation across a 90-day responsible-disclosure window, then publication of the report in full. The Zcash protocol itself has been audited, but ZChat’s application layer has not.
Getting Started
Download the signed Android APK from our download page or from GitHub Releases — no email, account, invite code, or waitlist. Before installing, verify the certificate fingerprint with apksigner; it is permanent and never changes between versions. Then sideload it on an Android device. The download is roughly 100 MB, most of that the bundled Zcash proving parameters. ZChat is not on Google Play, the App Store, F-Droid, or any other store, and nothing has been submitted to one; store distribution comes after the audit.
No. ZChat requires no phone number, no email, and no personal information, and there is no account to create. Your identity is a Zcash address derived from a BIP39 seed phrase, and the seed never leaves your device.
The app is free, and so is messaging in Tunnel and Open modes, which travel over NOSTR. Only Shielded mode costs anything: each on-chain message pays the Zcash network fee plus a fixed 1000-zatoshi (0.00001 ZEC) output to a project address, so you need a small amount of ZEC to use it. Tunnel spends one on-chain handshake to open a conversation, and everything after that is free.
Android only. There is no iOS build and no iOS code at all, not a line of Swift, so treat any iOS badge or coming-soon promise you find elsewhere as out of date. iOS is the clearest demand we have not met, and it is scheduled after audit remediation, with no date attached. There is no desktop app, and the old web client was retired in September 2026 because as built it was custodial in architecture.
Technical
ZMSG is ZChat’s message format protocol (currently v4). A message is a pipe-delimited frame, ZMSG|4|type|conv_id|sender_hash|payload, carried either inside a Zcash shielded memo or, in Tunnel and Open modes, inside a NOSTR event (NIP-17 private DMs, NIP-59 gift wrap over NIP-44). It supports message types including text, key exchange (KEX), reactions, receipts, replies, payment requests, status updates, and check-ins. See our Protocol page for the specification, which was last revised in April 2026 and still describes the on-chain layer only.
End-to-end encryption is always on, in every mode: ECDH key agreement on secp256r1 (P-256), keys derived with HKDF (RFC 5869, SHA-256), and AES-256-GCM, all over a ZChat ratchet. Group messages use ECIES for per-member key distribution, with epoch rotation on membership change. Shielded mode adds a second layer — the Zcash protocol encrypts the memo that carries the ciphertext. Two limits we would rather state than have you discover: our ratchet keeps a persistent root, so there is no per-message forward secrecy, and a full double ratchet is designed but not shipped; and first contact is trust on first use, where the signed key exchange binds a key to the address the sender reports rather than proving who they are. Compare safety numbers out of band with anyone who matters. None of this has been reviewed by an outside auditor.
Zcash shielded transaction memos are limited to 512 bytes, so in Shielded mode ZChat uses the ZMSG v4c chunking protocol to split a longer message across several memo outputs inside a single shielded transaction, which the recipient reassembles from their sequence numbers. It stays one transaction and one network fee, and the platform output is paid once; each extra chunk adds a dust output. Tunnel and Open modes carry the same frames over NOSTR and are not bound by the memo limit.
Yes. File and image sharing ships today, alongside group chat with signed admin controls, encrypted voice and video calls, reactions, replies, read receipts, disappearing messages, and time-locked messages. Media travels over NOSTR rather than the chain, through third-party hosts (Blossom and NIP-96) that are hardcoded in the app today, with no self-hosting option yet.
You lose access to your identity and message history. There is no recovery mechanism. Back up your seed phrase securely.
Comparisons
For most people, Signal is the better choice — it’s mature, independently audited, and widely used. ZChat is for people who want an identity with no phone number behind it, and the option of putting a message on-chain in a Zcash shielded transaction, and who are comfortable running software that has never been audited. See our Comparison page for a detailed breakdown.
Session routes messages through a decentralized onion network (Lokinet). ZChat can put a message on-chain as a Zcash shielded transaction in Shielded mode; in Tunnel and Open modes it carries the message over NOSTR relays instead, ours plus two third-party ones. Session has been audited and is more mature. ZChat offers tighter integration with Zcash payments. Both avoid phone number requirements.
Partly, and it depends on the mode. Shielded mode is the serverless one for message text: the message is a Zcash transaction, and the only thing between you and the chain is a lightwalletd server, which you can point anywhere in Settings, including at one you run yourself. Attachments are the exception even here — an encrypted file is uploaded to a third-party media host in every mode. Tunnel and Open modes ride on NOSTR relays, ours plus two third-party ones (relay.damus.io and nos.lol) that are on by default and cannot be turned off in the app today. Calls go through our TURN server, and the update check and the AI tab go through ZChat’s backend. lightwalletd is the only endpoint that is user-configurable; the relay, TURN, STUN, and media endpoints are hardcoded with no self-hosting path today. Making them configurable is on the roadmap, and we named it as a defect in our own audit scope.
Trust & Safety
ZChat was built for the first Zypherpunk Hackathon and won $600 in the Zcash track (winners announced December 2025). It is a one-person project, self-funded, with no grant funding to date. Development continues in the open, and the source is on GitHub under the MIT license.
Email [email protected] or report via GitHub at github.com/decentrathai/zchat/security. See our security.txt at zsend.xyz/.well-known/security.txt.