Docs
/
Start here

Getting started

Claim an address and send your first encrypted message. Four steps, one signature, and gas as the only cost.

bMail runs entirely in your browser against contracts on BNB Smart Chain. There is nothing to install and no account to create: your wallet is the account.

What you need

A wallet
MetaMask, Trust, Binance Wallet, or anything that speaks WalletConnect.
A little BNB
On BNB Smart Chain, for gas. A few cents covers registration and a first message.
Nothing else
No email, no password, no signup.
Use a wallet you control directly

Your mailbox key is derived from a signature only your wallet can produce. Hardware wallets work. Smart-contract wallets do not yet: they cannot produce the stable personal signature the derivation needs, and the app says so rather than hand you a key that changes underneath you.

1. Connect

Open the app and choose Connect wallet. If you are on another network, the app asks your wallet to switch to BNB Smart Chain, and to add it if you have never used it.

Connecting only reads your address. It moves nothing and costs nothing.

2. Sign once to unlock your mailbox

Your wallet's signing key protects your funds and cannot be used to encrypt. bMail derives a separate encryption key from a single signature, which your wallet displays in full before you approve it.

This signature is not a transaction

It is never broadcast, costs no gas, and moves nothing. It exists only to derive a key, which lives in the tab's memory and is never stored or sent anywhere. Close the tab and it is gone; reopen it and the same signature reproduces the same key.

Because the derivation is deterministic, the same wallet gives you the same mailbox on any device, with nothing to back up and nothing to sync.

Only ever sign it here

Anyone who obtains that one signature can read every message sealed to that key. The warning is written inside the signed message so your wallet has to show it to you. If any other site asks you to sign it, refuse.

3. Claim your address

Type the name you want. The app checks it against the registry before you spend anything, and tells you if it is taken, reserved, or inside another owner's release window.

LengthFeePlus
5 characters and upFreegas only
4 characters0.25 BNBgas
3 characters1 BNBgas
1 to 2 charactersNot available

Premium fees are one-off, set on chain, and can change. The app quotes you the current fee before you approve anything, and caps what you can be charged at the amount you were shown.

Names use a-z, 0-9 and single hyphens. Length is counted without hyphens, so a-b-c is a three character name. Approve the transaction and the name is minted to your wallet. No renewal, no rent.

4. Send something

Choose New message and address it by name or by wallet address. Before the transaction is built, the app resolves the recipient, fetches their published encryption key, and seals the subject and body in your browser. What reaches the chain is ciphertext.

Your wallet then asks you to approve one transaction. That is the whole cost.

What it costs

ActionYou pay
Claiming a 5+ character nameGas only
Sending a messageGas only, unless the recipient charges a stamp
Replying to a message someone paid to send youGas only, always
Reading your inboxNothing. Reads are queries, not transactions.
ReceivingNothing. Only the sender pays.

Reading your inbox

Messages are found by scanning the chain for events addressed to you, then decrypted in the tab. The first sync reads from the block the contracts were deployed at; after that only new blocks are read, so it stays quick.

Sync in the list header pulls anything new. Nothing arrives by push, because there is no server to push it.

Charging strangers to reach you

Under Settings you can set a stamp price. Anyone outside your contacts then has to escrow that amount to reach you. Answer them and it goes back automatically. Ignore them and after thirty days it is yours.

Contacts you allow always mail free, and answering someone who paid to reach you never costs you a stamp. Stamps has the full rules.

If something goes wrong

What you seeWhat it means
Recipient not registeredThat wallet has no published key, so there is nothing to encrypt to. They need an address first.
That name is reservedHeld back to stop impersonation. Pick another.
Wrong stampThe recipient changed their price while you were composing. Reopen the message to re-quote it.
BlockedThey have blocked you. No price clears it.
Sync failedA public node refused the query. Press Sync again; the app moves to another endpoint on its own.
It asks me to sign on every reloadExpected. The key is derived, never stored.

Running your own copy

The client is static HTML, CSS and JavaScript with no build step, so any web server can host it. Point app/js/config.js at the addresses on the contract reference page and serve the directory.

Nothing about the protocol depends on our copy staying online. The contracts are the product; the interface is replaceable.

bMail is an independent, community-built project. It is not affiliated with, endorsed by, or operated by Binance or BNB Chain.