OP_RETURN ​
INFO
Opcode number: 106
Byte representation: 0x6a
Short description: Fail the script immediatly (must be executed).
OP_RETURN
is an opcode in bitcoin's scripting system that allows for the inclusion of a small amount of arbitrary data in a transaction. This opcode immediately marks the transaction output as unspendable, ensuring that the output can't be used as an input in a subsequent transaction. It's primarily used to embed arbitrary data in the blockchain.
Operation ​
- Terminate the script execution unsuccessfully. Any transaction output with this opcode is not spendable, but the data after
OP_RETURN
remains permanently on the blockchain. It's a way of declaring that the output can't be spent, and it's only here for the data.
Notes ​
OP_RETURN
is commonly followed by a pushdata operation that determines the length of the data to be embedded, and then the data itself.- The maximum size of the data push is 80 bytes.
- This means that
OP_RETURN
can be at most 83 bytes: 1 byte for the opcode, 1-2 bytes for the data push, and 80 bytes of data. OP_RETURN
outputs are used for various purposes, from proving the existence of a particular piece of data at a certain point in time to more complex protocols built on top of bitcoin.- Historically, there were debates around the use of
OP_RETURN
because embedding data into the bitcoin blockchain adds to its size without directly supporting the transfer of bitcoin.
Examples ​
Example 1 ​
Embedding the string "HELLO" into the blockchain:
shell
# ASM script
OP_RETURN OP_PUSHBYTES_5 48454c4c4f
# Raw script
6a0548454c4c4f
# Script result
Output is unspendable and contains the data "HELLO".