Protocol & Mining
Runes, and the runestone that carries them
What a runestone is
A runestone is a message encoded in the OP_RETURN output of a Bitcoin transaction. OP_RETURN is an opcode that makes an output provably unspendable: a node that sees it knows the output can never be consumed, so it is not added to the unspent output set and does not burden the chain with spendable state. That property is what makes it a natural place to publish data. The bytes are carried in the transaction, they are covered by the transaction's fee, and they are permanently inert as far as the ledger is concerned.
The runestone protocol defines a structure inside those bytes. The message is a sequence of integers, and the protocol assigns meaning to their positions and values: one field identifies the message as a runestone, others carry the operation and its parameters, and the encoding is designed so that a runestone can be recognised and parsed without ambiguity. The protocol documentation describes the integer encoding and the field layout in detail, and the reference implementation is what decides whether a given byte string is a valid runestone at all.
The distinction from ordinals and inscriptions is worth holding onto. An inscription attaches data to a specific satoshi and relies on the witness discount to make the payload affordable. A runestone attaches data to a transaction and uses an unspendable output, so it does not depend on satoshi tracking at all. The two conventions were designed by the same author and share a philosophy — put the meaning in the indexer, not in consensus — but they use different parts of the transaction to do it.
Etching, minting and transferring
A rune begins with an etch. The etching transaction carries a runestone that names the rune, sets its divisibility and supply parameters, and commits to the terms under which it may be minted. The protocol documentation describes the fields an etch can set and the constraints the reference implementation enforces on them. Once the etch is confirmed, the rune exists as far as indexers are concerned, and the parameters recorded in that transaction govern everything that follows.
Minting is the process by which new units of the rune are created. An etch can define an open mint, in which case anyone may send a minting transaction that satisfies the recorded terms, or it can define a closed or capped mint. The terms are fixed at etch time and cannot be revised afterwards, which is the mechanism that gives a rune its supply discipline: the rules are public, they are committed in a confirmed transaction, and every indexer reads them from the same place.
Transfers move existing units between outputs. A transfer runestone assigns balances to specific outputs of the transaction, and the indexer updates its ledger accordingly. The units themselves are not a distinct asset on the Bitcoin ledger — there is no output type that holds runes — so the transfer is a claim recorded in the runestone and interpreted by software. Spending the output that the runestone assigned a balance to is what makes the transfer effective, and the protocol's rules define how balances are carried when outputs are combined or split.
Why the reference implementation is the specification
Bitcoin's own rules are specified in BIPs, and a BIP is a document that describes a change precisely enough that independent implementations can agree. Runes are not specified that way. The protocol's normative definition is the reference implementation itself: the code that parses runestones, applies the etching and minting rules and maintains the ledger of balances. Where the prose documentation and the code disagree, the code is what indexers follow, because agreement between indexers is the only thing that makes a rune balance meaningful.
That arrangement has a real consequence. A protocol defined by an implementation can evolve through that implementation, and a change to parsing or to an edge case is a change to the protocol whether or not anyone wrote it down. It also means the ecosystem's coherence depends on indexers running compatible software. Two indexers that diverge on how a particular runestone is parsed will report different balances for the same rune, and the Bitcoin network will not arbitrate, because it never interpreted the bytes in the first place.
The honest framing is that this is a trade-off rather than a defect. A specification-in-code can move faster than a BIP process and can settle ambiguous cases by fiat, which is useful for a convention that has no consensus role. The cost is that the source of truth is a codebase rather than a document, and anyone building on runes has to treat that codebase as the authority. The protocol documentation is a description of the implementation, not a substitute for it.
What runes do not do
Runes do not give the Bitcoin network any new capability. A node validates a runestone transaction exactly as it validates any other transaction: signatures, amounts, fees and script conditions. The runestone is an unspendable output, and the node's only interest in it is that it consumes block space and contributes to the fee. There is no consensus rule that a rune balance must be conserved, no rule that an etch must be unique, and no rule that a mint must respect its terms. Those constraints exist in the indexer and nowhere else.
Runes also do not inherit Bitcoin's security model in the way a reader might assume. The transactions are as final as any Bitcoin transaction, and the data is as durable as the chain. But the interpretation of that data depends on software that a user chooses to run or trust, and a wallet that reports a rune balance is reporting an indexer's conclusion. The distinction between the ledger's guarantees and the convention's guarantees is the same one that applies to bitcoin-native applications generally, and it is worth stating plainly rather than leaving it implicit.
Sources and references
The description of the runestone encoding, the etch and mint lifecycle, and the role of the reference implementation is taken from the protocol's own documentation and from the BIPs that define the transaction and script rules it relies on. No claim about adoption, market prices or specific incidents is made here.
- The runestone protocol and its normative implementation. Casey Rodarmor, Runes — Ordinal Theory Handbook: describes the runestone message, the etching and minting rules, and the transfer encoding, with the reference implementation as the authority on parsing.
- The reference implementation of the runes indexer. Rodarmor, ord — the ordinals and runes indexer: the codebase that defines how runestones are parsed and how rune balances are maintained.
- OP_RETURN and provably unspendable outputs. Bitcoin, Bitcoin Core — OP_RETURN documentation: explains that OP_RETURN outputs are unspendable and are not added to the UTXO set, which is why they are used to publish data.
- Transaction structure and the outputs a runestone rides in. Bitcoin, Bitcoin Developer Reference — Transactions: defines the transaction and output fields that carry a runestone and that nodes validate.
Related reading
- Protocol, Transactions & MiningThe supply schedule, transaction mechanics and mining economics behind the price.
- Proof of WorkThe hash puzzle, the target and nonce, and why accumulated work secures the chain.
- Difficulty AdjustmentThe 2,016-block retarget, its caps, and the ten-minute target it defends.
- HashrateWhat hashrate measures, why it is estimated, and how it differs from difficulty.
- Mining PoolsPooled hash rate, share accounting, payout schemes and centralisation.
- Miner RevenueThe block subsidy plus fees, and how the mix changes across subsidy epochs.