PrivaMesh is a private messenger with no servers and no accounts. Messages are encrypted end to end and travel as padded ciphertext on Solana, to a fresh one-time address each time. There is no phone number, no email and no database holding who talks to whom: your identity is a 12-word recovery phrase generated on the device.
Keys, contacts and message history stay on the phone. Nothing is uploaded, and nothing can be restored from us, because we hold nothing.
The APK is on the releases page. Android 8.0 or later.
It is not on Google Play. The build is signed with our own key, so Android will ask you to allow installing it.
Each message is a Solana transaction and costs about 10,600 lamports, roughly $0.0008. The app creates a fee wallet on first run and shows you its address; you fund it, and every message spends from it. No subscription, no relay in the path, no account with us to bill. When the wallet is empty, sending stops until you top it up.
An optional passcode locks the app, with an escalating cooldown after five wrong entries and biometric unlock if you want it.
You can set a second code. Entering it erases every message, contact and key on the device and returns the app to its first-run screen, with nothing on screen to show which code was typed. It cannot be undone, and it cannot reach the chain: ciphertext already published stays there, unreadable.
./gradlew assembleDebug
JDK 17 and the Android SDK, with local.properties pointing at it. The protocol
modules (core-crypto, core-chain, core-messaging) are plain JVM Kotlin with
no Android dependencies, so they build and test without the SDK.
./gradlew test
The crypto and transaction tests assert against vectors exported from the iOS app
rather than against our own output, so a change that breaks interoperability
fails here rather than on someone's phone. Instrumented tests need a device:
./gradlew connectedDebugAndroidTest.
| Module | What it holds |
|---|---|
core-crypto |
X3DH, Double Ratchet, stealth addresses, padding, envelopes, contact cards, X-Wing |
core-chain |
Transaction assembly, RPC client, fee wallet |
core-data |
Room entities and DAOs, Keystore-backed secret storage |
core-messaging |
Sessions, send and receive pipelines, stealth-chain scanning |
app |
The Compose app |
reference/ |
A read-only snapshot of the iOS source, which is the protocol specification |
docs/port-notes.md has the reasoning behind the port and the bugs it found.
Report vulnerabilities to privamesh@proton.me with security in the subject,
not as a public issue. Confirmed findings are paid; the policy, the scope and the
list of issues already reported and fixed are in
SECURITY.md.
There has been no independent security audit. The primitives are well studied, this implementation of them is not. What PrivaMesh does not protect you from is listed at privamesh.org/limitations.
This distribution includes cryptographic software. The country you are in may restrict the import, possession, use or re-export of encryption software. Check your own laws before using or redistributing it.
MIT. Use it, fork it, ship it, sell it. Keep the copyright notice.
The licence covers the code here. It is not permission to use the name PrivaMesh
or the logo for a fork. reference/swift-core/ is a snapshot of the
iOS client, under the same licence.