Sunlit strategy table with pale stone, greenery, and a calm abstract digital asset risk dashboard.
Protocols

Rune ID and Symbol Registry Standard

Standard for unique Rune identifiers (Block:TxIndex) and the optional currency symbol system, including challenges of symbol squatting and display name conflicts. Affects wallet and exchange teams resolving ticker ambiguity.
introduction
IDENTIFIER AND DISPLAY-NAME RESOLUTION

What is the Rune ID and Symbol Registry Standard?

Defines how Runes are uniquely identified on Bitcoin and how optional currency symbols are assigned, creating critical integration challenges for wallets and exchanges.

The Rune ID and Symbol Registry Standard defines the canonical method for uniquely identifying a Rune token and the optional, human-readable currency symbol system. A Rune ID is a deterministic identifier derived from the etching transaction's position in the blockchain, formatted as BLOCK:TXINDEX. This ensures every Rune has a globally unique, immutable identifier that is independent of any off-chain naming system. The symbol registry, an integral part of the ord reference implementation, manages the assignment of short ticker symbols (e.g., DOG•GO•TO•THE•MOON) to these numeric IDs, introducing a layer of social convention on top of the protocol's cryptographic uniqueness.

The symbol assignment process is first-come, first-served at the indexer level, which creates immediate operational challenges for wallets, exchanges, and marketplaces. Symbol squatting—where an actor etches a Rune with a desirable symbol before a well-known project can—is a primary risk, leading to user confusion and phishing vectors. Unlike the Rune ID, which is cryptographically bound to the etching transaction, the symbol is merely a display convention enforced by the dominant ord indexer. This means that a Rune's display name is not a consensus-level property of Bitcoin and could theoretically differ between indexer implementations, creating a fragmented user experience if alternative indexers gain adoption.

For integration teams, the core operational rule is to treat the BLOCK:TXINDEX Rune ID as the canonical asset identifier for all backend logic, balance tracking, and transaction construction. The currency symbol should be treated as a volatile, untrusted display hint. A robust implementation resolves symbols against a trusted indexer API and must gracefully handle symbol collisions, renames, or the absence of a symbol. Chainscore Labs can advise wallet and exchange teams on designing display-name resolution strategies that mitigate user confusion and phishing risks, including implementing user-facing warnings for symbol conflicts and building indexer-abstraction layers to prevent reliance on a single source of truth for symbol-to-ID mapping.

IDENTIFIER AND DISPLAY STANDARD

Quick Facts

Key operational facts about the Rune ID format and the optional symbol registry, highlighting the risks of display-name ambiguity and the responsibilities of wallets, exchanges, and indexers.

AreaWhat changesWho is affectedAction

Rune ID Format

Unique identifier is Block:TxIndex (e.g., 840000:1234), immutable and independent of ticker symbols.

Indexer operators, wallet developers, exchange integration teams

Use the numeric Rune ID as the canonical key in all databases and APIs to prevent collisions.

Symbol Registry

An optional, first-come-first-served ticker symbol (e.g., DOG) is assigned at etching. It is not a unique key.

Wallet UI/UX teams, exchange listing teams, market data providers

Never rely on the symbol alone for asset identification. Always resolve and display the underlying Rune ID to users.

Symbol Squatting

Valuable or misleading symbols can be claimed by anyone, creating confusion with established off-chain brands or other protocols.

Protocol teams, brand owners, compliance officers

Implement a display-name resolution strategy that cross-references Rune IDs. Monitor for phishing attempts using look-alike symbols.

Display Name Conflicts

Multiple runes can have visually similar or identical symbols (e.g., using Unicode homoglyphs), leading to user error.

Wallet developers, exchange security teams, end-users

Adopt a display standard that shows the symbol alongside a truncated Rune ID or a verified badge. Audit UI for homoglyph attacks.

Indexer Interpretation

Indexers must correctly parse the etching transaction to extract the symbol and Rune ID, and serve both in their APIs.

Indexer operators, backend engineers

Verify that your indexer implementation correctly decodes the OP_RETURN data for the symbol field and exposes the numeric ID as the primary key.

Cenotaph Risk

A malformed etching transaction with an invalid symbol encoding will create a cenotaph, destroying the input runes.

Wallet developers, users creating etchings

Validate symbol encoding strictly against the protocol specification before broadcasting an etching transaction to prevent accidental loss.

Integration Mapping

Bridges and cross-chain protocols must map the canonical Rune ID, not the symbol, to wrapped or synthetic assets on other chains.

Bridge operators, L2 protocol developers

Design cross-chain mappings using the immutable Block:TxIndex identifier to guarantee provenance and prevent symbol-based spoofing.

technical-context
IDENTIFIER CONSTRUCTION AND SYMBOL RESOLUTION

Technical Mechanism and Encoding

How Runes are uniquely identified on-chain and how the optional currency symbol system maps to human-readable tickers, including the operational risks of symbol squatting and display ambiguity.

The Runes protocol assigns a unique, immutable identifier to every etched rune based on the position of the etching transaction within the Bitcoin blockchain. This Rune ID is encoded as a Block:TxIndex tuple, where Block is the height of the block containing the etching transaction and TxIndex is the index of that transaction within the block. This scheme guarantees global uniqueness without requiring a central registry, as the Bitcoin blockchain itself provides a strictly ordered, append-only log. For wallets, indexers, and exchanges, the Rune ID is the canonical key for internal accounting, balance tracking, and transfer validation, and it must be treated as the authoritative reference for any rune, regardless of its display name.

In addition to the numeric Rune ID, the protocol allows an etcher to optionally specify a currency symbol during the etching process. This symbol is a human-readable ticker, typically a short string of uppercase letters, intended to serve as a familiar display name. However, the symbol system is a purely cosmetic, first-come-first-served layer on top of the canonical Rune ID. The protocol enforces no uniqueness constraints on symbols beyond the initial etching event, meaning that while a specific symbol can only be claimed once by a valid etching, there is no mechanism to prevent the creation of visually or semantically confusing alternatives. This creates a high-risk environment for symbol squatting and homoglyph attacks, where malicious actors etch runes with symbols that mimic established assets to deceive users.

The operational consequence for wallets, exchanges, and marketplaces is that the symbol field is an untrusted, user-facing convenience that must never be used as a primary key for asset resolution. Teams must implement a display-name resolution strategy that prioritizes the canonical Rune ID for all backend operations while presenting a curated, verified symbol to users. This often involves maintaining an internal allowlist or integrating with a community-maintained registry to flag known legitimate symbols and suppress or warn against unverified ones. Failure to do so exposes users to phishing risks, where a fraudulent rune with a deceptive symbol is mistaken for a high-value asset, leading to incorrect purchases or transfers.

Chainscore Labs can advise integration teams on designing robust asset-resolution pipelines that decouple canonical identification from user-facing display. This includes reviewing the logic that maps Rune IDs to symbols in UI layers, assessing the risk of homoglyph confusion in proposed ticker lists, and helping to define a verifiable credential or registry strategy that allows wallets and exchanges to cryptographically assert the legitimacy of a symbol-to-Rune ID binding without relying on a single centralized arbiter.

IMPACT BY ROLE

Affected Actors

Wallet Developers

Wallet teams must implement the Block:TxIndex Rune ID format for internal asset tracking and display. The optional currency symbol system introduces a critical display-name resolution challenge: a Rune's ticker symbol is not a unique on-chain identifier and is subject to squatting.

Action Steps:

  • Build a resolution layer that maps Rune IDs to user-defined or community-curated display names, never trusting the symbol field alone.
  • Implement UTXO selection logic that is aware of rune-bearing outputs to prevent accidental spending as fees.
  • Add pre-flight checks for cenotaph triggers to prevent user-initiated malformed transactions that destroy assets.
  • Validate that your wallet's PSBT handling correctly preserves rune allocation across inputs and outputs.

Chainscore can audit your Rune ID parsing, symbol resolution strategy, and UTXO management logic to prevent asset loss and phishing risks.

implementation-impact
RUNE ID AND SYMBOL REGISTRY STANDARD

Implementation Impact Areas

The Rune ID and Symbol Registry standard introduces unique asset identification and an optional ticker system. This creates specific implementation burdens for wallets, exchanges, and indexers that must resolve ambiguity and prevent user-facing attacks.

01

Symbol Squatting and Display-Name Collisions

The optional currency symbol system allows multiple etchings to claim the same ticker (e.g., multiple 'DOG' runes). Wallets and exchanges cannot rely on the symbol alone for asset identification. Implementations must build a resolution strategy that prioritizes the immutable Rune ID (Block:TxIndex) as the canonical identifier. Display logic should surface potential conflicts to users, clearly distinguishing between the ticker and the unique ID. Without this, users are vulnerable to phishing attacks where a malicious actor etches a rune with a well-known symbol to deceive buyers.

02

Indexer and Balance Reconciliation Logic

Indexers must correctly parse and store the immutable Rune ID from the etching transaction, linking all subsequent mints and transfers to this canonical key. Balance reconciliation processes must be updated to use the Rune ID, not the symbol, as the primary database key. Teams operating multiple indexer instances or aggregating data from third-party providers should implement cross-referencing checks to detect state divergence where two indexers associate the same symbol with different Rune IDs. A failure here leads to incorrect balance displays and failed transactions.

03

Wallet UTXO Selection and Transfer Safety

Wallet software must update its internal asset model to tag UTXOs with the full Rune ID, not just a human-readable symbol. When constructing a transfer, the wallet's UTXO selection algorithm must filter by the specific Rune ID to prevent accidentally spending a different rune that shares the same symbol. This is a critical safety control. The transaction construction logic should also validate that the edicts in the OP_RETURN output reference the correct Rune ID to avoid creating a cenotaph transaction that destroys the user's runes.

04

Exchange Deposit and Listing Workflow

Exchange integration teams must redesign their asset listing and deposit monitoring workflows. A new listing request should be keyed to a specific Rune ID, not a ticker. Deposit detection scripts must scan for UTXOs assigned to that exact Rune ID by a trusted indexer. Customer deposit UIs should display a confirmation step that shows the full Rune ID for verification. This prevents a scenario where a user deposits a worthless rune with the same symbol as a high-value asset, leading to a costly reconciliation dispute.

05

Registry and Metadata Provider Integration

Applications should integrate with community-curated registries or metadata providers that map Rune IDs to verified symbols, logos, and project information. This off-chain resolution layer is essential for a usable UX but introduces a trust dependency. Implementations should architect a fallback mechanism: if a registry is unavailable or a Rune ID is unverified, the UI must gracefully degrade to display the raw Rune ID. Chainscore can review this integration architecture to ensure it doesn't become a single point of failure or a vector for serving malicious metadata.

RUNE ID AND SYMBOL REGISTRY STANDARD

Risk Matrix

Operational and security risks introduced by the Rune ID format and the optional, non-unique currency symbol system. This matrix helps wallet, exchange, and indexer teams evaluate the impact of identifier ambiguity on user safety and asset reconciliation.

Risk AreaFailure ModeSeverityAffected ActorsMitigation Strategy

Symbol Squatting

A malicious actor etches a Rune with a high-value ticker (e.g., 'PEPE') before the canonical project, creating a confusing look-alike asset.

High

Wallets, Exchanges, Marketplaces, End-Users

Do not use the symbol as a primary key. Require users to verify the full Rune ID (Block:TxIndex) before listing or trading. Implement a community-curated allowlist for known projects.

Display Name Collision

Two legitimate projects etch Runes with the same symbol but different Unicode characters, appearing identical in a wallet UI that lacks proper rendering.

High

Wallet Developers, End-Users

Display the Rune ID prominently alongside the symbol. Implement a 'symbol + ID' composite display name. Audit UI for Unicode confusables and normalization issues.

Indexer State Divergence

Different indexer implementations resolve a symbol to different Rune IDs due to a reorg or a race condition during the etching reveal.

Medium

Indexer Operators, Exchanges, Data Aggregators

Do not rely on a single indexer for symbol resolution. Cross-reference the canonical ord reference indexer. Implement a confirmation depth requirement before trusting a new symbol-to-ID mapping.

Phishing via Fake Symbols

An attacker distributes a wallet transaction or marketplace listing using a fake symbol that resolves to a worthless Rune ID, tricking users into buying the wrong asset.

High

Marketplaces, Wallets, Custodians

Transaction previews must show the full Rune ID. Marketplace backends must validate the Rune ID against the listing's symbol before executing a trade. Educate users to verify identifiers.

Cenotaph from Malformed Edicts

A wallet constructs a transfer edict using a symbol that resolves incorrectly, causing the transaction to be malformed and the input Runes to be burned by the cenotaph model.

Critical

Wallet Developers, End-Users

Wallet transaction construction logic must resolve symbols to exact Rune IDs before building the OP_RETURN edict. Implement a pre-flight check that simulates the transfer and validates the output.

Registry Trust Assumption

Teams treat a community-maintained symbol registry as a source of truth, but the registry is not part of the consensus protocol and can be manipulated or become stale.

Medium

All Integrators

Treat any off-chain symbol registry as a hint, not an authoritative source. The canonical source of truth is the on-chain etching transaction. Build systems that are resilient to registry downtime or compromise.

Governance Conflict

A dispute arises over which Rune ID is the 'legitimate' owner of a symbol, leading to community fragmentation and competing asset listings across different platforms.

Low

Marketplaces, Wallets, Governance Bodies

Establish a clear, transparent policy for resolving symbol disputes. Publish a decision log. Allow users to manually override symbol-to-ID mappings in their local client.

RUNE ID AND SYMBOL REGISTRY STANDARD

Display-Name Resolution Checklist

A practical checklist for wallet, exchange, and explorer teams to implement robust display-name resolution, mitigating risks from symbol squatting, homoglyph attacks, and indexer discrepancies.

What to check: Confirm that the system resolves a human-readable name (e.g., SATOSHI•NAKAMOTO) to the correct numeric Rune ID (Block:TxIndex) using a trusted indexer or a local database built from canonical data.

Why it matters: The Rune ID is the only immutable identifier. Symbols are optional and can be duplicated or spoofed across different etchings. Relying solely on a symbol for asset identification will lead to incorrect balance tracking and potential loss.

Readiness signal: The system's asset table uses the Rune ID as the primary key, not the symbol. The resolution function queries by Rune ID and returns the associated symbol as a display property.

Chains We Build On

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 logo
    Ethereum
  • Arbitrum logo
    Arbitrum
  • Optimism logo
    Optimism
  • Polygon logo
    Polygon
  • Avalanche logo
    Avalanche
  • Cronos logo
    Cronos

Non-EVM ecosystems

  • Solana logo
    Solana
  • Sui logo
    Sui
  • Aptos logo
    Aptos
  • Hedera logo
    Hedera
  • Stellar logo
    Stellar
  • NEAR logo
    NEAR

Additional ecosystems

  • Polkadot logo
    Polkadot
  • Cosmos logo
    Cosmos
  • TON logo
    TON
  • Cardano logo
    Cardano
  • Algorand logo
    Algorand
  • Tempo logo
    Tempo

Also available for Base, appchains, custom EVM networks, and cross-chain product architecture.

RUNES IDENTIFIER AND SYMBOL RESOLUTION

Frequently Asked Questions

Technical questions about Rune ID uniqueness, symbol conflicts, and display-name resolution strategies for wallet and exchange teams.

Every Rune has a unique numeric Rune ID composed of the block height and transaction index of its etching (e.g., 840000:12). This ID is immutable and serves as the canonical identifier for all protocol-level operations, including minting and edicts.

  • Why it matters: The optional currency symbol is a convenience for human readability but is not guaranteed to be unique. Two different Runes can claim the same symbol.
  • What to check: Ensure your backend database schema uses the Rune ID as the primary key, not the symbol. All indexer queries, balance lookups, and transfer instructions must resolve to the Rune ID.
  • Readiness signal: Your system can correctly process a transfer for a Rune when multiple Runes share the same symbol, based solely on the user's intent or asset selection.
Trusted by Industry Leaders

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

ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
ChainVote logo
Reax logo
Sokail logo
Swapsicle logo
SyntheX logo
Tekika logo
Telos logo
Zexe logo
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.
L
Lee Erswell
CEO, Telos Foundation
how to get started

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.

01

Exploration & Strategy

Define your product goals and choose the right blockchain architecture for your use case.

02

Architecture & Design

Design the smart contracts, tokenomics, and security parameters of your system.

03

Development & Integration

Build and integrate with wallets, oracles, and front-end dApps for a seamless experience.

04

Security & Launch

Comprehensive audits followed by a risk-managed mainnet deployment to protect your users.

Start a build

Need a blockchain engineering team?

Send the project context and we will respond with next steps, scope questions, and a practical path to delivery.