Bitcoin Core plans to remove a size limit on data stored in special transactions called OP_RETURN, but this is a policy change, not a consensus change.
OP_RETURN
is a Bitcoin script opcode introduced in 2014 (Bitcoin Core 0.9.0) to allow small amounts of arbitrary data to be embedded in transactions.- Crucially, it creates provably unspendable outputs, preventing UTXO set pollution.
- A default policy limit of 80 bytes was added to discourage non-payment data usage while still allowing basic use cases (e.g., hashes, commitments).
When OP_RETURN
was introduced in Bitcoin Core 0.9, it was not meant to encourage data storage on-chain. Instead, it was a harm-reduction feature:
“This change is not an endorsement of storing data in the blockchain. The OP_RETURN change creates a provably-prunable output, to avoid data storage schemes — some of which were already deployed — that were storing arbitrary data such as images as forever-unspendable TX outputs, bloating Bitcoin’s UTXO database.”
— Bitcoin Core 0.9 Release Notes (March 2014)
Before OP_RETURN
, users were already embedding data in fake outputs, which polluted the UTXO set (the set of unspent coins all full nodes track in memory).
OP_RETURN
allowed data to be embedded in a provably unspendable output, which:
-
Makes the output prunable, improving node performance
-
Avoids permanently bloating the UTXO set
-
Encouraged safer practices while still discouraging large-scale non-financial data storage
The 80-byte cap was a policy deterrent, not a consensus limit — large OP_RETURNs were discouraged, not invalid.
🔹 What does that mean?
- The fundamental rules of Bitcoin — like the 4 MB block size limit — are not changing.
- This change only affects how the Bitcoin Core software relays certain types of data transactions, not what it considers valid in a block.
🔹 What is changing?
- Bitcoin Core will stop enforcing an 80-byte size limit on OP_RETURN data, allowing larger metadata transactions to be shared between nodes.
- Miners already include such transactions using custom policy settings.
- ✅ No risk of a chain split: This doesn’t touch Bitcoin’s consensus rules — everyone still agrees on what makes a valid block.
- ✅ Block size stays the same (~4 MB): This ensures that blockchain growth remains limited and sustainable.
- ✅ Alternative options exist: If you prefer the old limits, you can run Bitcoin Knots, which still enforces them.
Bottom line:
This is a software configuration change, not a change to Bitcoin’s fundamental rules. If you're using Bitcoin to store value or make payments, nothing about that has changed.
Bitcoin still enforces a ~100KB transaction size limit, which mitigates abuse and remains unchanged.
- Timestamping documents
- Cross-chain anchoring (e.g., merge-mined sidechains)
- Asset issuance (e.g., Omni/Tether)
- Notarization and digital certificates
- Commitment schemes for external protocols (e.g., Citrea)
Note: Ordinal inscriptions and Stamps use witness data or fake outputs, not OP_RETURN.
The Change (PR #32359)
- Bitcoin Core developers proposed removing the 80-byte OP_RETURN size cap.
- The change also removes the
-datacarrier
and-datacarriersize
options. - Larger
OP_RETURN
transactions would now be relayed and mined by default.
-
The cap is ineffective: Easily bypassed via:
- Multi-output/multisig scripts
- Witness data
- Private miner APIs (e.g., MARA Slipstream)
-
Perverse incentives: Drives users to harmful alternatives that pollute the UTXO set.
-
Cleaner data: Encourages proper use of OP_RETURN rather than misusing spendable outputs.
-
Aligns with mining reality: Many miners already mine larger OP_RETURN txs.
-
Fee market is sufficient: Block size (4MB) + fee pressure limits abuse naturally.
-
Improves relay consistency: Nodes and miners share policy, improving block propagation and mempool estimation.
-
Reduces miner centralization: If only some miners accept large OP_RETURN transactions, they gain a fee advantage, encouraging hashers to consolidate into those pools. Removing the limit spreads opportunity evenly across miners.
-
Improves block relay performance: Removing artificial limits leads to fewer compact block reconstruction failures, reducing latency and making the network more resilient.
-
Enables better metaprotocol support: Clean OP_RETURN usage helps future protocols (e.g. Citrea, tokens, cross-chain anchoring) embed structured data safely without abusing spendable outputs.
-
Encourages non-monetary use: Seen as shifting Bitcoin toward data storage.
-
Spam and bloat: Fear of more data-heavy protocols (e.g., inscriptions, stamps, NFTs) and “junk” data.
-
Undermines Bitcoin’s monetary purpose: Viewed as deviating from “sound money” principles.
-
Governance concerns:
- Allegations of irregular PR handling
- Claims of GitHub bans and manipulation
- Some have noted that the change was poorly communicated — the initial feedback round may have been missed by the wider community, causing tension once the PR was submitted more formally.
-
Community dissent: Change was pushed despite vocal opposition from notable Bitcoiners and developers.
Note: “Inscriptions” technically refer to a specific Tapscript pattern used in Ordinals. Other methods like Stamps use different — and often more harmful — techniques.
Why this matters: Stamps are more harmful than inscriptions or OP_RETURN because they trick the network into storing data as if it were real, spendable bitcoin — permanently bloating the UTXO set, increasing node costs, and degrading performance
-
Previously, miners could set:
-datacarrier=1
to allow OP_RETURN-datacarriersize=X
to raise the limit
-
Many private miners already raised these limits and mine such transactions.
- The OP_RETURN size limit is a policy rule—not a consensus rule.
- Miners/nodes can already mine/accept large OP_RETURN txs, and all nodes must still accept blocks containing them if they are valid under consensus rules (block size < 4MB).
- This causes inconsistency between what gets relayed and what gets mined.
Today, many nodes won’t relay OP_RETURN transactions over 80 bytes, while miners using custom settings may still mine them. This creates an inconsistency: transactions not visible to most of the network can still end up in blocks. Removing the limit aligns what nodes relay with what miners accept, making mempools more consistent, block propagation faster, and fee estimates more reliable.
Bitcoin Knots (maintained by Luke Dashjr) retains the old 80-byte policy. After the PR surfaced, some users switched to Knots as a protest.
According to Matthew R. Kratter, Bitcoin Knots briefly surpassed Core 29.0 in node count during early 2025 — but this spike appears to have been driven more by timing mismatches between release cycles and a coordinated protest campaign, rather than a durable shift in user adoption. In fact, most Bitcoin nodes today still run older versions of Core. As of May 2025, Core 28.1.0 alone accounts for over 21% of nodes, while Core 29.0.0 sits below 6%, and Knots 20250305 trails at just over 6% — suggesting that the majority of the network remains on pre-29 Core versions rather than switching to Knots en masse.
- Bitcoin Governance: Highlights tension over who steers Bitcoin—developers, miners, users?
- Network Fragmentation: Policy divergence causes inconsistent mempools and block propagation issues.
- Market-driven moderation: Supporters argue fee markets, not hard-coded caps, should regulate block usage.
- User Sovereignty: Running alternative clients (like Knots) is a check against centralization of development control.
This debate is not just about a technical parameter, but about the philosophical and practical boundaries of Bitcoin’s design—what it is for, how it evolves, and who gets to decide. Removing the OP_RETURN limit may not break consensus, but it has catalyzed a cultural and political rift that could shape Bitcoin’s future.
Removing the OP_RETURN limit is a technically sensible cleanup that aligns policy with reality, but it raises deeper concerns about Bitcoin's purpose, governance, and resistance to non-monetary use.
This episode also highlights growing interest in improving node privacy and resilience — from AS-level network mapping (ASMap) to proposals for better tools to defend against surveillance or eclipse attacks.
- PR: Remove arbitrary limits on OP_Return (datacarrier) outputs #32359
- mailing list: Relax OP_RETURN standardness restrictions
- youtube: Bitcoin Core Removes The Mask - by Matthew R. Kratter
- gist: Retiring the 80-Byte OP_RETURN Limit
- Bitcoin Knots
- PR: Deprecate datacarrier options without removing them #32406
Special thanks to @hodlinator for insightful and technically grounded feedback on:
- The distinction between policy vs. consensus rules
- Correcting OP_RETURN use case misconceptions (e.g., RSK, Lightning, inscriptions)
- Emphasizing the ongoing role of transaction size limits for DoS mitigation
- Clarifying miner centralization risks and block propagation realities
- Improving phrasing around metaprotocols and node impact
Thanks also to ShiShi21m (Nostr: npub1ugnq57hn8va6xqr5zywy2eunem6c624583vkt0dmv40ep7tnnxkqrr898l
) for surfacing the historical context from Bitcoin Core 0.9 — highlighting that OP_RETURN was originally introduced as a harm-reduction measure, not an endorsement of on-chain data storage.
Additional thanks to all those who participated in the discussion — including critics — whose questions and objections helped clarify and refine key points.
Relevant code paths
Bitcoin Core
https://github.com/bitcoin/bitcoin/blob/v29.0/src/policy/policy.h#L75-L79
https://github.com/bitcoin/bitcoin/blob/v29.0/src/init.cpp#L638-L641
Bitcoin Knots
https://github.com/bitcoinknots/bitcoin/blob/v28.1.knots20250305/src/init.cpp#L814