Existing Documentation

BRC-20 and BRC2.0 technical documentation catalog

Written By zbam

Last updated 25 days ago


Primary protocol specifications

The foundational BRC-20 documentation exists across two authoritative sources: Domo's original specification and the Layer1 Foundation's updated protocol documentation.

Original BRC-20 whitepaper

  • URL: https://domo-2.gitbook.io/brc-20-experiment

  • Type: Original protocol specification

  • Source: Official/Primary (authored by @domodata, BRC-20 creator)

  • Description: The "definitive brc-20 white paper" containing the three core operations (deploy, mint, transfer), JSON inscription format specifications, balance state rules, and technical constraints including uint128 standard with max 18 decimals. Explicitly designated as unalterable.

Layer1 Foundation protocol documentation

  • URL: https://layer1.gitbook.io/layer1-foundation/protocols/brc-20/documentation

  • Type: Updated protocol documentation

  • Source: Official/Primary (Layer1 Foundation)

  • Description: Current official documentation incorporating all protocol updates: block 816,000 ord version freeze (v0.90), Jubilee upgrade (ord 0.14), and block 837,090 additions including self-mint functionality, 5-byte tickers, and burn mechanism via OP_RETURN.

Layer1 Foundation governance portal

  • URL: https://layer1.foundation/brc20

  • Type: Governance and organization portal

  • Source: Official/Primary

  • Description: Official non-profit organization page listing governance structure (President: Domo; Vice President: Isabel Foxen Duke), lead maintainers (Best in Slot, UniSat), and partner organizations. Links to official forum at https://l1f.discourse.group/.

Protocol improvement proposals


BRC2.0 technical documentation

BRC2.0 introduces EVM smart contract execution to Bitcoin's Layer 1 without bridges or Layer 2 solutions. Gas costs are handled at the indexer level—users pay only Bitcoin transaction fees.

BRC2.0 programmable module repository

  • URL: https://github.com/bestinslot-xyz/brc20-programmable-module

  • Type: Core implementation repository

  • Source: Official/Primary (Best in Slot)

  • Description: Rust implementation using revm (Rust EVM) execution engine. Provides JSON-RPC 2.0 server supporting standard eth_* methods plus custom brc20_* methods. Includes BRC20_Controller contract at address 0xc54dd4581af2dbf18e4d90840226756e9d2b3cdb.

Layer1 Foundation BRC2.0 proposal

  • URL: https://l1f.discourse.group/t/brc2-0-programmable-module-proposal/766

  • Type: Protocol specification/technical whitepaper

  • Source: Official/Primary (published March 31, 2025)

  • Description: Complete architectural specification detailing EVM execution engine, address translation formula (evm_addr = keccak256(bitcoin_pkscript_bytes).slice(-40)), smart contract deployment via inscriptions, and custom Bitcoin precompiles at addresses 0x...ff through 0x...fb.

BRC2.0 proposals repository

  • URL: https://github.com/bestinslot-xyz/brc20-proposals

  • Type: Protocol improvement proposals

  • Source: Official/Primary

  • Description: Formal BRC improvement proposals including:

    • 000: Programmable Module specification

    • 001: 6-byte ticker namespace

    • 002: BRC20 precompile removal

    • 003: EVM upgrade to Prague

    • 004: Bitcoin transaction ID precompile

Bitcoin precompile specifications

Precompile Address

Function

0x...fe

BIP-322 signature verification

0x...fd

Bitcoin transaction details retrieval

0x...fc

Last satoshi location tracking

0x...fb

Time lock wallet pkscript generation

0x...fa

Current Tx ID

BRC2.0 explorer


Ordinals protocol documentation

BRC-20 operates as a layer built on Ordinals. Understanding the underlying ordinal theory is essential for protocol development.

Ordinal Theory Handbook

  • URL: https://docs.ordinals.com/

  • Type: Official protocol documentation

  • Source: Official/Primary (Casey Rodarmor, Raph Japh)

  • Description: Definitive guide covering ordinal numbering scheme, five notation systems (Integer, Decimal, Degree, Percentile, Name), rarity classification, inscriptions documentation, and Runes specification. Available in 14 languages.

ord GitHub repository

  • URL: https://github.com/ordinals/ord

  • Type: Reference implementation

  • Source: Official/Primary

  • Stars: 3,900+ | License: CC0-1.0 | Language: Rust (96.7%)

  • Description: Index, block explorer, and command-line wallet. Current release v0.24.2 (November 2025). Requires synced bitcoind with -txindex flag.

Ordinals BIP (draft)

  • URL: https://github.com/ordinals/ord/blob/master/bip.mediawiki

  • Type: Technical specification

  • Source: Official/Primary (Casey Rodarmor)

  • Description: 15-line algorithm specification for ordinal assignment, Python pseudocode for subsidy calculation, satpoint notation, and compatibility analysis for covenants and Lightning Network.

Casey Rodarmor's technical writings


GitHub repositories and implementations

Best in Slot Open Protocol Indexer (OPI)

  • URL: https://github.com/bestinslot-xyz/OPI

  • Type: Reference indexer implementation

  • Source: Official/Primary (Lead Maintainer)

  • Stars: 220+ | License: Apache-2.0 | Latest: v2.0.3

  • Description: Open-source indexing client using fork of ord 0.23.2. Modules for BRC-20, Bitmap, SNS, and Runes. PostgreSQL backend with reorg protection and block hash verification.

BRC-20 indexer rules documentation

  • URL: https://docs.bestinslot.xyz/brc-20-indexer-rules

  • Type: Implementation specification

  • Source: Official/Primary

  • Description: Critical indexer rules: MIME type must be "text/plain" or "application/json"; ALL JSON fields must be strings (not numbers); use byte count for UTF-8 emoji tickers; reorg handling requirements.

Additional repositories

Repository

URL

Type

BRC-20 Devs Org

https://github.com/brc20-devs

Development organization

UniSat BRC-20 Indexer

https://github.com/unisat-wallet/libbrc20-indexer

Go indexer library

OKX BRC20S

https://github.com/okx/BRC20S

Protocol implementation

Next-DAO Indexer

https://github.com/Next-DAO/brc20_indexer

Node.js indexer


Indexer API documentation

Four major indexers provide developer APIs for BRC-20 data access.

Best in Slot API

UniSat API

OKX API

Hiro Ordinals API


Wallet SDK and integration documentation

Sats Connect (Xverse)

  • URL: https://docs.xverse.app/sats-connect

  • npm: sats-connect (~2M downloads)

  • Type: Official SDK

  • Languages: JavaScript/TypeScript

  • Description: Primary library for Bitcoin wallet connections. Supports wallet_connect, signPsbt, ord_getInscriptions, createInscription. Compatible with Xverse, Leather, and other Bitcoin wallets.

UniSat wallet integration

Leather/Hiro Connect

Core Bitcoin libraries

Library

URL

Purpose

bitcoinjs-lib

https://github.com/bitcoinjs/bitcoinjs-lib

Core Bitcoin transactions, PSBT (BIP-174), Taproot

micro-ordinals

https://github.com/paulmillr/micro-ordinals

Minimal inscriptions library

@scure/btc-signer

https://www.npmjs.com/package/@scure/btc-signer

Audited PSBT/Taproot signing

msigner

https://github.com/me-foundation/msigner

PSBT signer for Ordinals marketplaces


Relevant Bitcoin Improvement Proposals

BRC-20 and Ordinals depend on Taproot (activated block 709,632, November 2021) and PSBT for marketplace transactions.

Taproot BIPs (foundation for inscriptions)

BIP

Title

URL

Relevance

BIP-340

Schnorr Signatures

https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki

64-byte signatures, batch verification

BIP-341

Taproot

https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki

4MB witness limit enables inscriptions

BIP-342

Tapscript

https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki

Script execution for Taproot

PSBT BIPs (marketplace transactions)

BIP

Title

URL

Relevance

BIP-174

PSBT Format

https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki

Core format for BRC-20 atomic swaps

BIP-370

PSBT Version 2

https://github.com/bitcoin/bips/blob/master/bip-0370.mediawiki

Enhanced transaction construction

BIP-371

Taproot PSBT Fields

https://github.com/bitcoin/bips/blob/master/bip-0371.mediawiki

Required for inscription transactions


Technical comparisons to other Bitcoin token standards

Protocol

Data Storage

State Validation

Lightning

Smart Contracts

BRC-20

Witness (4MB)

Off-chain indexers

Limited

None

BRC2.0

Witness + OP_RETURN

Off-chain indexers + EVM

Limited

Yes (full EVM)

Runes

OP_RETURN (<80 bytes)

UTXO-native

Native

None

RGB

Commitments only

Client-side

Native

Yes (AluVM)

Taproot Assets

Merkle roots

Universe servers

Native

Limited

Key architectural difference: BRC-20 stores all data on-chain but token balances depend entirely on correct indexer interpretation, introducing centralization risks absent in UTXO-native protocols like Runes. Casey Rodarmor designed Runes specifically to reduce UTXO proliferation caused by BRC-20.


Security analysis resources

CertiK risk analysis

Cyberscope audit services