Decentralised, end-to-end encrypted messaging — built with Rust and XMTP.
xmes is an open-source messenger built on the XMTP protocol — a decentralised, blockchain-based messaging standard. Identities are Ethereum keypairs: no central server controls your account or your messages.
The project compiles a single Rust codebase to WebAssembly, targeting web (PWA), desktop, and mobile via Dioxus.
xmes/
├── xmes-xmtp-wasm/ # XMTP integration layer — WASM only, no UI
└── xmes-mobile-pwa/ # Dioxus Mobile PWA frontend — WebAssembly
The XMTP integration layer, compiled exclusively to WebAssembly. Wraps the libxmtp WASM bindings and exposes a clean Rust API. Responsibilities:
- Ethereum keypair generation and identity management
- Private key serialisation (hex) for local persistence
- Conversation listing and group creation via XMTP
- Worker infrastructure — spawns a Dedicated Worker so the XMTP SQLite database can use the OPFS Sync Access Handle VFS (browser main thread restriction workaround)
- Environment switching (Local / Dev / Production)
The Progressive Web App frontend fpr mobile devices built with Dioxus 0.7, compiled to WebAssembly. A pure UI crate: no JS interop, no wasm-bindgen direct dependency — only Dioxus and xmes-xmtp-wasm.
The landing page of Xmes.
- Rust
- Dioxus CLI:
cargo install dioxus-cli wasm32-unknown-unknowntarget:rustup target add wasm32-unknown-unknown
# Start the dev server (PWA) with hot reload
dx serve --addr 0.0.0.0 --port 9000
# Build for web
dx build
# Lint (automatically targets WASM via .cargo/config.toml)
cargo clippy
# Format
cargo fmtMIT — see LICENSE for details.
This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. This software is licensed under the MIT License.
-
Educational and Research Purpose: Xmes is an open-source, decentralized messaging client application built utilizing the XMTP protocol ecosystem. It is developed and provided strictly for research, educational, and demonstration purposes.
-
Independence from Infrastructure (XMTP Ecosystem): Xmes functions solely as a client-side interface (frontend). The developer(s) of Xmes do not own, operate, control, or maintain the underlying XMTP network, its nodes, its smart contracts, or any associated communication routing infrastructure. The developer(s) have no affiliation with the operational management of the XMTP network. Xmes does not operate any central servers and does not collect, store, intercept, or process personal data, communication metadata, or cryptographic keys.
-
Exclusive Client-Side Management and Data Storage: All cryptographic keys, identity credentials, and message payloads are managed exclusively client-side by the end-user. Any user-generated data, including cryptographic identities and local address aliases/contact names, is stored strictly within the user's local device storage (e.g. browser localStorage). No such data is ever transmitted to, stored by, or accessible to the developer(s). As no personal data is processed by the developer(s), the developer(s) do not act as a data controller or data processor within the meaning of the General Data Protection Regulation (GDPR / EU 2016/679). Users bear sole responsibility for ensuring that their own deployment and utilization of this software complies with all applicable local, national, and international laws, including but not limited to the GDPR.
-
No Financial Service: This software does not constitute a financial service, payment service, cryptocurrency wallet, exchange, or investment product of any kind. Any interaction with blockchain-based infrastructure (such as Ethereum-compatible addresses used by the XMTP protocol) is solely for the purpose of decentralized identity and messaging. The developer(s) provide no financial advice and assume no liability for any financial loss.
-
No Guarantee of Availability: The availability and functionality of Xmes depends on third-party infrastructure, including but not limited to the XMTP network and its nodes, over which the developer(s) have no control. The developer(s) make no guarantee regarding the continuous availability, reliability, or integrity of such third-party services, and assume no liability for any disruption, data loss, or inaccessibility resulting therefrom.
-
Limitation of Liability: In no event shall the developer(s) or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software, its deployment, or the use or other dealings in the software.