BRC-20 Design

Established March 2023 as an inscription-based token standard on Bitcoin L1

What is BRC-20?

BRC-20 is a metaprotocol for fungible tokens on Bitcoin that leverages the Ordinals protocol to encode structured JSON metadata directly into Bitcoin inscriptions. These inscriptions live immutably on Bitcoin’s chain, and off-chain indexers interpret them in block order to derive canonical token state — deployment, minting, balances, and transfers.

BRC-20 is not enforced by Bitcoin consensus. Instead, a shared interpretation standard and indexer rule set collectively define how token state is computed.


How BRC-20 Works

BRC-20 uses a simple three-operation model encoded entirely as structured JSON:

Deploy

Defines a new fungible token and its supply rules.

{
  "p": "brc-20",
  "op": "deploy",
  "tick": "ORDI",
  "max": "21000000",
  "lim": "1000"
}
  • "p": protocol identifier — must equal "brc-20"

  • "op": operation — must be "deploy"

  • "tick": token ticker (typically 3–4 uppercase chars)

  • "max": maximum supply cap (string integer)

  • "lim": optional per-mint size limit

The first valid deploy inscription for a ticker becomes canonical.

Mint

Issues new units of a deployed token.

  • "op": "mint"

  • "amt": amount to mint (string integer)

Mint operations are valid only if:

  1. A canonical deploy exists

  2. Total minted does not exceed "max"

  3. Mint size complies with "lim"

Transfer

Signals a transfer of token units.

  • "op": "transfer"

  • "amt": amount being moved

Transfers do not include recipient addresses in the JSON.

Ownership changes when the inscribed satoshi carrying the JSON is sent on-chain to another address.


Execution & State Model

BRC-20 state is derived by sequentially scanning inscriptions in block order:

  1. Indexers parse every inscription JSON that matches "p": "brc-20"

  2. They derive canonical deploy receipts

  3. They tally mint operations against supply caps

  4. They track token allocations by associating them to UTXOs

  5. They factor transfers by observing annotated satoshi movement

Importantly:

  • All balances are UTXO-bound

  • No global account state exists natively

  • Indexers converge on token state by applying the same rule set

  • Different indexers might diverge only if rules are implemented inconsistently

This model ensures transparent, reproducible token state without Bitcoin needing to understand or enforce any of it.


Key Properties

BRC-20 is a metaprotocol defined by:

  • JSON structure

  • Ordered inscriptions

  • Indexer rules

Bitcoin itself does not enforce BRC-20 rules. Rules are enforced in interpretation, not in consensus.

BRC-20 token holdings are inherently tied to individual satoshis with inscriptions.

This creates:

  • Fragmented UTXO state

  • Transfer complexity requiring UTXO management

  • Deep wallet integration needs

This differs from account-based token models like ERC-20.

Canonical BRC-20 state exists only if:

  • Indexers implement consistent interpretation rules

  • They follow agreed JSON parsing and validation

  • They handle reorgs, ordering, and missing operations predictably

Disagreement only arises if indexer implementations differ in interpretations (e.g., MIME type handling), but major indexers converge in practice.


Self-Minting

While BRC-20’s default model is permissionless minting, indexer extensions support:

Self-mint mode — deploys that restrict minting only to the original deployer by adding:

Under this rule:

  • Only the deployer can mint

  • Mint inscriptions must reference the parent deploy inscription

  • Absence of the flag retains public mint semantics


Limitations

BRC-20’s design enables fungible token issuance on Bitcoin, but it is not programmable:

  • No contract logic

  • No automated liquidity primitives

  • No composable financial behaviors

  • No on-chain execution environment

These limitations are not flaws but inherent to the Ordinals-inscription model.

Programmability requires execution semantics beyond pure data interpretability, which is why the BRC2.0 upgrade exist.


BRC-20 Market Structure Today

BRC-20 tokens trade primarily through PSBT-based marketplaces such as UniSat, Best in Slot, and OKX Web3. These platforms coordinate trades using Partially Signed Bitcoin Transactions, where sellers pre-sign specific inputs under constrained SIGHASH flags and buyers complete the transaction. Settlement finalizes on Bitcoin L1, preserving native UTXO ownership and eliminating custodial exchange risk.

Since launch, the BRC-20 ecosystem has facilitated over 70,000 BTC in cumulative trading volume, representing billions of dollars in notional value and contributing thousands of BTC in miner fees. This activity demonstrates that inscription-based fungible tokens can generate sustained blockspace demand while remaining fully anchored to Bitcoin consensus.

However, the current structure is marketplace-driven rather than programmatically composable. Liquidity is siloed across separate platforms with no native cross-venue routing. Automated market makers cannot operate directly within the base inscription model, as BRC-20 state transitions are derived from ordered JSON inscriptions interpreted by indexers rather than executed by deterministic smart contracts.

Execution is also bounded by Bitcoin’s block cadence and mempool dynamics. Trade completion depends on block inclusion timing, and front-running or adverse selection risk is influenced by public mempool visibility and 10-minute settlement intervals. There is no native support for continuous liquidity curves, lending markets, or yield primitives within the inscription layer itself.

While PSBT-based trading preserves Bitcoin’s security model and atomic settlement properties, it highlights the architectural ceiling of pure inscription-based tokens. Expanding into composable, stateful DeFi requires programmable execution layers that maintain Bitcoin anchoring while introducing deterministic contract logic and coordinated liquidity infrastructure.

Last updated