Embedded Data charts/OP_RETURN Block Share

OP_RETURN Block Share

OP_RETURN cost as a share of block weight, totalled over each day

Loading chart data...

About this metric

Definition

How much of a block is OP_RETURN data. An OP_RETURN output is a deliberately unspendable output whose script carries a few dozen bytes, which can timestamp or label things on chain. About 63% of all blocks contain at least one.

How it is measured

What an OP_RETURN output costs the block, in weight units, over the block's weight. The numerator is the script plus the 9 bytes of frame every output carries, an 8-byte value field and a 1-byte length prefix, multiplied by four.

Weight, not size, and the choice changes the answer. Block space is rationed in weight units, and a non-witness byte costs four of them where a witness byte costs one. An OP_RETURN output is non-witness; an inscription is witness. Measuring both against size prices them as the same good: from height 920,000 OP_RETURN is 3.97% of size but 6.68% of weight, while inscriptions are 8.07% of size and 3.40% of weight. Since that height 20.4% of blocks change which of the two is larger depending on that choice.

Counting the script alone understates the cost by about 44%. That is larger than it sounds because a typical OP_RETURN script is only 20 bytes: Runes markers and protocol tags are short, not the 80-byte policy maximum, so a fixed frame is nearly half the output.

The length prefix widens to 3 bytes once a script reaches 253, which is not modelled. Blocks holding such a script carry 3.5% of all OP_RETURN outputs, which caps the shortfall at 0.2% and the real figure sits well under that.

Measured from my own Bitcoin node. Methodology

Get this data

CSV and JSON take the selected range without overlay series. PNG captures the chart as it looks now.
Related