What is NiRoom
NiRoom is a private, end-to-end encrypted messenger built directly into the Nirmata wallet. It lets wallet holders exchange text messages and encrypted file attachments using nothing but their existing Nirmata address and alias — no separate account, phone number or email is required.
Unlike NirVeil, which publishes encrypted messages on the Nirmata blockchain, NiRoom is
an off-chain messenger. Ciphertext is relayed and temporarily queued by a self-hosted
store-and-forward service (niroom-node) that runs alongside the public nirmatad nodes.

The relay never sees plaintext and cannot decrypt messages or attachments — it only stores opaque ciphertext long enough to deliver it to the recipient's device(s).
End-to-end encryption
NiRoom uses a Signal-style protocol built from well-established primitives:
- X3DH-like key agreement. Each device publishes an identity key, a signed prekey and a batch of one-time prekeys. A conversation starts with an ECDH key agreement over these keys, so the very first message is already protected by forward secrecy.
- Double Ratchet. Every message advances a per-conversation sending/receiving chain derived with HKDF-SHA256, and the asymmetric (DH) ratchet rotates the session key material on an ongoing basis. Message payloads are sealed with ChaCha20-Poly1305.
- Out-of-order delivery. Skipped message keys are retained (up to 1000 per session) so messages that arrive late or out of order can still be decrypted, without weakening replay protection.
- Trust on first use. The first valid session with a given address pins that contact's device identity key. If a later session ever presents a different identity key for the same device, NiRoom rejects it instead of silently trusting the new key.
All of this key material and the resulting message history are kept inside the
password-encrypted wallet file — never in browser storage and never uploaded to
niroom-node in plaintext form.
Multi-device and key management
A Nirmata address can register several NiRoom devices (for example, a desktop wallet and a mobile wallet). From the Devices panel you can:
- see every device tied to your wallet identity, with its last-seen time;
- rename a device;
- rotate the current device's keys (creates a new signed prekey and a new one-time prekey pool, and invalidates existing NiRoom sessions for that device);
- revoke a lost or compromised device — revocation takes effect immediately.
Attachments
Files are encrypted client-side with a fresh AES-256-GCM key before upload. The relay only ever stores an opaque ciphertext blob; the decryption key, file name, MIME type and hashes travel exclusively inside the end-to-end encrypted message.
Contacts and blocking
Conversations can be saved as verified contacts once a trusted device has been established. Blocked contacts cannot start or continue a session with you — incoming envelopes from a blocked address are discarded without being decrypted or added to your message history.
Requirements
NiRoom is an alias-gated feature, the same way PeerSwap and NirVeil are: your wallet needs
an assigned alias (@username) before the NiRoom tab becomes available. See
how to get an alias if you haven't registered one yet.
What NiRoom is not (yet)
The current release focuses on one-to-one conversations. Group chats, voice/video calls, federation with other messengers and server-side searchable history are intentionally out of scope for this first version.