# BRC-20

Tick ledgers written as JSON inscriptions, and since 2026-08-11 also on bare OP_RETURN. A BRC-20 mint has two claimants, the sat and the tick. BRC-100 is covered here too.

URL: https://blockspace.wiki/protocols/brc-20/

A [BRC-20 tick](https://blockspace.wiki/glossary/brc-20-tick/) is a fungible token named by its tick. BTI's token table says a tick is a token because its units transfer by themselves under the protocol's ledger rules. The inscription that carries an operation is not the token. Its identity is the case-folded tick.

## How BRC-20 puts data on Bitcoin

BRC-20 operations are JSON bodies. Most are [inscriptions](https://blockspace.wiki/glossary/inscription/), inside ord's witness [envelope](https://blockspace.wiki/glossary/envelope/). Case 10 of the BTI case studies is the first BRC-20 mint, at block 779,833, one block after the `ordi` deploy. Its body is 71 bytes of JSON in a 338-byte reveal. Case 3's body reads `{"p":"brc-20","op":"mint","tick":"牛b","amt":"1000"}`, 53 bytes.

A second population writes the same JSON shape, `{"p":"brc-20"}`, into a bare OP_RETURN output. The census marks it by the prefix `7b227022` (`{"p`). When BTI gated them in on 2026-08-11, the full decode found 652,884 parseable carriers, 36.3 MB in the adapters table's figure.

## How BTI attributes the bytes

BRC-20 has two carriers and one namespace, and three sources:

| source | kind | trust | what it records |
|---|---|---|---|
| opi-brc20 | [metaprotocol adapter](https://blockspace.wiki/glossary/metaprotocol-adapter/) on the [OPI](https://blockspace.wiki/glossary/opi/) BRC-20 ledger | derived | the inscribed ledger: deploys, mints, transfers |
| brc20-opreturn | [native decoder](https://blockspace.wiki/glossary/native-protocol/) | native | the OP_RETURN population, with BTI's replay as the record |
| brc20-prog | [second-source adapter](https://blockspace.wiki/glossary/second-source-adapter/) on the BRC2.0 EVM | derived, two hops | sightings of tick movements the EVM executed |

A tick seen on both carriers is one token with two sources. Ticks found only on OP_RETURN, such as 'prompt', 'lol' and 'gamestop', whose lengths the inscribed rules exclude, enter by their OP_RETURN deploy.

**The co-claim.** A BRC-20 mint inscription has two claimants: the sat it is inscribed on and the tick. They divide the bytes they share. In case 10 the tick's regions are only the 107-byte envelope span, so it takes 53.5 bytes of [Book B](https://blockspace.wiki/glossary/book-b/) and the sat takes 284.5. [Book C](https://blockspace.wiki/glossary/book-c/) belongs to the sat alone. The JSON is the inscription's content, and "the ledger claims where it was written, not what the picture is". The two claims are labelled differently: the tick's is `mint`, the sat's is `inscribe`.

**A bias that was found and fixed.** In the case studies the brc20 adapter could not recover the signer of a taproot key-path spend, so its claims failed closed to riding while the sat's were dedicated. Finding F7 called this a directional bias toward the sat. It was ruled on 2026-08-10: one shared retry helper now serves brc20 and alkanes too, and "the asymmetry is closed".

**The OP_RETURN record.** Ruleset v1's fact table says no ledger for OP_RETURN BRC-20 exists anywhere: OPI only reads inscriptions, and BRC2.0 was checked and is not one either. So BTI's replay is the record (B32). Its rules are recorded too:

- mints are deploy-gated: 240,060 of 538,648 mints name a tick not yet deployed, and are [residue](https://blockspace.wiki/glossary/residue/);
- a mint credits the `add` field where it is present and valid, otherwise the first non-OP_RETURN output;
- a transfer debits the first input's previous output and credits the minimum-value non-OP_RETURN output, a counted convention that decodes both a listing and a marketplace sale;
- amounts are scaled to 18 decimals, and the last mint is clamped to the supply left.

The transferability gate was passed on chain: deploy at block 896,552, mint at 896,558, and transfer at 896,583 to a different script.

## BRC-100

BRC-100 is a separate family in the books, with its own tick ledger written in inscriptions. Its only external source, inBRC's mirror, stopped answering (first probed dead 2026-08-05, again 2026-08-11), so BTI was ruled its indexer on 2026-08-11. The decoder records these facts:

- `p` is case-insensitive;
- 4-byte ticks are reserved;
- a transfer is a [two-step transfer](https://blockspace.wiki/glossary/two-step-transfer/): the transfer inscription writes no tick claim, and the send that spends it does;
- every operation has two claimants, the tick and the carrying sat, and the tick's Book C is 0 under B14.

The adapters table measured 200 MB in 2,601 blocks, and at block 822,364 BRC-100 was 97.21 % of its block. Live (as of block 972,299, 2026-10-20 09:30:48 UTC): Book A 0.14 GB, 0.02 % of the chain, 560 ticks, 715,589 operations, first height 805913. The live API reports 0.02 GB of Book C for the family. Blockspace Holdings' documents do not explain how that matches the tick's Book C of 0. The leaderboard's coverage table lists BRC-100 holders as not measured.

## Live figures

BRC-20's books (as of block 972,299, 2026-10-20 09:30:48 UTC):

| measure | value |
|---|---|
| Book A | 17.49 GB |
| Book C | 2.42 GB |
| share of the chain's bytes (Book A) | 2.25 % |
| share of all Book A bytes | 13.08 % |
| ticks | 372,135 |
| operations | 95,940,625 |
| first height | 779832 |

Read from the protocols API on 2026-10-20 (books at block 972,199), the sources split as follows. opi-brc20: 17.38 GB over 372,001 ticks. brc20-opreturn: 110.3 MB over 188 ticks. brc20-prog: 0.94 MB over 229 ticks. One tick, SATS, is its own sub-item at 3.79 GB. `sats` is the largest tick by content, 605 MB of mints, so a board ranking BRC-20 content must say it is the sum of many small files.

Holders: read on 2026-10-20, the leaderboard's coverage table placed 99.08 % of BRC-20's Book A on 1,574,070 addresses.

## Not covered by a source

Blockspace Holdings' documents give no bytes:vbytes ratio for BRC-20 on its own; the July 2026 run measured inscriptions as a whole. OP-20, which uses BRC-20's OP_RETURN shape plus a required `add` credit address, is its own family in the books and is not described here.

Sources:

- Blockspace Holdings records
- block.space docs: data types · https://block.space/docs/datatypes
- block.space docs: rankings · https://block.space/docs/rankings
- block.space protocols API · https://block.space/api/protocols
- block.space leaderboard coverage API (holders measured per protocol) · https://block.space/api/leaderboard/coverage

Live figures: protocols as of block 972,299, 2026-10-20 09:30:48 UTC

Updated: 2026-10-20
