While some protocols require value attached to OP_RETURN outputs, this otherwise seems like a mistake.
Setting the value to 0 should really be done by the wallet/script creating the transaction (like createrawtransaction does for data
outputs). However, as an additional check, similar to the high-fee check, sendrawtransaction could also check for non-zero value OP_RETURN outputs.
This should be configurable by a new RPC argument.
See also https://transactionfee.info/charts/output-opreturn-amount/
Useful skills:
- Bitcoin Core RPC code
- Transaction output types
- Bitcoin Core functional tests
Want to work on this issue?
For guidance on contributing, please read CONTRIBUTING.md before opening your pull request.