OP_RETURN data

OP_RETURN Unspendable

Data with no lock. Anything at all can follow it; nothing on chain says how to read it.

What it is

An output that starts with OP_FALSE OP_RETURN can never be spent, so it is a safe place to write data. Nodes know it can never be spent and can leave it out of the set of coins they track. Protocols such as B, MAP and AIP give the data a shape by starting it with a known prefix.

Script pattern

  1. OP_FALSE Puts false on the stack, so the output can never be spent.
  2. OP_RETURN Ends the script. What follows is data.
  3. <data> … Any number of pushes, in any format.

How it is spent

It cannot be spent. Any sats sent to it are gone for good.

Background

Bitcoin made small OP_RETURN outputs standard in 2014, so people would stop hiding data in fake addresses. BSV later lifted the size limit, which made whole files on chain practical. A plain OP_RETURN before OP_FALSE was added could be spent in some cases; OP_FALSE OP_RETURN rules that out.

On chain

Examples coming. They come from the blocks we have typed, and no typed block holds one yet.

Specification