Introduction
Kleem is an encrypted messenger, a self-custodial wallet, and a gateway to Base — with no account behind any of it. It runs on a distributed network: no company in the middle, no server holding your history.
These docs cover the whole surface, from sending a first message to running a node. Every part is open source; nothing here asks you to trust a claim you can't verify in the code.
- No phone number, no email, no sign-up
- End-to-end encryption on by default
- Keys, messages, and funds live on your device
Quickstart
Clone the client, build it, and run it locally.
Prefer a packaged build? Every platform is on the Download page — no toolchain required.
Installation
Kleem ships for mobile and desktop. Grab a signed build and verify the checksum before you run it.
- iOS — iPhone / iPadOS 16+
- Android — Android 9+, APK
- macOS — Apple Silicon and Intel
- Windows — Windows 10+, x64
- Linux — AppImage and deb
Create your identity
There is no registration. On first launch, Kleem generates a keypair on your device. That key is your identity — it is created locally, stored locally, and never transmitted.
Back up your recovery phrase somewhere safe. It is the only way to restore access; no one can recover it for you.
Your first message
Add a contact by their key, or scan a code, and start talking. Every message is sealed end to end.
Keys & identity
Your identity is a cryptographic keypair. The public key is your address; the private key never leaves your device. You can run several identities, cleanly separated, and put a human-readable name on top of any of them.
- Generated and stored on-device
- Chat keys and wallet keys are separate
- Portable across every device you own
Encryption model
Every message is encrypted against the recipient's key before it leaves your device. No relay in the middle holds a readable copy. Keys rotate as you talk, so a key exposed today does not unlock what you sent yesterday.
- End-to-end by default, not optional
- Forward secrecy through key rotation
- Open source — the whole path is auditable
The mesh network
Every client is a node. Messages hop peer to peer with no central relay. Remove any node and traffic routes around it — there is no single point to block, seize, or switch off. If a recipient is offline, peers hold the fragments until they return.
Message lifecycle
Four moves carry a message across the network without a center.
- Seal — encrypted on your device against the recipient's key
- Shard — split so no single hop carries the whole
- Route — passed peer to peer; held for offline recipients
- Open — only the recipient's key reassembles it
Self-custody
Self-custody cuts both ways. No one can seize your keys or read your messages — and no one can restore them for you. Your backup is the only backup. Guard the device the way you guard the keys; encryption protects the message, not a compromised phone.
Wallet on Base
Kleem includes a self-custodial wallet built on Base. Only your keys move your funds. Hold B20 tokens and collectibles, with room for more L2 networks over time.
Sending & receiving
Send and receive without leaving the conversation. Value moves inside the chat you're already in; every transfer is signed by your key.
Swaps
Swap between tokens without handing custody to a third party. Routing weighs gas before it moves so you're not overpaying to settle.
Token-gated spaces
Communities open with a token — $KLEEM or your own — and are run by the people inside them. Entry, roles, and rules are set by members, not granted by a platform that can revoke them.
Roles & governance
Set roles and permissions per space. Governance and treasury tie back to the token, so the people holding it steer the community's direction.
$KLEEM overview
$KLEEM is the network token: governance, access, and settlement, issued on Base. It is held by the people who use the network and directed by them.
Contract & addresses
The token contract will be published here on deployment. Always confirm the address against the official channels before interacting with it.
SDK
Embed messaging and wallet flows into your own app. Generate an identity, join the mesh, send messages, move value.
Run a node
Running a node relays traffic, holds messages for offline peers, and makes the network harder to disrupt. The more nodes, the more resilient the whole.
Contributing
Everything is open. Read the code, open an issue, send a pull request.
- Fork the repo and branch from main
- Build and run the test suite
- Open a PR with a clear description
Architecture
The repo is split by responsibility. Start in client/ for the encryption path.
FAQ
Do I need a phone number? No. You generate a key; that is your identity.
Where are my messages stored? On your device. They pass through the network encrypted and are not kept on any server.
What if I lose my keys? Access is gone. There is no copy for anyone to restore. Back up your recovery phrase.
Who runs the network? The people using it. There is no central operator.
Security disclosure
Found a vulnerability? Report it privately through GitHub security advisories rather than a public issue. Responsible disclosure is rewarded, not punished. Independent audit reports are published as they complete.
Changelog
- v2.38 — mobile browser, private notifications, new L2 networks, faster cold start
- v2.37 — community roles, swap routing on Base, lower battery use
- v2.36 — cross-device identity sync, per-chat disappearing timers