Bitcoin has two sets of rules. The consensus rules, which all blocks/transaction must comply with. And standard rules which are optional and set by default in Bitcoin Core.
The 80 byte limit for op_return is a standard rule. Node operators can disable it.
I am testing to see if I can get such a non-standard >80 byte op_return accepted by a miner.
Step 1:
Make a long broadcast message with Electrum-Counterparty/broadcast_text.html at master · Jpja/Electrum-Counterparty · GitHub. Need to comment out the line for input length (currently line #80 //print_result("Input text is too long"); return;
).
Step 2:
Create transaction with Electrum. This goes well until broadcasting the tx. The server returns an error Some of the outputs pay to a non-standard script
.
Step 3:
Export → Copy to clipboard
Step 4:
Push raw tx with BlockCypher - Push Raw Bitcoin Hexadecimal Transaction | BlockCypher
Step 5:
Wait until confirmed - BTC Transaction 547d2cca830d0a1c7b8105846f192b5f165e196d9721d7e05378f5b79fdef02b | BlockCypher
The last time I tried, the transaction stayed in mempool for a few days. And then dropped out. Did not make it to a block. However, the fee I paid was very low, about 2 sat/byte.
This time I’m using 20 sat/byte. Let’s see if a higher reward convinces a miner to accept it.