Grant Application - Zchat

Hi Zcash Community!

We’re Alex and Jason from ZCHAT, a Zcash-native messenger that turns the Zcash shielded pool into a private chat transport. ZCHAT gives users a self-custody Zcash wallet in the browser and lets them send DMs, group messages as shielded transactions with structured memos — “Telegram-style chat, Zcash under the hood.”


github.com/ZcashCommunityGrants/zcashcommunitygrants

Grant Application – ZCHAT
opened Nov 26, 2025
decentrathai
:clipboard: Grant Application :eyes: Ready For ZCG Review


The current ZCHAT MVP is already live as a web app for internal testing (Next.js + React + PWA) backed by a Rust/WASM light client and self-hosted zcashd + lightwalletd on mainnet. Today, a user can:

  • Create a self-custody Zcash wallet in the browser (seed never leaves the client).

  • Back up their seed and share their Unified Address as text or QR.

  • Sync via lightwalletd and see messages parsed from memos.

  • Send on-chain DMs by building and signing transactions in WASM and broadcasting through a lightweight Node.js backend.

  • Rotate addresses/wallets with UX that preserves conversations.

Our proposal is to take this from “developer-grade prototype” to a production-ready product that the broader Zcash community can safely use and build on. Concretely, we plan to:

  • Finish and harden the Rust/WASM light client (wallet-core): sync reliability, Orchard support, error handling, memo parsing, and tests.

  • Define and implement structured memo formats (ZMSGv1 for DMs, ZGRPv1 for groups, ZROTv1 for address rotation).

  • Make our Zcash infra production-ready: documented zcashd + lightwalletd deployment, monitoring, backups, and redundancy.

  • Add group chats and ship mobile builds by wrapping the PWA for Android/iOS.

  • Commission an external security review, publish docs, and run a polished hosted instance for early adopters.

We’re asking for a $60,000 grant, broken into four milestones through the end of 2026 (core wallet + infra, DMs & rotation & UX, groups & mobile, and finally security review + docs + public launch).


Nostr & additional privacy strengthening

Beyond “Zcash as transport,” we’re actively exploring how to plug ZCHAT into Nostr and other privacy-enhancing layers:

  • Using Nostr as an optional signaling/notification layer (e.g., contact discovery, message hints, or push-like notifications), while keeping actual message content and value transfer in Zcash shielded transactions.

  • Experimenting with ways to decouple network metadata (IP, timing, etc.) from Zcash usage by leveraging Nostr relays and other privacy-friendly transports.

  • Investigating additional privacy hardening for ZCHAT, such as better defaults for address rotation, minimizing linkable patterns (amounts, timing), and giving users more control over what infrastructure they connect to (self-hosted nodes, custom lightwalletd, Tor-friendly setups, etc.).

  • Access to ipfs storage of images and audio via Nostr

Our goal is to make ZCHAT not just “chat over Zcash,” but a flexible privacy-focused messaging stack that can evolve with the ecosystem and interoperate with other tools.


We’d really appreciate your feedback on:

  • The overall approach of using Zcash memos as the transport layer.

  • The proposed memo formats and address rotation semantics.

  • The Nostr integration ideas and other directions for strengthening privacy and metadata resistance.

  • What you’d consider must-have features for a first public release.

Thanks a lot for taking the time to read this and for any comments, questions, or concerns you’re willing to share! :folded_hands:

Alex
ZCHAT :rocket:

Hi, I’d like to bring your attention to this grant application thread: Zemo - Your Web3 Inbox

What are your thoughts on this?

Nice to see interest in Nostr integration for Zcash apps. I think using Zcash memos as a way of starting a chat with someone by sending a link to an ephemeral encrypted chat with a Nostr public key, and exchanging messages off-chain via a web or native app could be interesting. A recipient could then set a minimum cost to send a message to them, working as a way to filter out spam.

2 Likes

Would you be able to provide any examples of projects or open-source contributions that you’ve worked on in the past and could you comment on your tech background? Also what is your usage of LLMs?

2 Likes

Are you related to the 2024 ZECHUB Hackathon entry zchat?

I am skeptical of any pay-to-text system, as I just don’t think it will get much traction. Especially not with free encrypted messaging systems already available: Signal, Session, etc.

The address rotation is definitely interesting, a sort of frequency hopping radio for text messages, for extreme privacy minded folks and perhaps as an emergency back-up if Signal goes down for limited messaging.

1 Like

Thank you for submitting your proposal. After careful consideration by the ZCG and a period for community comments on the forum, the committee has decided not to advance this proposal.

We genuinely appreciate the work and dedication you put into your application and hope you’ll continue to participate and contribute to the Zcash community.

1 Like

Hey! Thanks a lot for your reply!
I was thinking about the flow when chain will be flooded by tonnes of messages but we’ll find a solution. It will not be micropayments only. One of the ways is to increase cost of message in case of chain overusege. Another option is to unite messages in to the batch but w’ll investigate it more in the future after internal testing of the current stage will be accomplished and will be available for public.
This option with spam avoid is also useful - thanks for sharing your thoughts!

LLMs are the basement of this project atm. Cursor, Claude Code and even Banana Pro with Veo 3.1 :slight_smile:
My background don’t include any open sourse projects - i’m mostly playing as project manager and founder. My team-mate @Jason is real developer but i’m unable to share his experience here -trust me it is more than enough for this kind of project. He and his company is developing browsers, LLMs, traditional web2.0 apps and some other stuff.

This project is driven by the feeling of protest against behaviour of the governments that cutting our rights and freedom - the only goal we have - to make private communication alive again!

My chat is my chat only!

Thank you!

  1. I’m not related to any previous projects with same name or service idea.

  2. I’m also sceptical about fast mass-adoption and so on but I’m sure that this messenger will be useful and necessary for people in many countries where state want to control every word of their citizens. And it will help us to grow and let people live and communice privately. I’m sure that we’ll find the solution or partnership that will allow us to have not only text. audio and images but direct online calls with high-eng quality

Thank you for the shielded tech and infra anyway :slight_smile:
We’ll proceed by ourselves then

keep an eye on zsend.xyz

We got a prize from Zypherpunk Hackathon :slight_smile:

ZChat Development Update – January 2026

Hey Zcash community! :waving_hand:

It’s been a busy weeks since we submitted our grant application, and I wanted to share what we’ve been building. Despite the ZCG decline, we’re still committed to making private messaging on Zcash a reality.


Quick Recap

ZChat is a messenger-first app that uses Zcash shielded transactions as the transport layer. No phone number, no email, no KYC - just a Zcash address. Your messages are cryptographically private, stored on the blockchain, and can’t be censored or shut down.

:link: Live demo: zsend.xyz


What We’ve Built Since December

:white_check_mark: Core Messaging (Complete)

  • Direct messages via Zcash memo field

  • Message threading with conversation IDs

  • Long messages with automatic chunking (>500 bytes)

  • Reactions, read receipts, and replies

  • Payment requests built into chat (ZIP-321)

:white_check_mark: Security Hardening (Just Completed)

We spent the last few weeks doing a serious security review and implementing critical fixes:

  • HKDF key derivation (RFC 5869) – replaced the weaker SHA-256-only derivation with proper HKDF. Backward compatible with existing conversations.

  • Authenticated key exchange (KEX) – new protocol with ECDSA signatures to prevent man-in-the-middle attacks during E2E setup.

  • ECIES for group keys – group invitation keys are now encrypted per-recipient using ephemeral keypairs (forward secrecy).

  • Group history loading – messages now persist and load from blockchain after app restart.

  • GROUP_LEAVE broadcast – when you leave a group, all members are notified.

:white_check_mark: Group Messaging (Working)

  • Create groups, invite members, broadcast messages

  • Shared symmetric key encryption

  • Group admin controls (in progress)

:white_check_mark: Special Message Types

  • Time-locked messages – unlock at a specific time, block height, or after payment

  • Remote wallet destruction – send a special transaction to wipe your device remotely (for at-risk users)


What’s Next: NOSTR Integration

We’re planning to integrate NOSTR as a supplementary layer for features that don’t fit well on-chain:

Feature Transport Status
Text messages Zcash shielded :white_check_mark: Done
File sharing (images) NOSTR + Blossom :soon_arrow: Planned
Audio messages NOSTR + Blossom :soon_arrow: Planned
Voice/video calls NOSTR + WebRTC :soon_arrow: Planned
Typing indicators NOSTR :soon_arrow: Planned

The idea: Zcash for privacy-critical data (messages, payments), NOSTR for real-time features (presence, files, calls).

Same seed phrase derives both identities, so users only manage one backup.


Addressing ZCG Feedback

The committee mentioned two concerns:

1. “Not a lot of engagement from the community”

Fair point. We were heads-down building. Going forward, we’ll:

  • Post monthly updates here

  • Share technical details for community review

  • Invite beta testers (see below)

  • Be more active in discussions

2. “Zingo has a similar product waiting for NU7”

We see this as complementary, not competitive:

  • Zingo = wallet with messaging as an add-on

  • ZChat = messenger that happens to use Zcash shielded solution

Different UX priorities. Zingo optimizes for sending ZEC; we optimize for conversations. Both approaches have value.

We’re also not blocking on NU7 memo bundles – our chunking protocol handles large messages today.


Hackathon Win :trophy:

We won a prize at the Zypherpunk Hackathon! Thanks to the judges and organizers. It validated that the community sees value in privacy messaging.


Call for Beta Testers

We’re looking for Android users willing to test the app and provide feedback:

  • Install from our APK available at zsend.xyz (not on Play Store yet)

  • Send messages, try groups, break things

  • Report bugs and UX issues

If you’re interested, reply here or DM me. We’ll add you to the testing group.


Technical Resources

For those who want to dig deeper:

  • Architecture overview: Our ZMSG protocol uses a simple pipe-delimited format in the memo field. Conversations are threaded by 8-char IDs, senders identified by 12-char address hashes.

  • E2E encryption: ECDH (secp256r1) + AES-256-GCM, with HKDF for key derivation.

  • Code quality: We follow strict TypeScript/Kotlin standards – sealed classes for state, Result types for errors, no any types, immutability by default.

Happy to share more technical details if there’s interest.


Funding

We’re self-funded for now, supplementing with hackathon prizes. We’re also exploring:

  • OpenSats (for NOSTR integration)

  • Human Rights Foundation Bitcoin Development Fund

If you know of other opportunities or want to support the project, let us know!


TL;DR

  • ZChat is alive and progressing :rocket:

  • Security hardening complete (HKDF, KEX, ECIES)

  • Group messaging working

  • NOSTR integration coming for files/calls

  • Looking for beta testers

  • Monthly updates from now on

Thanks for reading. Questions, feedback, and criticism welcome!

Transparency is a bug. :locked:

– Alex
ZChat | zsend.xyz


Previous posts in this thread:

1 Like

One thing I’ve been wondering about: how does ZCHAT handle spam?

If my wallet address becomes public, what stops someone from flooding my inbox with unwanted messages?

I’ve thought about this before, and the only viable solution I could come up with is an upfront initial contact fee. The idea:

  • Your ZCHAT address is public, but so is your “first message” fee

  • Anyone who wants to contact you for the first time must pay that fee

  • If you accept the contact, the fee is automatically refunded

Personally, I’d set mine to something like 1 ZEC. Intentionally high, because I don’t want to be contacted unless someone really needs to reach me. Others could set it lower depending on their preferences.

Is something like this on your roadmap, or do you have a different approach in mind?

1 Like

Just for context, there’s some prior art in this vein: https://www.zbay.app/

They ultimately switched from Zcash memos to P2P Tor-relayed messages due to the latency and overhead in generating (multiple) transactions per message.

1 Like

Thanks a lot!
We’ll investigate their case and I hope it will help us to avoid some problems. Personally I believe in shielded ZEC transactions only because validity of it’s cryptography is proven by ZEC market cap. I’m reading more and more about Zcash daily and I’m sure that it is ok to have a small delay (untill future updates) and to pay some zats for tx but to be sure that my chat is private as my thoughts.

Also we are not pretending to be the sole messenger on the device - it’s fine for me to use multiple APPs but I want to have Plan Z in case of any political and state-enforced turbulence and figting against my privacy.

And there are some other features that we’ll present too that will be useful.

”Transparency is a bug!”

Great question and I love the idea mate! We’ll definitely add this “first contact fee” concept to our next team discussion - it’s elegant and aligns perfectly with the economic spam deterrent philosophy.

Our current approach is simpler but works: you can mark any sender as spammer and their messages won’t appear in your chat list anymore. But here’s the fun part – if a spammer keeps sending you messages, you just keep receiving their zats! So basically, spam actually pays YOU. The more persistent they are, the more you earn :grinning_face_with_smiling_eyes:

Your idea takes it further with upfront gating, which makes sense for high-profile users who want to filter noise before it even reaches them. Setting 1 ZEC as “prove you’re serious” barrier creates natural quality filter without centralized moderation. Wow!

I think both approaches can coexist: your first-contact-fee for initial gatekeeping, and our block-but-keep-the-money for ongoing protection. We’re exploring this direction.

What I like most is that all these solutions are purely economic and user-controlled – no central authority deciding what’s spam and what’s not. You set your own rules, you keep your own money. No “report to admin” nonsense.

Every message costs sender something. Every blocked message profits receiver. Spam becomes economically irrational.

“Transparency is a bug!”

1 Like