BNRP Messaging
Message any Bitcoin name
Your .btc name is your inbox. End-to-end encrypted. No email. No phone number. Just the name.
Look up a name
Resolves via BNRP — reads the messaging.xmtp field from the name's inscription record.
Enable messaging on your name
Three steps. One inscription. Takes about 10 minutes total.
1
Get your XMTP inbox ID
Go to xmtp.chat and connect your EVM wallet (MetaMask, Coinbase Wallet, Rabby, etc.).
Important: make sure the network selector in the top-right says PRODUCTION, not DEV.
DEV and PRODUCTION are separate networks. An inbox on DEV won’t work here. If you registered on DEV before, switch to PRODUCTION and send one direct message to register a new inbox there.
Once connected on PRODUCTION, send any direct message to register your inbox. Then use the tool below to retrieve your inbox ID.
No gas. No transaction. Just your address.
2
Build your inscription JSON
Enter your Bitcoin name and optionally your taproot address. Your inbox ID auto-fills once you complete step 1.
Fill in your name above to generate the inscription JSON.
3
Inscribe on UniSat
Paste the JSON from step 2 into UniSat’s text inscriber. Content type must be
Open UniSat Text Inscriber
text/plain (the default). Inscribe to the wallet that holds your name’s sat.
1. Paste the JSON into the text field
2. Content type:
text/plain
3. Destination: the wallet holding your name’s sat
4. Confirm and broadcast. After ~3 block confirmations the BNRP resolver picks it up.
Once confirmed, test it: type your name into the search at the top of this page. The Open in XMTP button will appear.
Protocol support
The messaging object is extensible. Unknown keys are ignored — adding new protocols requires no breaking changes.
| Key | Protocol | Value format | Status |
|---|---|---|---|
| xmtp | XMTP | 64-char hex inbox ID | Active |
| nostr | Nostr | npub... (bech32) | Reserved |
| matrix | Matrix | @user:server.org | Reserved |
| simplex | SimpleX Chat | SimpleX invitation link | Reserved |
| session | Session | Session ID (hex) | Reserved |
Common questions
Is my inbox ID public?
Yes. The
messaging.xmtp field is stored in your inscription on Bitcoin — it is publicly readable. Your inbox ID itself is not sensitive. What is never public is the content of your messages, which are end-to-end encrypted by XMTP.
Can anyone message me once I set this up?
XMTP has a network-level consent system. Unknown senders land in a requests folder, not your main inbox. You approve or block each sender once. Blocking works across the entire XMTP network.
Do I need an Ethereum wallet?
To register an XMTP inbox today, yes — XMTP currently uses Ethereum addresses or passkeys as the identity anchor. This is separate from your Bitcoin name. You connect any EVM wallet to xmtp.chat to generate your inbox ID, then inscribe that ID to your Bitcoin name. XMTP has published a blueprint for native Bitcoin identity support; BTCNative intends to contribute this as BNRP-IP-08 matures.
What happens to my messages if XMTP goes away?
XMTP stores encrypted payloads across decentralized nodes, not a single server. The protocol is open source. Your inbox ID is recorded on Bitcoin permanently — if you later add a different messaging protocol to your inscription, resolvers will surface that instead. Your name is not locked to any single messaging service.
Can I use a subname just for messaging?
Yes. You can inscribe a messaging record on a subname like
dm.yourname.btc and keep it separate from your main identity. Each subname is an independent BNRP record with its own field set.Get your XMTP inbox ID
Connect MetaMask (or any EVM wallet) below. Sign one message — no gas, no transaction. Your inbox ID appears instantly. Copy it and use it in your inscription.
MetaMask, Coinbase Wallet, Rabby, or any injected EVM wallet. No ETH needed.
BNRP-IP-08: Messaging Records
Full specification for the
Read the spec
messaging field, validation rules, API extension, and future protocol reservation. Status: Draft.