Skip to content

decentrathai/zchat-android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZChat — Private Messaging on Zcash

ZChat is a privacy-first messaging app built on the Zcash blockchain. Every message is a shielded transaction — censorship-resistant, end-to-end encrypted, and requiring no phone number, email, or server registration.

Built on top of Zashi (the official Zcash Android wallet) using the Zcash Android SDK.

Features

  • Private messaging — Messages stored in Zcash shielded transaction memos (encrypted on-chain)
  • ZMSG Protocol v4 — Custom memo encoding with conversation IDs for reliable threading
  • Message chunking — Long messages split across multiple outputs in a single atomic transaction via ZIP321
  • End-to-end encryption — Optional E2E layer: ECDH (P-256) + HKDF + AES-256-GCM with authenticated key exchange
  • Group messaging — AES-256-GCM group encryption with ECIES per-member key distribution
  • Reactions, read receipts, replies — Rich messaging features encoded in memo fields
  • Time-locked messages — Timestamp, block-height, payment-gated, and answer-gated messages
  • Payment requests — In-chat ZEC payment requests
  • Contact book — Local contact management with aliases
  • Notifications — Background sync with custom sound, vibration, and privacy levels
  • Full Zcash wallet — Send, receive, and manage ZEC (inherited from Zashi)
  • Keystone hardware wallet support
  • No servers, no accounts — Your Zcash address is your identity

Download

ZChat is currently available by invite through the whitelist program.

Request access and download at zsend.xyz

After whitelist approval, you can download the latest APK from the site.

You can also build from source — see Setup Documentation below.

Protocol Specification

ZChat uses the ZMSG Protocol for encoding messages in Zcash transaction memos. See the full spec: ZMSG Protocol Specification

Tech Stack

Component Technology
Language Kotlin 2.1.10
UI Jetpack Compose + Material3
Wallet SDK Zcash Android SDK 2.4.3
Encryption Google Tink + custom ECDH/AES-256-GCM
DI Koin 4.0.2
Background sync WorkManager + ForegroundService
Min Android 8.1 (API 27)

Reporting an Issue

Please file issues on this repository: GitHub Issues

For general Zcash questions:

Building from Source

See Setup Documentation to compile ZChat from source.

Architecture

ZChat adds a messaging layer on top of Zashi's wallet functionality. The core wallet engine (key derivation, transaction construction, syncing) is unchanged from the Zcash Android SDK. ZChat-specific code lives in:

ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/chat/
├── model/          — ZMSG Protocol, data models, address cache
├── viewmodel/      — Chat logic, compose screen, groups
├── view/           — Compose UI screens
├── crypto/         — E2E encryption (ECDH, AES-256-GCM, ECIES)
├── usecase/        — ZIP321 multi-output transaction creation
├── datasource/     — Contact book, preferences, address cache
└── util/           — Utilities

Acknowledgments

ZChat is built on the exceptional work of the Electric Coin Company and the Zcash ecosystem. Core wallet functionality is provided by the Zcash Android SDK and librustzcash.

License

This project is a fork of Zashi Android and inherits its license terms. ZChat-specific additions (ZMSG Protocol, chat UI, encryption layer) are developed by Decentrathai.

About

ZCHAT - Privacy-first messaging app built on Zcash blockchain

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages