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:
A canonical deploy exists
Total minted does not exceed
"max"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:
Indexers parse every inscription JSON that matches
"p": "brc-20"They derive canonical deploy receipts
They tally mint operations against supply caps
They track token allocations by associating them to UTXOs
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