Market and reader states
Every state, in one table
Section titled “Every state, in one table”| State | Conclude | Retry? | Next |
|---|---|---|---|
| Loading | Nothing yet. A placeholder never contains a figure | Wait | |
| Nothing listed | The reader answered. The market is genuinely empty | No, it will say the same thing | |
| Market unavailable | Nothing. The count is unknown and is never shown as zero | Yes | Check /indexer-health for that protocol |
| Partial book | What you see is real and incomplete | Yes, for the rest | A missing row is not evidence of absence |
| Degraded (Ordex) | Ordex is running; a Bitcoin Core or ordinals reader is unavailable. Existing orders stay listed, new listings cannot be verified | Yes, later | Do not treat an unverifiable new listing as verified |
| Switched off by an operator (Ordex) | Deliberately paused. The market and desk stay in place and say so | No | Nothing you press creates a transaction |
| Retired | Listings and history stay viewable. Buying and listing are permanently closed | No | OP-20 and OP Names today |
| A dash in a cell | That figure was not read. Not a zero | Refresh | Do not rank by a column of dashes |
| A column that is absent | The source cannot answer that question at all | No | Not the same as a column of zeroes |
| A disabled control with a reason | The protocol supports the action; a live gate disagrees | Yes, refreshing rechecks that exact route | An earlier ready result is never reused |
| No control at all | The protocol does not support the action | No | The support matrix gives the reason |
| Earlier request outcome unknown | A request timed out and may have applied. Other actions on that asset are locked | No. Select Check what happened instead | Checking asks the market under the original request key, so the action never applies twice. See Atomicals |
The distinction that matters most
Section titled “The distinction that matters most”Unavailable is a fact about the read. Empty is a fact about the market.
If a market says its reader is unavailable, do not assume that no tokens, listings, or activity exist. Retry later, or use the protocol’s independent explorer. Do not create or repeat a transaction from stale market data.
When several sections keep loading
Section titled “When several sections keep loading”The page can open while its data service is unavailable. If markets, the index, and fee estimates all keep loading, an empty panel does not establish that your assets or the protocol’s records are missing.
| What you see | What to do |
|---|---|
| An error with Retry | Retry the read once. A failed request cannot establish a zero balance or an empty index |
| An answered search with no matches | Clear the search and filters, then check the protocol you selected |
| Several sections fail together | Check indexer freshness and return when the data service answers |
| Market listings appear but the token index fails | Treat the catalogue as unavailable. Listings alone do not contain every token |
If the problem continues, report it with the page address, selected protocol, time, and visible error message. Keep wallet secrets and private account details out of the report.
Prepared Bitmap and DMT recovery
Section titled “Prepared Bitmap and DMT recovery”The prepared Bitmap reader includes indexed first claims without market listings. A claim identifies the inscription; current ownership and trading need their own checks. If the index changes during pagination, Retry starts a fresh page while the older rows remain visibly marked as stale.
DMT collection and item reads use source page cursors. Missing holder data, global counts and global sorting remain unavailable instead of displaying zero values. Collection media availability does not establish holder or trading readiness.
These reader changes still require source qualification and accepted public release. This documentation does not claim that production is fully restored.
Diagnosing an unavailable market
Section titled “Diagnosing an unavailable market”The ARC-20 repair candidate prepared on 9 October 2026 distinguishes a readable balance summary from current lot inventory. An unavailable lot reader means inventory is unknown. A missing count, confirmed empty result and retained earlier rows are separate states. Earlier rows stay inactive until a fresh read succeeds; lot and seller-book retries are independent.
The candidate API retains HTTP 503 for unavailable dependencies and provides safe reason, operation, retryability and correlation fields. Configuration, administrative liveness and an advancing restored database are separate from fresh protocol readiness. This candidate has not passed funded wallet flows or been released. Private Signet challenge, rules, interpreter and isolated database attestation and the existing publisher gates remain outstanding.
curl -s https://api.bitcoinuniverse.io/indexer-health \ | jq '.data[] | select(.protocolId=="<protocol>") | {indexerIdentity, tip, nodeTip, lag, lastSuccess, status, reasonCode, reasons, stale: .freshness.stale, disagreeing: .freshness.disagreeing}'| What you find | What it means |
|---|---|
lastSuccess: null | This index has never been read successfully in the current process. tip: 0 beside it is unread, not height zero |
freshness.stale: true | The observation is older than the freshness limit. It may resolve on the next refresh |
freshness.disagreeing: true | Two authorities disagree. This will not resolve on a refresh |
capabilities: [] with a long declaredCapabilities | The protocol declares actions this authority cannot currently execute. Gate 1 passed, gate 3 did not |
reasonCode | The dominant reason, as a stable code |
What you should never see
Section titled “What you should never see”A status code or a raw response payload on a market page. A failed read is reported in plain language. If you see either, report it: that is a defect.
The rule for acting
Section titled “The rule for acting”Before signing anything after an error:
- Refresh market state.
- Confirm the state is now ready, not degraded or partial.
- Confirm the wallet network and account.
- Read the wallet’s own inputs and outputs.
Never repeat a transaction from stale data.