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.
BRC-20 2.25 % of the chain's bytes in Book A, as of block 972,299, 2026-10-20 09:30:48 UTC
A 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, inside ord's witness 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 on the OPI BRC-20 ledger | derived | the inscribed ledger: deploys, mints, transfers |
| brc20-opreturn | native decoder | native | the OP_RETURN population, with BTI's replay as the record |
| brc20-prog | 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 and the sat takes 284.5. 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;
- a mint credits the
addfield 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:
pis case-insensitive;- 4-byte ticks are reserved;
- a transfer is a 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.
Related #
Sources #
Live figures: protocols as of block 972,299, 2026-10-20 09:30:48 UTC. Refreshed hourly.
Updated 2026-10-20 · This page as Markdown