# OP-20

BRC-20's JSON shape on OP_RETURN plus a required credit address; no indexer has ever existed, so BTI's replay is the record.

URL: https://blockspace.wiki/protocols/op20/

OP-20 is a fungible tick ledger. In [BTI](https://blockspace.wiki/glossary/bti/)'s token table its tokens are OP-20 ticks, each identified by the case-folded tick, written `op20/…`. BTI is its indexer: it is a [native protocol](https://blockspace.wiki/glossary/native-protocol/), read by BTI's own op20 decoder. The roster records that no indexer for it has ever existed, so BTI's replay is the record (ruling B32).

## How OP-20 writes to Bitcoin

OP-20 uses BRC-20's JSON shape, but in an [OP_RETURN](https://blockspace.wiki/glossary/op-return/) rather than an inscription, and with one extra field. Its mint carries `add`, a credit address, and that field is required. The ruleset gives the reason: OP-20 mints were paid over Lightning through a bot, so the transaction's signer is not the minter. The launch coverage it quotes said there was "no official index or transaction transfer tool available".

## How BTI attributes its bytes

The ruleset describes the decoder as the same machine as BTI's BRC-20-on-OP_RETURN decoder, with that one protocol fact added: `add` is the mint's credit instruction. The shared machine is deploy-gated (a mint naming an undeployed tick is [residue](https://blockspace.wiki/glossary/residue/)). A transfer debits the first input's previous output script and credits the minimum-value output that is not an OP_RETURN, and the last mint is clamped to what remains.

OP-20 entered the roster on 2026-08-11 through ruling U3's transferability gate, with this chain of evidence:

1. a deploy at block 895,638;
2. a mint at 895,843 that credits its `add` address;
3. a transfer of 500 to the same holder at 896,654;
4. a transfer of 300 to a different script at 896,662, within the balance.

## Findings of the August review

The BTI protocol review of 2026-08-29 found OP-20 quiet since block 959,972, with its decoder still running. Its top three ticks (`op_return`, `op_pepe` and `oink`) were at their deploy caps, which the review called "a sufficient explanation for a mint-only micro-protocol going silent".

It also found a blind spot of known size. The OP-20 and BRC-20-on-OP_RETURN decoders choose blocks by the census marker `{"p`. A block whose only JSON OP_RETURN starts with a space after the brace, `{ "p`, is never fetched. That leaves 441 carriers in 16 blocks out of reach. Whether any of them is a real record the census cannot say, so the review recorded it as a blind spot, not a proven loss.

## Live figures

OP-20 holds 1,722,430 bytes in Book A and 0 in Book C. The books count 99 ticks across 7,104 operations, from block 895541 to 959972 (as of block 972,299, 2026-10-20 09:30:48 UTC).

Sources:

- Blockspace Holdings records
- block.space protocols API · https://block.space/api/protocols

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

Updated: 2026-10-20
