Skip to content

WissCore/moldchat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MoldChat

Speak freely. Secure messaging app, by design.

MoldChat

License Release CI OpenSSF Scorecard Security policy


Status

Pre-alpha. Design is being formalised. No production users. No protocol audit yet. Do not rely on MoldChat for life-and-limb threat models until at least one independent cryptographic audit is published.

What this is

MoldChat is an end-to-end encrypted messenger built around one rule: the traffic should look like ordinary HTTPS browsing on the wire. Everything else — protocol choice, server architecture, distribution model — is derived from that rule.

MoldChat is built for people living under censorship and repression — journalists, human-rights defenders, and ordinary people whose safety depends on anonymity. Authoritarian governments do not stop at physical coercion of their citizens: they take control of civilian communications, block resources, throttle access, and outlaw the services the rest of the world uses. MoldChat is a messenger that stays invisible to those systems.

Threat model in one paragraph

A passive network observer should not be able to identify a MoldChat user from traffic patterns alone. An active probe against a MoldChat server should not yield a positive identification. A compromised server should not reveal useful metadata about communication patterns. A compromised device should not reveal plaintext message history. Compromise of one endpoint should not retroactively decrypt prior sessions, nor indefinitely decrypt future ones.

A complete and current threat model lives in docs/specs/.

Architecture in one diagram

Android (Kotlin)               Server (Go)               iOS (Swift)
    |                              |                         |
    | libsignal-android            |                         | LibSignalClient
    | (E2E crypto, on device)      |                         | (E2E crypto, on device)
    |                              |                         |
    | sealed envelope ----->  per-contact queues  <----- sealed envelope
    |                         (opaque blobs only)            |
    |                              |                         |
    | SQLCipher + Keystore         | SQLite + Litestream     | SQLCipher + Keychain
    |                              | + Xray (REALITY)        |

The server holds opaque ciphertext blobs addressed by queue ID. It does not see senders, recipients, contents, social graphs, or message timing semantics beyond what is required for delivery. Crypto runs only on clients.

Repository layout

apps/android/         Android client (Kotlin + Jetpack Compose)
apps/ios/             iOS client (Swift + SwiftUI)
server/               Go server (single Go module)
docs/                 Architecture decisions, RFCs, protocol specs
deploy/               Docker, systemd units, deployment manifests
scripts/              Build, release, maintenance scripts
tools/                Code generation, dev utilities
.github/              CI workflows, issue templates, CODEOWNERS
.well-known/          security.txt and similar

Build from source

Toolchain is pinned via mise. After cloning:

mise install

Then per platform:

Component Command Output
Server cd server && go build ./cmd/moldd server/moldd
Android cd apps/android && ./gradlew assembleRelease apps/android/.../moldchat.apk
iOS cd apps/ios && xcodebuild ... apps/ios/build/MoldChat.ipa

Detailed build instructions, including reproducible-build flags, are in docs/build.md (TBD).

Documentation

Security

If you believe you have found a security issue, do not open a public issue. Use GitHub Private Vulnerability Reporting or write to alan@wisscore.com. Full policy: SECURITY.md.

Contributing

Contributions are welcome. Read CONTRIBUTING.md first. All commits must carry a DCO sign-off (git commit -s).

Community

Support the project

MoldChat is free and will remain free. If you want to help us cover infrastructure and development:

License

Copyright © 2026 Alan Wiss and MoldChat contributors.

Released under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE.

Acknowledgements

MoldChat stands on top of work by people who built and audited the cryptographic primitives we rely on:

We do not invent cryptography. We integrate vetted libraries and we tell you which ones.

Packages

 
 
 

Contributors

Languages