satwire

Send a message to a Bitcoin address

An address is not an inbox. Here is what actually works.

The short answer

You cannot write to a Bitcoin address the way you write to an email address. Nothing is listening. What you can do is send that address a very small payment in a transaction that also carries your text in an OP_RETURN output.

The payment is what makes the transaction show up in the recipient's wallet. The text is what you actually want to say. Both are in the same transaction, permanently, and anyone who opens it can read the message — including the person you sent it to, if they look.

How small can the payment be?

Small, but not zero. Bitcoin refuses outputs below a dust limit, and that limit depends on what kind of address you are paying:

Smallest payment the network will accept, by address type
Address starts withTypeMinimum
1…P2PKH546 sats
3…P2SH546 sats
bc1q… (42 chars)P2WPKH546 sats
bc1q… (62 chars)P2WSH573 sats
bc1p…Taproot573 sats

Getting this wrong is not a warning, it is a rejected transaction — and if you paid for it first, you have paid for something that cannot be broadcast. SatWire checks the limit for the exact address you type, before quoting you anything.

What it costs

Three parts: the payment to the recipient, the Bitcoin network fee for the whole transaction, and the flat 2,000-sat SatWire fee. At the cheapest fee rate, paying a bc1q address the 546-sat minimum:

Total, service fee and the 546 sats to the recipient included
Your messageTransaction sizeTotal
50 bytes — one line202 vB2,950 sats
100 bytes253 vB3,052 sats
200 bytes — a paragraph353 vB3,252 sats
500 bytes656 vB3,858 sats

Roughly 3,000 sats to put a sentence in front of an address, of which 546 arrives as money. The composer on the front page shows the exact figure for your address and your text before you pay anything.

Will they actually read it?

Be honest with yourself about this. Most wallets show the payment but not the message. What the owner sees is an unexpected few hundred sats arriving; to find your words they have to open the transaction in a block explorer. Some people do exactly that, precisely because an unexplained dust payment is strange enough to look into. Many never will.

And if the address belongs to an exchange or a custodian, there is realistically nobody at the other end. Those addresses are swept by software.

What this cannot do

How to do it here

  1. Write what you want to say on the front page.
  2. Paste the recipient's address into the recipient field and type an amount. The composer names the minimum for that address as soon as it knows the address — “0, or at least 546 for this address” — and warns you in red if what you typed is below it.
  3. You get a payment address and an exact total. Pay it from any wallet.
  4. SatWire builds the transaction, pays the recipient, embeds your message, and broadcasts it.
  5. You get the transaction id. The message is on the chain, and the payment is in their history.

Write your message →

Questions

Can you send a message to a Bitcoin address?
Not directly — an address is not an inbox. What works is sending that address a tiny payment in a transaction that also carries your text in an OP_RETURN output. The payment makes the transaction appear in their wallet; the text travels with it and is readable by anyone who opens the transaction.
How small can the payment be?
It has to clear the dust limit for that address type: 546 sats for an address starting 1, 3 or a short bc1q, and 573 sats for a long bc1q or a bc1p Taproot address. Below that the network refuses the transaction outright.
Will they actually read it?
Maybe not. Most wallets show the incoming payment but not the OP_RETURN text, so the owner sees an unexpected small amount and has to open the transaction in a block explorer to find the message. If the address belongs to an exchange or a custodian, nobody is likely to look at all.
Can the message be deleted or taken back?
No. Once it is mined it is in every copy of the blockchain, permanently, along with the address you sent it to. Nobody can remove it.

What an OP_RETURN is, how many bytes fit, and how the price is worked out: read the explainer →