Live on Monad Testnet · v0.4.2

Your wallet has
an inbox.

Free, end-to-end encrypted messaging for any Monad wallet and every .nad name. No accounts, no servers, no leaks.

Open Inbox
Sending requires a small MON gas fee for the on-chain proof
mail.devnads.xyz/inbox
Inbox 14
Sent
Drafts
V
vitalik.nadE2E
Re: Multisig signing flow on Monad
2m
S
sitara.nadE2E
Q4 launch — token allocation drafts
14m
0x
0x7A24…F8c1E2E
Audit report — ready for review
1h
A
ada.nadE2E
Welcome to the validator program
3h
D
dao-governance.nadE2E
Proposal MIP-024 closes in 6 hours
Yest
End-to-end encrypted Wallet-native No accounts Cross-device keys .nad name support Built for Monad End-to-end encrypted Wallet-native No accounts Cross-device keys .nad name support Built for Monad
02What's inside

Mail, built the way crypto should work.

01 / 06

Wallet inbox

Every Monad address ships with a free inbox out of the box. No signup, no email — your wallet is your identity.

02 / 06

.nad identity

Bind and send to human-readable .nad names. Forget hex addresses — message vitalik.nad directly.

03 / 06

Cross-device encryption

Wallet-derived keys decrypt your mail on any device — phone, desktop, hardware. Nothing ever leaves your control.

04 / 06

TO / CC threads

Gmail-style multi-recipient encrypted threads. Reply-all without leaking metadata. Group conversations done right.

05 / 06

Spam control

Block on-chain, mute keywords, filter contacts — no pay-to-DM nonsense. You set the rules for who reaches you.

06 / 06

Decentralized storage

Relay by default, with first-class IPFS and Arweave adapters. Persist what you want, where you want it.

03How it works

Three steps. Zero servers. All on-chain proofs.

STEP 01

Connect your wallet

Sign once to derive a deterministic encryption keypair. Same wallet, same keys — every time, every device.

// derived on connect
const keys = deriveX25519(
  wallet.sign("nadmail-v1")
);
STEP 02

Encrypt & address

Resolve the recipient's .nad name to their public key, encrypt the payload client-side, attach a relay hint.

// client-side, never leaves
const blob = sealedBox(
  msg, recipient.pubKey
);
STEP 03

Send on-chain proof

Submit a tiny Monad transaction containing a hash of the ciphertext. The relay delivers; the chain witnesses.

// gas: ~0.0002 MON
await nadMail.send({
  to, hash, relayHint
});

Open your inbox.

Connect your Monad wallet and start sending encrypted mail in under thirty seconds. Free forever — only pay gas when you send.

Open Inbox