Skip to content

OP-20

A token protocol using plain OP_RETURN data outputs as its only carrier.

Chain
Bitcoin
Carrier
OP_RETURN
Ownership model
hybrid
Operations
deploy, mint, transfer
Also written
op-return, op20, op-20

Where it came from

Created outside Bitcoin Universe by The OP-20 community, 2024.

Where the specification lives

The specification and reference documentation for OP-20 live in bitcoinuniverseio/op-return and are published at https://bitcoinuniverseio.github.io/op-return/. That site is the authority. This page exists so you can find it and compare it with the rest of the estate.

Bitcoin Universe indexes or implements it in bitcoinuniverseio/index-op20.

Support in Bitcoin Universe products

Where it appears

  • Core: view, view-collection, view-activity
  • Wallet: view, send, receive
  • Inscribe: deploy, mint, inscribe, transfer

Implemented

  • viewread-only
  • view-collectionread-only
  • view-activityread-only

Not implemented, and why

list
Legacy random-key/replay marketplace mutations are retired and fail closed; the backend returns HTTP 410.
update-listing
Legacy random-key/replay marketplace mutations are retired and fail closed; the backend returns HTTP 410.
unlist
Legacy random-key/replay marketplace mutations are retired and fail closed; the backend returns HTTP 410.
buy
Legacy random-key/replay marketplace mutations are retired and fail closed; the backend returns HTTP 410. The current UI can reach a broadcast step before registration fails, so buy is not declared supported.
make-offer
OP-20 has no executable offer workflow on this marketplace surface.
accept-offer
OP-20 has no executable offer workflow on this marketplace surface.
cancel-offer
OP-20 has no executable offer workflow on this marketplace surface.
sell
OP-20 has no executable offer workflow on this marketplace surface.
settle
OP-20 has no executable settle authority on this marketplace surface.
reconcile
OP-20 has no executable reconcile authority on this marketplace surface.

Operational behaviour

Indexing

State is read from APIV4 OP-20 API with legacy fallback. Supporting reads come from Legacy API and static sample fallback data.

What must be true before any change is accepted: All legacy replay-key mutations are rejected.

Confirmation

No supported marketplace mutation reaches a confirmed local state.

Reorganisation

The read-only feed has no local lifecycle reconciliation.

Freshness

Read sources expose no enforced node-tip/indexer-tip lag contract.

Provenance

Capability facts on this page were generated from backend/packages/ecosystem-contracts/lib/protocols.js in bitcoinuniverseio/core at 15dd03b5986a. Implemented behaviour is not the same as production availability: see how to read our status.