B++ Logo

Ordinals & Inscriptions

Ordinals and inscriptions are a method for attaching arbitrary data to individual satoshis on the Bitcoin blockchain. Introduced in early 2023 by Casey Rodarmor, the Ordinals protocol assigns unique identifiers to satoshis and allows "inscribing" content (images, text, JSON, or other files) into witness data that gets stored on-chain.

The Ordinals protocol assigns a unique, sequential number to each satoshi based on the order it was mined. This creates a way to identify and track individual sats through transactions and UTXOs. Key concepts: Ordinal number (a satoshi's position in the total supply, 0 to 2.1 quadrillion minus 1), Ordinal theory (tracks which ordinal numbers are in which UTXOs when inputs are spent, first-in-first-out by default), Rare sats (certain ordinals considered "rare," e.g., first sat of a halving or block subsidy). When Bitcoin is spent, inputs are consumed in the order they appear and their ordinal numbers transfer to outputs in order (default: FIFO). Ordinals do not require a soft fork or consensus change; they are an agreed-upon numbering and tracking scheme that full nodes do not need to implement, only indexers and wallets that support Ordinals do.


Inscriptions

Inscriptions use the Ordinals protocol to attach content to a specific satoshi. The content is stored in the witness (SegWit) portion of a transaction, often in an OP_IF/OP_ENDIF or similar pattern that is pruned from the UTXO set but remains in the blockchain.

Inscription Structure

1. Envelope: Wrapped in script that is never executed (e.g., OP_FALSE OP_IF ... OP_ENDIF)
2. Content type: MIME type (e.g., image/png, text/plain, application/json)
3. Content: Raw bytes of the inscribed data

Why Witness Data?

  • SegWit witness data is discounted in block weight (1 WU per byte vs 4 for non-witness)
  • Inscription data does not expand the UTXO set
  • Same consensus rules as other valid SegWit scripts

BRC-20 and Other Token Standards

BRC-20 is an experimental, fungible token standard on Bitcoin that uses JSON inscriptions to define "transfer" and "mint" operations. Similar in concept to ERC-20 on Ethereum, BRC-20 tokens do not use Bitcoin Script for logic; they rely on external indexers to parse inscription content and track balances.

Characteristics

  • Inefficient: Each "transfer" or "mint" typically requires a separate on-chain inscription and transaction fees
  • Indexer-dependent: Balances and transfers are not enforced by consensus; they require off-chain indexing
  • Blockspace: During 2023–2024, BRC-20 and Ordinals activity contributed to mempool congestion and higher fee rates

Runes

Runes (by Casey Rodarmor, 2024) is an alternative fungible token protocol on Bitcoin designed to be more efficient than BRC-20 by using the OP_RETURN-style output and a more compact on-chain representation. Like BRC-20, it requires indexers to interpret protocol messages.


Impact on Bitcoin

Blockspace and Fees

Consensus and Policy

  • Ordinals and inscriptions use existing SegWit and Taproot rules; they are valid under current consensus rules
  • Limits on data size (e.g., -datacarriersize for OP_RETURN) are relay policy, not consensus; witness-based inscriptions are subject to node policy (e.g., non-standard or size limits) in some configurations

Debate

Views in the Bitcoin community vary:

  • Supporters: Ordinals demonstrate programmability, bring new use cases and users, and show that blockspace is a scarce resource with a fee market.
  • Critics: They argue inscriptions and token protocols consume blockspace for non-monetary data, raise fees for peer-to-peer cash use, and rely on extra-protocol indexing.

Technical Summary

AspectOrdinalsInscriptions
PurposeNumber and track satoshisAttach data to a satoshi
StorageNo extra data; ordering onlyWitness (SegWit) data
ConsensusNot enforced by nodesMust be valid SegWit script
IndexingRequired for trackingRequired for content retrieval


Resources