The BIP70 specs I'm reading confuse me about who broadcasts the underlying transactions to the bitcoin network. My reading seems to suggest that both the user's wallet and the server at the payment_url do.

Is that true, or is it the user's wallet unless a payment_url is specified in the payment request, in which case the server at the payment_url does?

1 Answer 1


You're right, it is confusing in the specification. Particularly:

When the merchant's server receives the Payment message, it must determine whether or not the transactions satisfy conditions of payment. If and only if they do, if [sic] should broadcast the transaction(s) on the Bitcoin p2p network.


Customer authorizes payment to the merchant's address and broadcasts the transaction through the Bitcoin p2p network.

The image particularly shows the Wallet broadcasting the transaction.


What is established, however, is that the transaction in the Payment message sent to the merchant is the same transaction the wallet app broadcasts. IMHO, I think it's safe to assume that both the customer's wallet and the merchant attempt to broadcast the transaction. When both parties hold the transaction, they can both ensure that it was broadcast to the network..

  • Yes. I've now proved by experiment that the Bitcoin Core wallet and the Android wallet broadcast the transactions as well as sending the BIP70 Payment to the URL specified in the Payment Request. This seems an odd design to me. If there was a communication failure or similar the merchant might not get the notification and will end up with a payment he maybe can't reconcile? Am I missing something here? May 24, 2015 at 11:21
  • @ColinMessitt actually, in the event the Merchant doesn't recieve the Payment, it doesn't reply with a PaymentACK, then the Wallet could (and should) notify the user so that they could speak to the Merchant themselves. May 24, 2015 at 12:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.