The Runes protocol embeds fungible token logic directly into Bitcoin's native UTXO model, treating each unspent transaction output as a potential container for a rune balance. Unlike account-based token standards, Runes do not maintain a separate global state mapping addresses to balances. Instead, a rune balance is held within a UTXO, and the protocol's core transfer rule is simple: by default, all runes held in the inputs of a transaction are destroyed unless explicitly redistributed to the transaction's outputs. This design forces wallet developers to treat rune-bearing UTXOs with the same care as bitcoin value, as a naive transaction construction can inadvertently burn a user's entire rune position.

Runes UTXO Management and Transfer Mechanics
Introduction
How Runes use Bitcoin's UTXO model for allocation, default transfer, and explicit edicts via OP_RETURN.
To override the default destruction behavior, the protocol introduces edicts, which are instructions encoded in an OP_RETURN output. An edict specifies a rune ID, an amount, and an output index, allowing precise allocation of runes to specific UTXOs. A single transaction can contain multiple edicts, enabling batched transfers, and can also include a POINTER field to designate a non-OP_RETURN output for protocol data. Any transaction that interacts with runes but fails to parse correctly—due to a malformed OP_RETURN payload, an invalid edict, or an attempt to transfer a rune that does not exist—is classified as a cenotaph. In a cenotaph event, the input runes are not transferred; they are destroyed, creating an irreversible loss for the user.
This UTXO-centric architecture creates significant operational complexity for exchanges, marketplaces, and wallet providers. They must implement UTXO selection algorithms that are rune-aware, ensuring that a rune-bearing UTXO is not accidentally spent as a fee or consolidated into a change output without an accompanying edict. Indexer operators must parse and validate the OP_RETURN data of every transaction to maintain an accurate off-chain ledger of rune allocations. For teams integrating Runes, Chainscore Labs can audit the full transaction construction pipeline—from UTXO selection and edict encoding to cenotaph prevention—to prevent catastrophic asset loss and ensure compatibility with the reference ord implementation.
Quick Facts
Operational facts about how Runes interact with Bitcoin's UTXO model, including default transfer behavior, explicit edicts, and cenotaph risks.
| Area | What changes | Who is affected | Action |
|---|---|---|---|
Default Transfer | Runes on input UTXOs are destroyed unless explicitly allocated via an OP_RETURN edict. The default behavior is to burn, not to carry forward. | Wallet developers, exchange integration teams, end users | Audit transaction construction logic to ensure edicts are always included when moving rune-bearing UTXOs. |
Edict Encoding | Transfer instructions are encoded in an OP_RETURN output using a specific data-push format. Malformed edicts trigger a cenotaph. | Wallet developers, indexer operators | Validate edict encoding against the canonical specification to prevent accidental cenotaph creation. |
Cenotaph Trigger | A malformed OP_RETURN or an unbalanced allocation causes the transaction to become a cenotaph, destroying all input runes. | All senders of runes, wallet developers | Implement pre-flight validation in wallets to simulate the edict outcome and warn users before broadcasting. |
UTXO Selection | Rune-aware UTXO selection must isolate rune-bearing UTXOs to prevent accidental spending as fees or inclusion in non-rune transactions. | Wallet developers, automated trading systems | Integrate rune-aware coin selection algorithms that tag and protect rune-bearing UTXOs from standard spending paths. |
Allocation Logic | Edicts specify exact amounts to allocate to specific outputs. Any remainder left unallocated is destroyed. | Wallet developers, DeFi protocols handling runes | Build reconciliation logic to verify that the sum of allocated runes equals the total input runes, preventing silent loss. |
Indexer Dependency | Rune balances are not enforced by Bitcoin consensus. They are computed by off-chain indexers interpreting the edict history. | Exchange operators, custodians, data teams | Run multiple indexer implementations to detect state divergence and prevent balance display errors. |
OP_RETURN Size Limit | The number of edicts per transaction is constrained by the 80-byte OP_RETURN limit, capping complex batch transfers. | Protocol architects, marketplace builders | Design batching strategies that respect the size limit or use multiple transactions for large distributions. |
UTXO Allocation and Transfer Mechanics
How Runes interact with Bitcoin's UTXO model, including default allocation rules and explicit transfer instructions via OP_RETURN edicts.
The Runes protocol encodes fungible token balances directly into Bitcoin's Unspent Transaction Output (UTXO) set, making UTXO management the core operational concern for any wallet or service handling Runes. Unlike account-based token standards, a Rune balance does not live at an address but is held by a specific UTXO. When that UTXO is spent in a transaction, the Runes it carries are destroyed unless the transaction explicitly instructs the protocol on how to redistribute them. This design ties token safety directly to the robustness of a wallet's coin-selection and transaction-construction logic.
The default transfer behavior is a critical safety net: if a transaction contains no OP_RETURN output with valid Runes edicts, all Runes held by the transaction's inputs are allocated to the first non-OP_RETURN output. This default rule prevents accidental loss in simple single-recipient transfers but becomes a significant risk vector in multi-output transactions, such as batch payments or when spending to a marketplace contract. A wallet that inadvertently constructs a transaction with multiple outputs without explicit edicts will see all input Runes consolidated into the first output, potentially sending them to an unintended recipient or a non-Rune-aware contract.
For precise control, the protocol defines an OP_RETURN-based edict system. An edict specifies a Rune ID, an amount, and an output index, allowing a single transaction to perform complex, multi-asset, multi-recipient distributions atomically. The protocol enforces strict rules: edicts must be sorted by Rune ID, amounts are encoded in a 128-bit little-endian format, and any malformation triggers the cenotaph model, destroying all input Runes. This makes rigorous input validation in transaction construction non-negotiable. Wallet developers must implement edict generation that correctly handles integer division for leftover dust and ensures the sum of all edicts for a given Rune ID does not exceed the total input balance.
For exchanges, custodians, and marketplace operators, the operational impact is immediate. A standard consolidation transaction that sweeps many small deposits into a cold wallet can destroy all associated Runes if not constructed with explicit edicts. Integration teams must treat every Rune-bearing UTXO as a special asset that requires a distinct spending path. Chainscore Labs can audit a wallet's UTXO selection and Rune transfer logic to identify cenotaph triggers, validate edict construction against the reference implementation, and ensure that default allocation behavior is never unintentionally relied upon in multi-output flows.
Affected Actors
Wallet Developers
Runes UTXO management is the single highest-risk area for wallet teams. The default behavior—where all unallocated runes in inputs are transferred to the first non-OP_RETURN output—means naive UTXO selection can silently move user assets to unintended addresses. Wallets must implement explicit edict-based transfer logic and pre-flight cenotaph detection before broadcasting.
Key actions:
- Implement UTXO selection that isolates rune-bearing outputs from non-rune outputs.
- Build edict construction logic that respects user intent for every rune in every input.
- Add pre-broadcast cenotaph checks: malformed OP_RETURN data, zero-value transfers, or mismatched edicts must trigger user warnings.
- Handle the
OP_RETURNoutput ordering requirement—it must be the first output after the default transfer output. - Test against the
ordreference indexer to verify balance reconciliation after complex multi-rune transfers.
Chainscore can audit your wallet's UTXO selection and rune transfer construction to prevent irreversible user loss from cenotaph triggering or default-transfer misrouting.
Implementation Impact Areas
The Runes protocol's tight coupling with Bitcoin's UTXO model creates critical implementation risks. Wallets, exchanges, and indexers must handle UTXO selection, OP_RETURN construction, and error conditions with extreme precision to prevent permanent asset loss.
UTXO Selection and Rune Allocation Logic
The default behavior allocates all input runes to the first non-OP_RETURN output. Wallets must implement explicit UTXO selection to prevent runes from being accidentally swept to a change address or exchange hot wallet. A flawed selection algorithm can permanently transfer assets to an unintended recipient. Chainscore can audit your UTXO selection and coin-choosing logic to ensure rune-bearing UTXOs are handled as a distinct asset class, preventing commingling with standard BTC spend paths.
Edict Construction and OP_RETURN Encoding
Edicts are the only mechanism to override default transfer behavior. They must be encoded into an OP_RETURN output with the R magic bytes and correct varint formatting. Off-by-one errors in output indexing, incorrect ID encoding, or exceeding the maximum number of edicts will trigger a cenotaph, destroying the input runes. Teams must implement rigorous unit tests against the reference ord implementation. Chainscore can review your edict-construction module to verify correctness against all edge cases defined in the protocol specification.
Cenotaph Prevention and Error Handling
A cenotaph is an irreversible, protocol-level error state triggered by malformed rune transactions. It results in the total destruction of input runes with no recovery mechanism. Common triggers include invalid edict encoding, unrecognized OP_RETURN fields, or script interpreter failures. Wallet and exchange infrastructure must implement pre-flight validation that simulates indexer behavior before broadcasting. Chainscore can conduct a cenotaph-risk audit of your transaction construction pipeline to identify failure modes before they cause user asset loss.
Indexer State Reconciliation
Rune balances are not enforced by Bitcoin consensus but by off-chain indexers interpreting OP_RETURN data. Discrepancies between indexer implementations or processing delays can lead to balance display errors, failed transfers, or double-spend-like scenarios. Operators must run their own indexer or cross-reference multiple providers. Chainscore can assess your indexer integration architecture for state divergence risks and recommend monitoring strategies to detect inconsistencies before they impact downstream operations or customer balances.
Fee Management and Dust Outputs
Rune transfers compete for block space with standard Bitcoin transactions. High-fee environments can make rune transfers uneconomical, while dust outputs containing small rune amounts can become unspendable if their BTC value is below the dust threshold. Wallets must calculate the economic viability of transfers and prevent the creation of stranded UTXOs. Chainscore can model your fee-estimation and dust-prevention logic to ensure operational resilience under various mempool congestion scenarios.
PSBT and Multi-Party Transaction Coordination
Partially Signed Bitcoin Transactions (PSBTs) involving runes require careful handling to ensure all parties agree on the edicts and output allocations. A co-signer who is unaware of the rune semantics could inadvertently break the edict structure, causing a cenotaph. Marketplaces and multi-sig wallets must extend their PSBT workflows to include rune state validation. Chainscore can review your PSBT construction and signing logic to ensure rune integrity is maintained across all coordination rounds.
Risk Matrix
Operational risks introduced by Runes' UTXO-based transfer mechanics, including cenotaph triggers, rune dust, and indexer divergence. Teams must validate their transaction construction logic against these failure modes to prevent irreversible asset loss.
| Risk | Failure mode | Severity | Affected actors | Mitigation |
|---|---|---|---|---|
Cenotaph creation | Malformed OP_RETURN data or invalid edicts cause input runes to be destroyed instead of transferred | Critical | Wallet developers, exchange integration teams, end users | Implement strict client-side validation of edict encoding before broadcasting; audit transaction construction logic against the reference |
Accidental rune burning | Default transfer behavior sends runes to the first non-OP_RETURN output; if that output is a dust or change address without rune awareness, runes are lost | Critical | Wallet developers, automated trading systems | Always construct explicit edicts for rune-bearing UTXOs; never rely on default transfer behavior for high-value transactions |
UTXO consolidation loss | Consolidating multiple rune-bearing UTXOs without explicit edicts triggers cenotaph and destroys all input runes | High | Wallet developers, UTXO management tools | Pre-consolidation checks must detect rune-bearing inputs; use edicts to specify exact output distribution before any consolidation transaction |
Indexer state divergence | Different indexer implementations disagree on cenotaph recognition or edict parsing, leading to balance discrepancies across wallets and marketplaces | High | Indexer operators, marketplace backends, explorers | Run cross-indexer reconciliation checks; validate against the canonical |
Rune dust outputs | Edicts creating outputs with rune amounts below the economic spend threshold create unspendable UTXOs that bloat wallets | Medium | Wallet developers, node operators | Enforce minimum rune amount thresholds in wallet UI; warn users before creating outputs that will become economically unspendable |
Fee underpayment during high congestion | Complex rune transactions with multiple edicts require larger transaction sizes; fee estimation errors cause transaction delays or rejection | Medium | Wallet developers, exchange operations teams | Implement dynamic fee estimation that accounts for OP_RETURN size and edict count; monitor mempool conditions during high-activity periods |
Reorg-induced balance inconsistency | A chain reorganization invalidates a rune transaction, but indexers temporarily show conflicting balances | Low | Exchange reconciliation systems, high-frequency traders | Require sufficient confirmation depth before crediting rune deposits; implement reorg detection in balance reconciliation pipelines |
Operator and Developer Checklist
A practical checklist for wallet developers, exchange integration teams, and indexer operators to ensure safe handling of Runes UTXOs and prevent accidental loss through cenotaph triggering or incorrect rune allocation.
What to check: Every Runes transfer transaction must include a valid OP_RETURN output containing the rune ID and a sequence of edicts specifying exact amounts and output indices.
Why it matters: A malformed OP_RETURN message triggers the cenotaph model, destroying all input runes. This is irreversible. Common failure modes include incorrect integer encoding, mismatched output indices, or exceeding the 80-byte OP_RETURN limit.
Readiness signal: Your transaction builder passes a comprehensive test suite covering all edict encoding edge cases, including zero-amount transfers, multiple edicts in a single transaction, and transfers to outputs beyond the declared output count. The builder should reject invalid edicts before broadcasting.
Source Resources
Use these resources to verify Runes allocation rules, inspect reference behavior, and validate transaction construction. Production teams should test wallet and indexer logic against the current ord implementation rather than relying solely on secondary documentation.
Looking to build on a specific blockchain?
We build smart contracts, DeFi applications, wallets, tokenization platforms, and blockchain infrastructure across the major ecosystems teams choose today. That includes Ethereum, Arbitrum, Optimism, Polygon, Avalanche, Solana, Sui, Aptos, Hedera, Stellar, and NEAR, with support for additional EVM and non-EVM networks based on your product requirements.
EVM ecosystems
- Ethereum
- Arbitrum
- Optimism
- Polygon
- Avalanche
- Cronos

Non-EVM ecosystems
- Solana
- Sui
- Aptos
- Hedera
- Stellar
- NEAR
Additional ecosystems
- Polkadot
- Cosmos
- TON
- Cardano
- Algorand
- Tempo
Also available for Base, appchains, custom EVM networks, and cross-chain product architecture.
Frequently Asked Questions
Answers to the most common operational and technical questions from wallet developers, exchange integration teams, and indexer operators managing rune-bearing UTXOs.
A Runes transfer does not create a separate ledger entry. Instead, the protocol uses the OP_RETURN output of a Bitcoin transaction to encode an 'edict', which is a directive that reallocates a specific amount of a rune from the transaction's inputs to its outputs. The rune balance is effectively a property of the UTXO itself.
- Default Behavior: If no edict is present, all runes held by the transaction's inputs are transferred to the first non-
OP_RETURNoutput by default. - Explicit Edicts: An edict specifies a Rune ID, an amount, and an output index. This allows for precise splitting, combining, or partial transfers of a rune balance across multiple outputs.
- Operational Impact: Wallet developers must implement UTXO selection logic that is aware of rune balances to avoid unintentionally spending a rune-bearing UTXO as a fee or sending it to a change address without a corresponding edict.
Delivering blockchain solutions for 5+ years.
We have partnered with 50+ leading DeFi protocols, NFT ecosystems, and fintech innovators to build secure, scalable, and capital-efficient blockchain products.
Selected Partners & Clients
“I've been working with Chainscore Labs for last 3+ years, they've consistently delivered with strong ownership across multiple projects. The team is reliable and detail-oriented.”
How to get started?
If you're looking for blockchain integration, ChainScore Labs has 5+ years of experience helping teams build and integrate exchanges, wallets, smart contracts, tokenization solutions, and protocol-connected products, we can help you choose the right path, integrate securely, and get to production faster. Our team consists of experienced blockchain developers and architects who can help you with your blockchain integration needs.
Exploration & Strategy
Define your product goals and choose the right blockchain architecture for your use case.
Architecture & Design
Design the smart contracts, tokenomics, and security parameters of your system.
Development & Integration
Build and integrate with wallets, oracles, and front-end dApps for a seamless experience.
Security & Launch
Comprehensive audits followed by a risk-managed mainnet deployment to protect your users.
Discover our
blockchain development services.
We build production-grade blockchain solutions for top-tier projects across DeFi and Web3.
Need a blockchain engineering team?
Send the project context and we will respond with next steps, scope questions, and a practical path to delivery.


