BRC-20

A fungible token ledger written in Bitcoin inscriptions

Protocol dossier

BRC-20

BRC-20 is a fungible token protocol carried inside Ordinals inscriptions on Bitcoin. Every operation is a small JSON text object: deploy opens the book for a ticker, mint credits units, and transfer moves them in two phases. Bitcoin consensus never checks any of it. The token state is an off-chain ledger that indexers reconstruct by replaying every inscription in block order under one shared rulebook.

Account summary
ProtocolBRC-20 (Universe registry id brc20)
KindFungible token, balance ledger with a hybrid inscription carrier
Chain / networkBitcoin mainnet
CarrierOrdinals inscriptions, JSON payload (text/plain or application/json)
Operationsdeploy, mint, transfer
Ticker4 UTF-8 bytes, case-insensitive; 5 bytes under the self-mint extension
Balance modelOverall = available + transferable, per address (scriptPubKey)
Conflict ruleFirst is valid: the earliest valid inscription wins
Origindomo, 8 March 2023, published as an open experiment
RulebookLayer1 Foundation indexing rules; OPI reference implementation
LifecycleStable (live on mainnet since 2023)
This documentSpec version 1.0.0, verified 2026-09-01

What BRC-20 is

An inscription is arbitrary content committed into a Bitcoin transaction witness and tracked to a single satoshi under the Ordinals numbering rules. BRC-20 uses that channel to publish bookkeeping instructions. The protocol defines nothing except the payload format and the rules for replaying payloads into balances. There are no smart contracts, no native consensus changes, and no on-chain balance records.

That design has a sharp consequence: the ledger lives in the indexer. Two indexers that follow the same rules over the same blocks arrive at the same balances, which is why the shared indexing rulebook, first published by domo and now maintained by the Layer1 Foundation, matters as much as the payload format itself.

BRC-20 lifecycle as ledger postings Four steps on one ruled ledger line. Deploy opens the account book for a ticker. Mint credits units to the first owner. Inscribing a transfer moves an amount from the available column to the transferable column. The first spend of that transfer inscription settles it with one of three outcomes: to a recipient, back to self, or spent as fee. Self and fee restore the sender's available balance. The life of a ticker, in postings deploy opens the book mint credit available transfer inscribe: reserve first spend settles it to recipient: debit sender, credit recipient to self: amount returns to available as fee: consumed, availability restored Outcomes of the first spend
The whole protocol is four postings. Everything else is bookkeeping discipline.

Who this site is for

Holders and traders
Read the guide to understand what a mint or transfer actually does before signing, and why a normal-looking Bitcoin transaction can move token balances.
Application developers
Read the specification for the exact payload rules and the test vectors to check a parser. Paste payloads into the validator while developing.
Indexer operators
Read the reference for confirmation, mempool, and reorg semantics, plus the implementation checklist.

Entry points

Table of contents
PageContents
SpecificationNormative payload format, numbered validity rules R1 to R24, state transitions, invalid conditions
GuidePlain-language walkthrough, worked deploy, mint, and transfer examples, Bitcoin Universe support matrix
ReferenceTerminology, indexer semantics (confirmation, mempool, reorg), fees, limitations, security, checklist
Test vectorsValid and invalid payloads with expected outcomes, plus ledger state vectors
ValidatorPaste inscription JSON, get every check explained, entirely client-side
ChangelogVersion history of this documentation

BRC-20 in Bitcoin Universe

Bitcoin Universe indexes and supports BRC-20 as an upstream-originated protocol. In the Universe protocol registry it is a hybrid-carrier token protocol with inscribe support for all three operations. Current, code-verified support:

Universe-specific indexing decisions are marked as such throughout this site; see the Universe notes in the specification.

Provenance and attribution

BRC-20 was created by the pseudonymous builder domo on 8 March 2023 and released as a public experiment with an explicit warning that the tokens would be worthless. The ecosystem adopted it anyway, at scale. This site documents the protocol honestly as an upstream creation: Bitcoin Universe did not originate BRC-20 and does not control its rules.

See ATTRIBUTION.md for full credits.

Security reporting

Report vulnerabilities in this documentation or in Bitcoin Universe BRC-20 handling privately via GitHub private vulnerability reporting. Do not open public issues for security problems. Details are in SECURITY.md.