Skip to content

Unknown is not zero

Source and verification
Owning repository
bitcoinuniverseio/stampdex (private application source)
Source path
src20 hub map known flags, market aggregation source map
Applicable release
continuous deployment, verify with GET /api/version
Chain and network
bitcoin / mainnet
Lifecycle
stable
Last verified
2026-09-01
This page
Edit on GitHub · Bitcoin Universe platform

A missing number and a number that is zero mean opposite things. A token with no listings has no floor. A token that traded nothing yesterday has a volume of zero. Showing both as 0 turns a gap in the data into a claim about the market.

StampDEX keeps them apart everywhere.

You seeIt means
A double dashNo source answered. A screen reader announces it as Unknown
0A source answered, and the answer was zero

Every market row carries a sources object with one entry per figure:

{
"tick": "MSKK",
"floor_price": 1,
"holders": 19090,
"mint_progress": 100,
"sources": {
"identity": "stampchain",
"price": "stampchain",
"volume": "stampchain",
"holders": "stampchain",
"listings": "none"
}
}

A field whose source reads none is unknown. A numeric field with no reading is null or absent, never 0.

The source map wins over the number. A nested block can carry a literal zero while the source map says none. When that happens the field is unknown, and rendering the zero would be wrong.

This is not a style preference. It came from a measured failure. On one reading of the first hundred tokens on the board, the volume source read none for ninety-seven rows and the volume field was null for the same ninety-seven, while a nested market block held a literal 0 for every one of them. A fallback chain that treated the missing value as zero was printing a confident zero for ninety-seven tokens that had simply not been measured.

The fix was to derive an explicit known flag for each figure from the source map, and to render on that rather than on the number. The behaviour is covered by tests, so it cannot quietly regress.

  • Fully: the market board, token pages, search results, collection figures, and the API responses behind all of them.
  • Partially: parts of the portfolio are still being brought up to it. When a price is missing there, treat the holding’s value as unknown rather than as zero.

Sorting and filtering follow the same rule. An unknown price does not sort as though it were zero, and a price range filter does not return it as a match.

The same discipline applies to two words that are easy to confuse:

  • Unknown: nobody has an answer.
  • Unavailable: we could not ask.

They appear together in deployment resolution, where “no deployment exists” and “the index did not answer” are different screens. See Deployment identity.