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.
How to read it on screen
Section titled “How to read it on screen”| You see | It means |
|---|---|
| A double dash | No source answered. A screen reader announces it as Unknown |
0 | A source answered, and the answer was zero |
How to read it in the API
Section titled “How to read it in the API”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.
Why the rule is written down
Section titled “Why the rule is written down”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.
Where the rule applies
Section titled “Where the rule applies”- 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 neighbouring distinction
Section titled “The neighbouring distinction”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.