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 text/plain (the default). Inscribe to the wallet that holds your name’s sat.
Open UniSat Text Inscriber
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 messaging field, validation rules, API extension, and future protocol reservation. Status: Draft.
Read the spec