OP RETURN

From Bitcoin Wiki
Revision as of 01:48, 29 December 2015 by Occupy paul st (talk | contribs) (Add Omni Layer, note Open Assets prefix)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

OP_RETURN is a script opcode used to mark a transaction output as invalid. Since the data after OP_RETURN are irrelevant to Bitcoin payments, arbitrary data can be added into the transaction by following the OP_RETURN with an OP_PUSHDATA. Since any outputs with OP_RETURN are provably unspendable, OP_RETURN outputs can be used to burn bitcoins.

Currently, the default Bitcoin client relays OP_RETURN transactions up to 40 bytes, but does not provide a way to create OP_RETURN transactions.

Philosophy

Some members of the Bitcoin community believe that use of OP_RETURN violates the contract of Bitcoin, because Bitcoin was intended to provide a record for financial transactions, not a record for arbitrary data. Despite this, use of OP_RETURN may continue unabated because there is no easy way to stop people from embedding arbitrary data in the blockchain, and OP_RETURN is an efficient way to do it. [bitcointalk discussion]

Resources on OP_RETURN

OP_RETURN prefixes

Often, OP_RETURN transactions include a prefix to identify which protocol they belong to. There is no standardized method of claiming OP_RETURN prefixes, and not all OP_RETURN transactions use prefixes. At the time of writing, this wiki page is probably the most complete list of OP_RETURN prefixes.

Prefix (Ascii-Encoded) Protocol/Owner Brief description
Fa Factom ?
CC Colu ?
OA Open Assets Issuance and transfer of user-created assets
omni Omni Layer ?
MG Monegraph Digital work licensing
id Blockstore ?
ASCRIBE ASCRIBE Digital work licensing
? Counterparty ?