Skip to content

Repository files navigation

PrivaMesh for Android

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.

Install

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.

You pay the network, we do not

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.

App lock and the duress code

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.

Building

./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.

Tests

./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.

Layout

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.

Security

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.

Cryptography notice

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.

License

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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages