Case Study 2: Ordinals and BRC-20 — Pushing Bitcoin's Scripting to Its Limits
Background
In January 2023, software developer Casey Rodarmor launched the Ordinals protocol, an innovation that exploited a feature of Bitcoin's Taproot upgrade to inscribe arbitrary data — images, text, audio, video — directly onto individual satoshis. Within months, Bitcoin had its own NFT ecosystem, complete with marketplaces, collections, and heated community debate. By late 2023, the derivative BRC-20 token standard had created fungible tokens on Bitcoin, with a combined market capitalization exceeding $1 billion at its peak.
This development was not planned by Bitcoin's developers. Taproot was designed to improve privacy, efficiency, and scripting flexibility. Ordinals emerged from a creative (some say subversive) reading of what Taproot's witness data space actually permitted. The result was a natural experiment in the boundaries of Bitcoin's scripting system — and a community-splitting debate about what Bitcoin is "for."
The Technical Foundation
Ordinal Theory: Numbering Satoshis
The Ordinals protocol begins with a conceptual framework called ordinal theory. Every satoshi ever mined is assigned a unique serial number based on the order in which it was created. The first satoshi mined in Bitcoin's genesis block is ordinal 0. The second is ordinal 1. And so on, through all 2.1 quadrillion satoshis that will ever exist.
This numbering scheme is purely a convention — it is not enforced by Bitcoin's consensus rules. The Bitcoin protocol treats all satoshis as fungible. But by establishing a community-accepted convention for tracking individual satoshis through transactions (using a "first-in, first-out" rule for which input satoshis map to which output satoshis), ordinal theory creates a layer of non-fungibility on top of Bitcoin's fungible base.
Inscriptions: Data in the Witness
The key technical innovation is inscriptions — arbitrary data embedded in a Bitcoin transaction's Taproot witness field. Here is how it works:
A Taproot (P2TR) output can be spent via key path (cooperative signing) or script path (revealing a script leaf from the MAST tree). The script path requires providing witness data that includes the script itself and a Merkle proof.
Rodarmor realized that the witness data of a Taproot script-path spend could contain a script with an OP_FALSE OP_IF ... OP_ENDIF block. Since OP_FALSE OP_IF creates a branch that is never executed, any data pushed inside this block has no effect on script validation. The data is present in the witness, transmitted across the network, stored in the blockchain — but ignored by the Script interpreter.
<signature>
OP_FALSE
OP_IF
OP_PUSH "ord"
OP_PUSH 1 # content-type tag
OP_PUSH "image/png"
OP_PUSH 0 # end of metadata / start of body
OP_PUSH <image data chunk 1>
OP_PUSH <image data chunk 2>
...
OP_ENDIF
<pubkey>
The inscription data is structured as a series of push operations within the unexecuted OP_IF block. Metadata (content type, encoding) and the actual content are encoded as data pushes. The Bitcoin Script interpreter skips the entire OP_IF ... OP_ENDIF block because the condition is FALSE, but the data is permanently recorded in the blockchain as part of the witness.
Why Taproot Made This Possible
Pre-Taproot, embedding data in Bitcoin transactions was constrained in two important ways:
-
OP_RETURN limit: The
OP_RETURNopcode allowed only 80 bytes of arbitrary data per output. This was sufficient for hashes and short messages, but far too small for images or other rich media. -
Script size limits: Pre-SegWit transaction scripts had a 10,000-byte limit. Even with SegWit, the
scriptSigandscriptPubKeywere relatively constrained.
Taproot changed the equation through two mechanisms:
Witness discount: SegWit introduced a discount for witness data — witness bytes count as only 0.25 weight units, compared to 1 weight unit for non-witness bytes. Taproot, as a SegWit version 1 output, benefits from this discount. This means witness data is 75% cheaper than regular transaction data.
Relaxed script size limits: Taproot (BIP 342) removed the 10,000-byte script size limit for Taproot script-path spends and removed the limit on the number of opcodes per script. The only remaining constraint is the block weight limit (4 million weight units, approximately 4 MB). This means a single Taproot transaction could theoretically fill an entire block with witness data.
These changes were made for legitimate reasons — the script size limits were overly restrictive for complex smart contracts, and the witness discount was designed to incentivize efficient UTXO set management. But together, they created a data space that inscriptions could exploit.
BRC-20: Fungible Tokens on Ordinals
In March 2023, an anonymous developer using the handle "domo" introduced the BRC-20 token standard, built on top of Ordinals inscriptions. BRC-20 uses JSON inscriptions to define token operations:
Deploy a new token:
{
"p": "brc-20",
"op": "deploy",
"tick": "ordi",
"max": "21000000",
"lim": "1000"
}
Mint tokens:
{
"p": "brc-20",
"op": "mint",
"tick": "ordi",
"amt": "1000"
}
Transfer tokens:
{
"p": "brc-20",
"op": "transfer",
"tick": "ordi",
"amt": "500"
}
Critically, BRC-20 tokens are not validated by Bitcoin Script. The JSON inscriptions are data, not executable code. A BRC-20 indexer — software that reads inscriptions from the blockchain and maintains a state database of token balances — interprets these operations and tracks who holds what. This means BRC-20 token validity is determined by off-chain indexers, not by Bitcoin's consensus rules. If two indexers disagree on the rules, they will produce different balance states.
This is fundamentally different from Ethereum's ERC-20 tokens, where the smart contract enforces all rules on-chain. BRC-20 is a social convention layered on top of Bitcoin's data availability, not a smart contract in any traditional sense.
The Community Debate
The Case For Ordinals
Proponents of Ordinals and BRC-20 make several arguments:
Permissionless innovation: Bitcoin is a permissionless network. If the protocol allows data to be stored in the witness, anyone has the right to use that space. Attempts to restrict specific uses would undermine Bitcoin's censorship resistance.
Fee revenue: Ordinals transactions generate significant fee revenue for miners. In some months of 2023, inscription-related fees accounted for 20-30% of total mining revenue. This additional revenue improves Bitcoin's long-term security model as the block subsidy continues to halve.
Cultural significance: Ordinals represent Bitcoin's first native NFT and token ecosystem. This brings new users, new developers, and new cultural energy to Bitcoin — a community that had been perceived as focused exclusively on monetary use.
Technical validity: Inscriptions do not exploit a bug. They use documented features of Taproot exactly as specified. The witness data is valid, the transactions are valid, and the scripts are valid. The data just happens to be art or tokens rather than complex spending conditions.
The Case Against Ordinals
Opponents raise equally compelling concerns:
Block space competition: Ordinals compete for block space with financial transactions. When inscriptions fill blocks, fees rise for everyone, including users making ordinary payments. This is especially problematic for the Lightning Network, which requires on-chain transactions to open and close channels.
UTXO bloat: While the inscribed data itself is in the witness (which is prunable), the UTXOs created by inscription transactions must be tracked by all full nodes. A surge in small-value UTXOs increases the size of the UTXO set, imposing costs on every full node operator.
Unintended consequences: Taproot's developers did not intend for the witness space to be used as a file storage system. The relaxed script size limits were designed for complex smart contracts, not for embedding JPEG images. Using features in unintended ways can have unpredictable consequences.
Bitcoin's purpose: Many Bitcoin maximalists argue that Bitcoin's block space should be reserved for financial transactions — specifically, monetary settlement and payment channel operations. Using it for NFTs and meme tokens dilutes Bitcoin's value proposition as sound money.
Indexer fragility: BRC-20's reliance on off-chain indexers for token validity creates fragility. If the dominant indexer has a bug, token balances could be corrupted. There is no on-chain fallback — unlike Ethereum tokens, where the smart contract is the single source of truth.
The Miner Perspective
Miners occupy an interesting position in this debate. They are economically incentivized to include any transaction that pays a sufficient fee, regardless of its content. Attempts to have miners filter out inscription transactions would require a form of censorship that contradicts Bitcoin's design principles and would be economically irrational for any individual miner.
In February 2023, a brief controversy erupted when Bitcoin Core developer Luke Dashjr proposed that inscription transactions should be treated as non-standard (not relayed by nodes) because they exploit a "bug" in Bitcoin Core's data-carrying limits. Other developers disagreed, and no change was made to Bitcoin Core's relay policy. The episode illustrated the tension between the development community's preferences and Bitcoin's permissionless design.
The Technical Aftermath
Fee Market Impact
The inscription phenomenon has had measurable effects on Bitcoin's fee market:
- May 2023: BRC-20 minting activity caused the mempool to grow to over 500,000 pending transactions, with average fees spiking to over $30 per transaction — levels not seen since the 2017 bull market.
- November 2023: A renewed inscription surge drove daily inscription counts above 400,000, again pushing fees above $30.
- 2024: Fee levels normalized but remained elevated compared to pre-Ordinals baselines, with inscription activity comprising 10-20% of transactions during active periods.
Block Space Analysis
The data reveals that inscriptions have fundamentally changed Bitcoin's block composition:
| Metric | Pre-Ordinals (2022) | Peak Ordinals (May 2023) | Stabilized (2024) |
|---|---|---|---|
| Avg transactions per block | ~2,500 | ~3,800 | ~3,200 |
| Avg block weight | ~1.5 MWU | ~3.8 MWU | ~2.8 MWU |
| Inscription share of weight | 0% | ~60% | ~20-30% |
| Avg fee (USD) | $1-3 | $20-40 | $3-10 |
Protocol Response
The Bitcoin development community has not attempted to disable inscriptions through a consensus change. Instead, the response has been measured:
- Relay policy discussions: Some developers proposed tightening relay policies for data-heavy transactions, but no consensus emerged.
- Alternative approaches: Projects like Runes (also by Rodarmor, launched April 2024) propose more UTXO-efficient token protocols that achieve similar functionality with less bloat.
- OP_RETURN expansion: Some proposals suggest expanding the OP_RETURN data limit as an alternative data embedding mechanism that does not create UTXOs.
Lessons for Bitcoin Scripting
Feature Discovery vs. Feature Design
Ordinals illustrate a fundamental principle of protocol design: users will find every possible use for every available feature, regardless of the designer's intent. Taproot's witness space was designed for scripts. Users used it for data. The protocol itself makes no distinction — bits are bits.
This has implications for future Bitcoin upgrades. Every new opcode, every relaxed limit, every new capability will be used in ways that its designers did not anticipate. The Bitcoin development community's extreme conservatism — the reluctance to add features without years of review — is informed by exactly this kind of experience.
The Expressiveness Spectrum
Ordinals and BRC-20 also reveal where Bitcoin sits on the expressiveness spectrum. Bitcoin Script cannot enforce BRC-20 rules on-chain because it lacks the state access and computational power to maintain a token balance database. This is precisely the kind of application that Ethereum was built for. But BRC-20 demonstrates that even a stateless, non-Turing-complete system can support token functionality if you are willing to accept off-chain indexing as the enforcement mechanism.
This is a profound architectural insight: data availability and computation can be separated. Bitcoin provides the data availability (inscriptions are stored on-chain, immutable, and globally accessible). Off-chain indexers provide the computation (interpreting inscriptions, maintaining state, enforcing rules). The trade-off is that the computation layer is trusted and fragile in a way that on-chain smart contracts are not.
Privacy Implications
Ordinals have an unexpected privacy effect. Before inscriptions, Taproot transactions were primarily financial, and their uniformity was a privacy benefit (all P2TR transactions look the same). With inscriptions, the data patterns in inscription transactions are distinctive, potentially making it easier to distinguish inscription transactions from financial transactions — partially undermining Taproot's privacy benefits.
Analysis Questions
-
Design intent vs. actual use: Should Bitcoin's developers have anticipated inscription-like uses of Taproot's witness space? Could the witness data space have been designed differently to prevent this use while preserving the legitimate benefits?
-
Economic analysis: Inscriptions generate fee revenue for miners but increase costs for ordinary users. Model this as a market: who are the winners and losers? Is the equilibrium efficient?
-
Comparison with Ethereum: Compare BRC-20 tokens with ERC-20 tokens across five dimensions: on-chain enforcement, storage efficiency, composability, user experience, and security. Which design is "better" and for whom?
-
Future evolution: If OP_CAT is reactivated (as proposed in BIP 347), how might this change the Ordinals/BRC-20 landscape? Could on-chain validation of token rules become possible?
-
Censorship resistance: Should miners be able to refuse to include inscription transactions? What would be the technical and philosophical implications of mining pools filtering based on transaction content?
Key Takeaways
- Ordinals and BRC-20 demonstrate that users will exploit every available feature of a protocol, regardless of designer intent.
- Taproot's relaxed witness size limits and the SegWit witness discount created the economic and technical conditions for inscriptions to emerge.
- BRC-20 tokens rely on off-chain indexers for validity, separating data availability (on-chain) from computation (off-chain) in a way that is fundamentally different from Ethereum's approach.
- The community debate over Ordinals reflects deep disagreements about Bitcoin's purpose, the limits of permissionlessness, and the proper use of block space.
- The inscription phenomenon validates Bitcoin's conservative development approach: every protocol change can have far-reaching, unintended consequences.