TYPE 0x0507 · ANCHOR FAMILY
DATA_RETURN
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).
Anchor InvertibleLadder 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.
0x0507
0
1
DATA · 1-40B
Conditions = 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 satoshis2.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)
Return Values
| Condition | Result |
|---|---|
| Any spend attempt | ERROR |
JSON Wire Format
Output conditions
{
"type": "DATA_RETURN",
"inverted": false,
"fields": [
{ "type": "DATA", "hex": "48656c6c6f20776f726c64" }
]
}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.