Typed replacement for OP_RETURN. Commits up to 40 bytes of arbitrary data in an unspendable output. Evaluator always returns ERROR — the output can never be spent, only created. Maximum one DATA_RETURN output per transaction (consensus-enforced).
AnchorInvertible
Ladder Diagram
Fields
Field
Data Type
Size
Side
Description
data
DATA (0x0B)
1–40 bytes
Conditions
Arbitrary data payload. Maximum 40 bytes. Minimum 1 byte — empty DATA_RETURN is rejected.
No witness fields. DATA_RETURN is a conditions-only block — it is unspendable by design.
Wire Format Breakdown
Fixed structure: block header + single DATA field. 4-byte header + 1-byte type + varint length + data payload.
0x050701DATA · 1-40BConditions = 6 + data bytes
Total (typical 40B payload)~46 bytes
Evaluation Logic
1.DATA_RETURN is unspendable — evaluator always returns ERROR
2.Any attempt to spend a DATA_RETURN output fails at consensus
DATA_RETURN outputs exist only to commit data on-chain. They are never evaluated as spending conditions. The evaluator returning ERROR ensures they cannot be spent even if referenced by mistake.
Consensus Rules
1.Zero value — output nValue must be exactly 0 satoshis
2.Max one per tx — at most one DATA_RETURN output per v4 transaction
3.Single rung, single block — the output conditions must contain exactly one rung with exactly one DATA_RETURN block, no relays
4.MLSC exemption — DATA_RETURN is allowed on mainnet even when RUNG_VERIFY_MLSC_ONLY is active (since MLSC trees cannot contain unspendable leaves)
The DATA field carries the raw payload bytes. In this example: "Hello world" (11 bytes). Maximum 40 bytes.
Use Cases
Protocol Metadata
Embed protocol identifiers, version markers, or short metadata in transactions. Replaces OP_RETURN for applications like OMNI, colored coins, and commitment schemes that need provably unspendable data outputs.
Commitment Anchoring
Commit a hash digest (32 bytes) to anchor off-chain state on-chain. The 40-byte limit fits a hash commitment plus metadata. Unlike the ANCHOR block, DATA_RETURN outputs are unspendable and zero-value — they don't lock any coins.
Anti-spam OP_RETURN Replacement
DATA_RETURN closes OP_RETURN as a data-embedding vector by routing it through the typed field system. The 40-byte DATA field is tighter than legacy OP_RETURN while enforcing structured typing, zero-value, and single-output limits at consensus.