Skip to content

Protocol support matrix

Source bitcoinuniverseio/core (private)
Path backend/packages/ecosystem-contracts/lib/protocols.js
Chain bitcoin, dogecoin
Network mainnet
Lifecycle mixed, per row
Verified 2026-09-01

This is the most important page on this site. It answers one question for each protocol Core knows about: can I actually do this, or can I only look at it?

Every value below is generated at build time from MARKETPLACE_PROTOCOL_REGISTRY in the Core protocol registry. Nothing on this page is written by hand, so it cannot drift away from what the application enforces.

Enabled
9Switched on in the shipped build.
Feature-gated
13Implemented, switched off unless an operator enables the gate. One of those is confined to testnet.
Read-only
7You can see them. You cannot trade them.
Support buy
19/29List: 20. Delist: 19.
Support sell
0/29Not one. `sell` means an executable offer workflow, and none is deployed.
Enforce freshness
2/29CAT-20 and Rare Sats, and neither can trade. Freshness elsewhere is checked per mutation rather than against a numeric ceiling.
Reconcile after a reorg
16/29The other 13 have no local order state to roll back.
Settle at 1 confirmation
16/29The default. Operators may configure a deeper requirement. No protocol sets a minimum confirmation depth for a listing.
Actions tracked
13Per protocol, each either supported with a mode or unsupported with a reason.

A protocol row saying Yes is necessary but not sufficient. Three separate gates stand between you and an executed trade, and all three must agree.

The three gates between a reader and an executed marketplace action

An action passes left to right through three gates. First, the registry capability: does the protocol declare the action supported at all. Second, the feature gate: is the protocol switched on in this build. Third, live authority readiness: is the indexer current, is ownership proven, and is the marketplace profile mutation-ready. Failing any gate stops the action, and the interface names which gate stopped it.

01Registry capabilityIs the action declared?02Feature gateSwitched on in this build?03Live authorityIndex current, owner proven?Wallet signsYou approve, or you do notAny gate that disagrees closes the action and says which one it was

Gate 1 is the matrix below. Gate 2 is the feature-gate column. Gate 3 is live and changes minute to minute; the health contract reports it.

An action that is blocked at gate 2 or gate 3 is a safety decision. It is not evidence that a market is empty or that an asset does not exist.

Yes means the Core registry declares that Core can execute the action for that protocol. No means it does not. Follow a protocol name for the exact reason behind every No on its row, plus its indexer, freshness, confirmation, and reorg policy.

Every marketplace protocol in the Core registry, its chain, its availability, and whether each of the thirteen marketplace actions is supported. Yes means Core can execute the action for that protocol. No means it cannot; the protocol's own page gives the registry's stated reason.
ProtocolChainAvailabilityViewView collectionView activityListUpdate listingDelistBuyMake offerAccept offerCancel offerSellSettleReconcile
Bitcoin StampsstampsbitcoinEnabledYesYesYesYesNoYesYesNoNoNoNoNoNo
SRC-20src20bitcoinEnabledYesYesYesYesNoYesYesNoNoYesNoYesNo
OrdinalsordinalsbitcoinEnabledYesYesYesYesYesYesYesYesYesYesNoYesYes
RunesrunesbitcoinRead-onlyYesYesYesNoNoNoNoNoNoNoNoNoNo
Runes (Native)runes_nativebitcoinRead-onlyYesYesYesNoNoNoNoNoNoNoNoNoNo
BRC-20brc20bitcoinEnabledYesYesYesYesYesYesYesNoNoNoNoYesNo
ARC-20arc20bitcoinEnabledYesYesYesYesYesYesYesYesYesYesNoYesYes
Atomicals NFTsatomicals_nftbitcoinEnabledYesYesYesYesYesYesYesYesYesYesNoYesYes
RealmsrealmsbitcoinEnabledYesYesYesYesYesYesYesYesYesYesNoYesYes
SubrealmssubrealmsbitcoinEnabledYesYesYesYesYesYesYesYesYesYesNoYesYes
AlkanesalkanesbitcoinRead-onlyYesYesYesNoNoNoNoNoNoNoNoNoNo
MezcalmezcalbitcoinRead-onlyYesYesYesNoNoNoNoNoNoNoNoNoNo
TAPtapbitcoinFeature-gatedtapMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
DMTdmtbitcoinFeature-gateddmtMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
TAP on Dogetap_dogedogecoinFeature-gateddogecoinMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
DUST-20dust20bitcoinRead-onlyYesYesYesNoNoNoNoNoNoNoNoNoNo
OP-20op_returnbitcoinRead-onlyYesYesYesNoNoNoNoNoNoNoNoNoNo
OP Namesop_namesbitcoinRead-onlyYesYesYesNoNoNoNoNoNoNoNoNoNo
OP Inscriptionsop_inscriptionsbitcoinEnabledYesYesYesYesNoYesYesNoNoNoNoYesYes
OP_DROPop_dropbitcoinFeature-gatedopDropTradingYesYesYesYesYesYesYesYesYesYesNoYesYes
DROPSdropsbitcoinFeature-gateddropsMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
CAT-20cat20bitcoinGated, testnet onlycat20FractalTradeYesYesYesNoNoNoNoNoNoNoNoNoNo
BitmapbitmapbitcoinFeature-gatedbitmapMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
UNATunatbitcoinFeature-gatedunatMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
Bitcoin NamesnamesbitcoinFeature-gatednamesMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
DoginalsdoginalsdogecoinFeature-gateddogecoinMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
DRC-20drc20dogecoinFeature-gateddogecoinMarketplaceV1YesYesYesYesYesYesYesYesYesYesNoYesYes
Rare Satsrare_satsbitcoinFeature-gatedrareSatsYesYesYesNoNoNoNoNoNoNoNoNoNo
OrdexordexbitcoinFeature-gatedordexYesYesNoYesNoNoNoNoNoNoNoNoNo
ColumnWhat it tells you
AvailabilityEnabled is switched on in the shipped build. Feature-gated is implemented but switched off unless an operator turns it on. Read-only means you can see it but you cannot trade it. Gated, testnet only means it is behind a gate and confined to a test network.
Feature gateThe name of the switch an operator must turn on. If a row shows one, treat the whole row as unavailable until you can see it working.
View, view collection, view activityReading. Available for every protocol except Ordex activity, which Ordex does not implement.
List, update listing, delistThe seller side. Update listing is separate from list because several protocols require a cancel and a relist rather than an atomic edit.
BuyThe buyer side.
Make offer, accept offer, cancel offerThe bid side of an order book, where one exists.
SellA specific executable offer workflow. No protocol in the registry supports it. See below.
SettleWhether Core records a confirmed settlement itself, rather than delegating that to an external provider.
ReconcileWhether Core reconciles its own order state after a dropped, replaced, or reorganised transaction.

Sell is unavailable everywhere, and that is the honest answer

Section titled “Sell is unavailable everywhere, and that is the honest answer”

Zero of the 29 protocols support the sell action. Nearly every one gives the same reason, in the registry’s own words: the protocol has no executable offer workflow on this marketplace surface.

This is worth stating plainly because “sell” appears in ordinary trading vocabulary and a reader could reasonably assume it works. In this registry sell is a specific thing: an executable offer-acceptance workflow. Selling in the ordinary sense is done through list, which 20 protocols support, and through accept-offer, which 15 support.

Four rows deserve reading before anything else, because each is a case where code exists and capability does not.

ProtocolWhat existsWhat that does not give you
OrdexA validated PSBT routing layer, and a public ask order bookOrdex explicitly does not fund, sign, or broadcast settlement. buy is No. Buying happens in your own wallet, and the Ordex page explains the four steps.
Rare SatsA complete local execution path in a development and test simulatorProduction trading requires an external marketplace. Nothing about the simulator makes a mainnet trade possible.
CAT-20Fractal testnet reads and a trade previewThere is no CAT-20 signer and no broadcaster. A preview is not an authorisation.
OP-20 and OP NamesListings and history stay viewableThe legacy mutation path is retired and fails closed with HTTP 410. The registry notes that the current interface can reach a broadcast step before registration fails, which is exactly why buy is not declared supported.

The matrix is generated from a sanitized snapshot of the registry, published by the Bitcoin Universe documentation platform and pinned to an exact Core commit. Its provenance block travels with the data:

{
"repository": "bitcoinuniverseio/core",
"sourcePath": "backend/packages/ecosystem-contracts/lib/protocols.js",
"sourceCommit": "15dd03b5986a0a7ceba2b1a1ed30f3888ae4712c",
"generatedBy": "packages/ecosystem-registry/bin/generate-capability-snapshot.mjs"
}

The snapshot itself is committed to this repository at src/data/capability-snapshot.json. A check in this repository’s continuous integration regenerates every protocol page from it and fails if the published pages and the snapshot disagree.