Skip to main content
BRC-20 is a metaprotocol for fungible tokens on Bitcoin. It uses the Ordinals protocol to inscribe JSON data directly into Bitcoin transactions. Bitcoin nodes don’t understand or enforce BRC-20 rules — specialized indexers interpret that inscribed data to maintain token state and validate operations. Unlike Ethereum’s ERC-20, which relies on smart contracts enforced by the network itself, BRC-20 relies on social consensus: participants agree to follow the same ruleset for interpreting inscriptions, and indexers provide the canonical state of all tokens.

How it works

BRC-20 tokens use a three-operation model: deploy, mint, and transfer.
1

Deploy

Create a new token by inscribing deployment parameters — ticker symbol, maximum supply, and per-mint limit — as a JSON inscription on Bitcoin.
2

Mint

Inscribe mint operations to claim tokens from the deployed supply, up to the per-mint limit per inscription.
3

Transfer

Inscribe a transfer operation to allocate tokens for sending, then send the inscribed satoshi to move the tokens to a new owner.
Each operation is a JSON inscription committed into a Bitcoin transaction. Indexers scan these inscriptions in block order to maintain the current state of all BRC-20 tokens — who owns what, total supply, and transfer history.

Deploy inscription

{
  "p": "brc-20",
  "op": "deploy",
  "tick": "ordi",
  "max": "21000000",
  "lim": "1000"
}
FieldDescription
pProtocol identifier — always "brc-20"
opOperation type: deploy, mint, or transfer
tickFour-letter ticker symbol
maxMaximum total supply
limMaximum tokens claimable per mint inscription

Mint inscription

{
  "p": "brc-20",
  "op": "mint",
  "tick": "ordi",
  "amt": "1000"
}

Transfer inscription

{
  "p": "brc-20",
  "op": "transfer",
  "tick": "ordi",
  "amt": "500"
}
The transfer operation is a two-step process: first inscribe the transfer to allocate the amount, then send the satoshi that holds that inscription to the recipient’s address.

Key characteristics

BRC-20 is purely data inscriptions interpreted by indexers following agreed-upon rules. Bitcoin’s consensus layer does not validate BRC-20 operations — correctness depends on indexers implementing the same specification.
Token tickers are claimed on a first-inscription basis. Anyone can deploy any four-letter ticker, but only the first valid deploy inscription for a given ticker is recognized. There is no registration authority.
Tokens exist within specific satoshis. This means transfers require careful UTXO management — accidentally spending the satoshi that holds an inscription will destroy the tokens it represents.
Different indexers may diverge if they implement the rules differently. Major indexers converge on a canonical interpretation, but you should verify which indexer a marketplace or wallet uses before relying on its state.

Trading BRC-20 today

BRC-20 tokens are traded on-chain through PSBT-based marketplaces such as UniSat, Best in Slot, Magic Eden, and OKX Web3. These platforms use Partially Signed Bitcoin Transactions (PSBTs) to enable trustless atomic swaps: sellers sign offers with specific SIGHASH flags that allow any buyer to complete the transaction. The ecosystem has processed over 71,000 BTC in cumulative trading volume (~$7 billion) and generated 6,922 BTC in miner fees since launch. This architecture has real limitations worth understanding before you build:
  • No automated market makers — AMMs require off-chain components because there is no on-chain execution environment.
  • Fragmented liquidity — order books live on individual marketplaces with no cross-platform aggregation.
  • Front-running via fee races — because transactions compete in Bitcoin’s mempool, users can outbid pending transactions by paying higher fees.
BRC2.0 is the next evolution of this ecosystem. It adds EVM-compatible smart contract execution on top of BRC-20’s inscription model, enabling AMMs, lending protocols, DAOs, and other DeFi primitives directly on Bitcoin. Read the BRC2.0 Programmable Module overview to learn more.