You need your own node to broadcast this
A burn puts real value into an OP_RETURN, and Bitcoin Core refuses to send
that unless you explicitly raise maxburnamount, which defaults to 0.00.
Public broadcast endpoints — mempool.space, Blockstream, and the Electrum servers behind
wallets like Sparrow and Electrum — all call sendrawtransaction without it,
so they will reject this transaction. The flag
cannot be set in bitcoin.conf
either, so it has to be your node and your command line:
bitcoin-cli -named sendrawtransaction hexstring=<signed-hex> maxburnamount=<btc>
Set maxburnamount just above the amount you're burning — never blanket-large.
It is the last guard between a typo and a real loss.
This is a limit of the tooling around you, not of your transaction.
maxburnamount is a safety check inside that one RPC call — it is not a network
rule. Once any single node accepts your burn, the rest of the network relays and mines it
normally.
Two more things worth knowing before you sign. Trezor and Ledger firmware refuse to
sign an OP_RETURN output carrying a nonzero amount, so a hardware wallet
likely won't complete this — Bitcoin Core's own walletprocesspsbt is the proven
path. And testmempoolaccept takes no maxburnamount argument at all,
so it reports allowed: true for a burn that sendrawtransaction then
rejects. It is not a green light.
If a broadcast is refused, your transaction is almost certainly fine and the pusher is
simply declining it. Check the command before you touch the transaction — rebuilding a
correct burn is how people make expensive mistakes.