Glossary / Developer reference
PP memo
- Definition
- PP memo was the free-text UTF-8 note that BIP70 let a merchant, a payer, or an acknowledging server attach to a payment for a human to read.
Specified in BIP-70.
Three of the four BIP70 messages carried a memo, which makes it the only field in the protocol that traveled in both directions. It was pure display text: no wallet parsed it, no signature protected the copy the payer sent back, and none of it reached the blockchain. Payment notes still work this way today, which is why they are a poor place to put anything that matters.
How it works
Status: historical. The memo appeared as field 5 of PaymentDetails, field 4 of the Payment message and field 2 of PaymentACK, all of which left Bitcoin Core when BIP70 support was removed in 0.20.0 on June 3, 2020.
Each of the three had a different author and a different reader.
The merchant wrote the first one, and a wallet displayed it on the confirmation screen beside the amount: an order number, a product name, a line of terms. Because it sat inside the serialized details, the merchant's signature covered it, so at least it could not be rewritten in transit.
The payer wrote the second and posted it back with the broadcast transaction. Refund instructions and notes to support went here, and nothing signed them.
The merchant wrote the third into the acknowledgment, usually a thank-you or a shipping estimate. Nothing signed that either.
BIP70 set no length limit, so wallets truncated wherever their layout ran out. That small gap has a real edge to it. Attacker-supplied text rendered next to a verified company name is a phishing surface, and a note that reads like an official instruction to send one more payment is convincing in exactly the place a customer is least skeptical.
Where you see it
Free-text notes attached to payments are alive and well, and each modern version has its own quirk.
BIP21 payment links carry a message parameter, percent-encoded, shown by the wallet and forgotten afterwards. Lightning goes further: a BOLT11 invoice puts its description in the d field, and because a tagged field holds at most 1,023 groups of five bits, roughly 639 bytes, anything longer must be replaced by its 256-bit hash in the h field. Exchanges offer a reference box on withdrawal forms whose contents never leave their own database.
The only note that genuinely rides on the chain is an OP_RETURN output. Bitcoin Core's relay policy allowed a payload of 40 bytes when that output type became standard in 0.9.0 and 80 bytes from 0.11.0 onward. You pay a fee for those bytes and they are public forever, so using one as a private note is a mistake nobody makes twice.
Everything else is local to you. A note typed into your own wallet lives in the wallet file rather than in the seed phrase, so restoring on a new device brings back the coins and none of the words you wrote about them. Export before you migrate.
PP memo vs label
A memo describes a payment; a label names a party or an address. BIP70 memos were written for one transaction and shown once, at the moment of paying. A BIP21 label identifies who is being paid, and a wallet label is the private filing note you attach to an address or a transaction and keep on your own machine. None of the three is signed by anyone whose word you can check, and none of them is visible to the network.