Runes Protocol: Bitcoin's UTXO-Native Standard for Fungible Tokens
Runes launched as a UTXO-native fungible token protocol on Bitcoin. How it works, how it compares to BRC-20, and what it means.
Bitcoin has had fungible tokens since BRC-20 introduced inscription-based token tracking in March 2023. But BRC-20 fought against Bitcoin's architecture rather than working with it. Balances lived in off-chain indexers, transfers required two on-chain transactions, and the UTXO set bloated with unspendable outputs. The Runes protocol, created by Casey Rodarmor and launched at Bitcoin block 840,000 on April 20, 2024, took a different approach: a fungible token standard built directly on Bitcoin's UTXO model, using OP_RETURN for metadata and requiring no off-chain infrastructure to determine balances.
The result was both technically cleaner and culturally explosive. Runes consumed over 90% of Bitcoin network fees within hours of launch, drove the average transaction fee to $128, and reignited the debate over whether tokens belong on Bitcoin at all. Two years later, the protocol has settled into a persistent niche: roughly $130 million in total market cap across tracked tokens, with infrastructure still maturing. This article covers the technical design, the comparison with BRC-20, the market reality, and the cultural questions that Runes forces Bitcoin to answer.
How the Runes Protocol Works
Runes stores token balances as tuples of (ID, OUTPUT, AMOUNT) attached directly to Bitcoin UTXOs. Each UTXO can hold arbitrary amounts of different Runes. When a UTXO is spent, its Rune balances are redistributed according to instructions encoded in the transaction's OP_RETURN output. No external indexer is needed to determine who holds what: the UTXO set itself is the canonical state.
Protocol messages are called runestones. A runestone is identified by a transaction output whose script pubkey begins with OP_RETURN OP_13, followed by data pushes that are concatenated and decoded as LEB128 variable-length integers. These integers form tag-value pairs that encode the protocol's three core operations: etching, minting, and transferring.
Why OP_RETURN instead of witness data? Casey Rodarmor explicitly chose OP_RETURN over the witness field used by Ordinals. Witness-based approaches complicate swap construction and PSBT compatibility. OP_RETURN outputs are provably unspendable and prunable by nodes, keeping the protocol's on-chain footprint minimal.
Etching: Creating a New Rune
Etching defines a new Rune with immutable properties: name, symbol (a single Unicode code point, defaulting to ¤ if unspecified), divisibility (0 to 38 decimal places), total supply cap, premine amount, and optional open-mint parameters. Once etched, these properties cannot be changed.
Names use only the letters A through Z, with a maximum length of 28 characters. A progressive unlock schedule prevents front-running of short, desirable names: at launch (block 840,000), only names of 13 or more characters were available. Every 17,500 blocks (roughly four months), the minimum length decreases by one character. Single-character names will unlock approximately four years after launch, between blocks 1,032,500 and 1,050,000.
Spacers (the bullet character •) can be placed between letters for readability. DOG•GO•TO•THE•MOON and DOGGOTOTHEMOON are the same Rune: spacers are cosmetic and encoded as a bitfield where the Nth bit determines whether a spacer appears between the Nth and (N+1)th characters.
Minting: Generating New Units
If the etcher enabled open minting, anyone can mint new units of a Rune by including a mint instruction in a runestone. Minting is governed by three parameters: cap (the maximum number of mint transactions allowed), amount (a fixed number of units generated per mint), and optional block height windows defining when minting opens and closes. The maximum supply per Rune is 2128 - 1.
Transferring: Edicts and Pointers
Transfers use edicts: instructions within a runestone that specify a Rune ID, amount, and output index. Edicts are processed sequentially, allowing a single transaction to redistribute multiple Rune types across multiple outputs. An amount of zero means "allocate all remaining units," and an output index equal to the total number of outputs distributes evenly across all non-OP_RETURN outputs.
Unallocated Runes (those not explicitly assigned by edicts) default to the output specified by the runestone's pointer field, or the first non-OP_RETURN output if no pointer is set. This design means a simple transfer requires only one on-chain transaction, unlike BRC-20's two-transaction requirement.
Cenotaphs: Malformed Runestones
A cenotaph is a runestone that fails validation. When a transaction contains a cenotaph, all input Runes are permanently burned: newly etched Runes receive zero supply and become unmintable, and any mints count toward the cap but the minted units are destroyed. This serves as a forward-compatibility mechanism. When future protocol versions introduce new tag numbers, older clients that do not recognize these tags will treat the runestone as a cenotaph rather than misinterpreting the data.
Cenotaphs can be triggered by unrecognized even tags, malformed LEB128 varints, edict output numbers exceeding the transaction's output count, or a Rune ID with block zero and a nonzero transaction index, among other conditions. Unrecognized odd tags are simply ignored without triggering a cenotaph.
How Runes Compare to BRC-20
Both protocols enable fungible tokens on Bitcoin, but they use fundamentally different architectures. BRC-20 tokens are JSON text inscribed into witness data using the Ordinals protocol. Token operations (deploy, mint, transfer) are written as inscription content, and an off-chain indexer must scan every inscription, reconstruct the full operation history, and compute current balances. Runes eliminates this indirection by embedding token state directly in the UTXO set.
| Dimension | Runes | BRC-20 |
|---|---|---|
| Data model | UTXO-native: balances live in UTXOs | Account-based: balances reconstructed by indexer |
| On-chain storage | OP_RETURN (~80 bytes per runestone) | Witness data (up to 4 MB per inscription) |
| Transactions per transfer | 1 | 2 |
| Indexer dependency | Not required for balance state | Required: off-chain indexer computes all balances |
| UTXO set impact | Minimal: OP_RETURN outputs are prunable | Creates unspendable UTXOs that bloat the set |
| Indexer consensus risk | None: state is on-chain | Indexers can disagree on edge cases |
| Lightning compatibility | Compatible (UTXO-based) | Not compatible |
| Wallet support | Limited (Magic Eden Wallet, Xverse, Oyl) | Limited (Ordinals-compatible wallets) |
The indexer consensus problem is worth highlighting. BRC-20 balances exist only in the view of whichever indexer you query. If two indexers disagree on how to interpret an edge case in inscription ordering, they will report different balances for the same address. This has happened in practice. Runes avoids this entirely: since balances are encoded in UTXOs, any Bitcoin full node can verify the state without additional software.
Block Space and Fee Impact
Runes launched at block 840,000, the same block as Bitcoin's fourth halving. The launch triggered a historic fee spike that stress-tested Bitcoin's fee market in ways that no previous event had matched.
Launch Day: April 20, 2024
Block 840,000 itself collected 37.67 BTC in transaction fees (approximately $2.4 million), making it the most expensive block ever mined at the time. Within the first nine blocks after the halving, Runes minters paid 78.6 BTC in fees (roughly $4.95 million). The average transaction fee hit $127.97, more than 7x the previous day's average and roughly double the all-time record from May 2021. Total miner revenue on April 20 exceeded $107 million, with over 75% coming from transaction fees rather than the block subsidy.
Within 48 hours, approximately 7,000 Runes had been etched. Daily Runes transactions peaked at 753,584 on April 23, 2024. Runes consumed over 90% of all Bitcoin network fees in the first hours after launch.
The Decline Curve
Fee dominance dropped quickly. By late April, Runes accounted for 60-70% of fees. By May, the share had fallen to roughly 14%. By mid-2024 it was under 9%, and by late 2024 it had dropped below 2%. This trajectory mirrors the pattern seen with Ordinals and BRC-20: an initial speculative rush followed by a sharp normalization.
| Period | Runes Fee Share | Daily Transactions (approx.) |
|---|---|---|
| April 20-23, 2024 | 90%+ | ~750,000 peak |
| Late April 2024 | 60-70% | ~400,000 |
| May 2024 | ~14% | Declining |
| Mid-2024 | ~8% | ~150,000 |
| Late 2024 | <2% | <50,000 |
The design intent was that Runes would consume less block space than BRC-20 on a per-operation basis: roughly 250-350 bytes per transfer versus BRC-20's two transactions plus potential kilobytes of inscription data. In aggregate, though, the efficiency gain was overwhelmed by volume. More people minted more tokens because it was cheaper to do so, a classic Jevons paradox: lower per-unit cost led to higher total consumption.
Efficiency vs. demand: Runes is more block-space-efficient per transaction than BRC-20. But efficiency does not automatically mean less total block space consumed. If the protocol makes token operations cheaper, more people will use it, potentially increasing total demand for block space rather than decreasing it.
The Runes Market: Top Tokens and Trading
The Runes ecosystem is dominated by meme tokens. The largest by market cap is DOG•GO•TO•THE•MOON (ticker: DOG), which was airdropped to over 75,000 holders of the Runestone Ordinal NFT collection. DOG reached an all-time high of approximately $0.0099 in December 2024 and was listed on Coinbase, achieving a peak market cap near $730 million in November 2024 before declining 70%+ from that peak.
Other notable Runes include PUPS•WORLD•PEACE (which migrated from BRC-20 to the Runes standard, originating from the Bitcoin Puppets NFT community), RSIC•GENESIS•RUNE, and LOBO•THE•WOLF•PUP. The total Runes market cap across tracked tokens sits at approximately $130 million as of mid-2026, with 68% of all Runes tokens trading below their initial mint or launch price.
Trading Infrastructure
Three platforms handle the majority of Runes trading volume:
- Magic Eden holds roughly 76% market share as the first major marketplace to support Runes
- OKX captures about 18%, offering full mint, create, and trade functionality with zero-fee Runes trading on mobile
- UniSat holds a smaller share but launched the Hexa hybrid trading engine in 2025 for self-custodial trading
Native wallet support remains limited to Magic Eden Wallet, Xverse, and Oyl. This contrasts sharply with ERC-20 tokens, which are supported by hundreds of wallets and exchanges. The narrow tooling ecosystem is one of the primary constraints on Runes adoption.
Are Tokens on Bitcoin Legitimate or Spam?
The Runes launch reignited a debate that has persisted since Ordinals first appeared in early 2023. The arguments on both sides are substantive and reflect genuinely different visions for what Bitcoin should be.
The Case For
Proponents argue that Bitcoin is permissionless by design, and if users want to issue tokens, the network should accommodate them. Rodarmor himself described the Runes protocol as "harm reduction": if token creation on Bitcoin is inevitable, a protocol that aligns with Bitcoin's native UTXO model is preferable to one that bloats the UTXO set with unspendable outputs.
The mining economics argument carries weight as well. As block subsidies decrease through each halving, transaction fees must eventually sustain network security. Runes and other token protocols generate substantial fee revenue: miners earned over $107 million on Runes launch day alone. Whether this fee pressure is sustainable or merely speculative is an open question, but the demand is real.
The Case Against
Critics view Runes as network spam that displaces legitimate Bitcoin transactions. Luke Dashjr, a long-time Bitcoin Core developer, has argued that Runes "exploits a fundamental design flaw" in Bitcoin, using OP_RETURN in ways not intended by Bitcoin's designers. The fee spikes on launch day priced out users trying to make ordinary Bitcoin payments, demonstrating that speculative token activity can directly harm Bitcoin's utility as peer-to-peer electronic cash.
The UTXO set growth is a concrete concern beyond philosophical objections. Bitcoin's UTXO set expanded to 169 million entries during the Ordinals and BRC-20 era, and while Runes is more efficient per operation than BRC-20, the volume of activity still contributes to node resource requirements. Higher storage and bandwidth costs for running a full node threaten the decentralization that underpins Bitcoin's security model.
Rune IDs, Naming, and the First Rune
Each Rune receives a globally unique ID in the format BLOCK:TX, where BLOCK is the block height and TX is the transaction index within that block. Rune 0 is UNCOMMON•GOODS, etched in block 840,000 with no premine and open minting of 1 unit per transaction. It serves as a reference implementation.
The naming system uses a modified base-26 encoding (A=0 through Z=25, AA=26, and so on) with names restricted to 1-28 uppercase letters. The progressive unlock schedule is designed to create a fair market for short names: at launch, only 13+ character names were available. The minimum length decreases by one character every 17,500 blocks, with single-letter names unlocking approximately four years after launch.
What Happened After the Hype
Runes activity declined sharply after the launch window. Several factors contributed:
- Trader attention rotated to Solana memecoin platforms (particularly pump.fun), AI agent tokens, and Ethereum-based meme tokens
- Wallet support stalled at three native wallets versus hundreds for ERC-20 tokens
- The protocol supports only basic issuance and transfer, lacking DeFi primitives like lending, staking, or automated market makers
- Most Runes tokens lost value: 68% trade below their initial price
The lack of programmability is the fundamental constraint. Bitcoin Script does not support the complex logic needed for AMMs or lending protocols at Layer 1. Runes can create and transfer tokens, but building a DeFi ecosystem on top of them requires infrastructure that Bitcoin L1 does not natively provide.
Emerging Infrastructure
Development continues despite the volume decline. In March 2025, Rodarmor announced an "Agents" upgrade for Runes enabling interactive transaction construction, which could support AMM-like functionality directly on Bitcoin L1. The Alkanes protocol, built on Runes infrastructure, has introduced staking and smart contract capabilities, with its METHANE token growing from $1 million to over $10 million in market cap. UniSat's Hexa hybrid trading engine launched in 2025, enabling self-custodial trading across BRC-20, Runes, and Taproot Assets.
Whether these infrastructure developments can reverse the decline in activity remains to be seen. The Runes protocol itself is stable and functional: the question is whether the ecosystem around it can mature fast enough to sustain interest.
Runes in the Broader Bitcoin Token Landscape
Runes is one of several approaches to bringing token functionality to Bitcoin. Each occupies a different point in the design space:
| Protocol | Layer | Token Type | Trust Model |
|---|---|---|---|
| Runes | L1 (on-chain) | Fungible | Fully on-chain, no indexer needed |
| BRC-20 | L1 (on-chain + indexer) | Fungible | Depends on off-chain indexer consensus |
| Taproot Assets | L1 + Lightning | Fungible + NFT | Universe servers for proof verification |
| RGB | Off-chain (client-side validation) | Fungible + NFT | Client-validated, no global state |
| Spark (BTKN) | L2 (off-chain) | Fungible | 1-of-n operator trust, self-custodial |
Runes and BRC-20 operate entirely on Bitcoin L1, competing for the same block space as regular Bitcoin transactions. Taproot Assets uses on-chain commitments but moves token transfers to Lightning. RGB performs client-side validation entirely off-chain. Each approach trades off between on-chain verifiability, scalability, and block space consumption.
What Runes Means for Bitcoin Tokens Going Forward
Runes demonstrated three things clearly. First, there is genuine demand for fungible tokens on Bitcoin: the launch day fee revenue was not fabricated. Second, a UTXO-native design is technically superior to inscription-based token tracking for fungible assets. Third, on-chain token protocols are fundamentally constrained by Bitcoin L1's throughput and programmability limits.
The third point is particularly important for the long-term token landscape on Bitcoin. Protocols like Runes can create and move tokens efficiently, but building lending markets, liquidity pools, and programmable financial products on top of them requires capabilities that Bitcoin L1 does not offer. This is the space where Layer 2 solutions become relevant.
Spark, for example, supports native token issuance through the BTKN standard and enables stablecoins like USDB via Flashnet. The architecture is different: tokens move off-chain with instant settlement and near-zero fees, while preserving self-custodial guarantees through the statechain model. Where Runes competes with regular Bitcoin transactions for block space, Layer 2 token protocols operate outside the block space constraint entirely.
Both approaches share the same underlying thesis: Bitcoin's ecosystem should support more than just BTC transfers. Whether that demand is best served on-chain (Runes), off-chain with on-chain anchoring (Taproot Assets, RGB), or through dedicated Layer 2 networks (Spark) remains an open design question that the market is actively resolving.
For a deeper look at the broader token landscape on Bitcoin, see Stablecoins on Bitcoin: The Complete Landscape and BtcFi: The Bitcoin DeFi Landscape. Developers interested in building on Spark can explore the Spark documentation and SDK.
This article is for educational purposes only. It does not constitute financial or investment advice. Bitcoin and Layer 2 protocols involve technical and financial risk. Always do your own research and understand the tradeoffs before using any protocol.

