# 未知不等于零 (Unknown Is Not Zero)

核心数据原则：索引未记录或网络未同步的数据标记为未知，严禁显示为 0。

> Source: bitcoinuniverseio/stampdex (private application source), src20 hub map known flags, market aggregation source map. Applicable release continuous deployment, verify with GET /api/version. Last verified 2026-09-01. Chain bitcoin/mainnet.

> [!NOTE]
> **简体中文官方文档**：防止因索引器延迟导致用户误判资产归零或虚假清零的严格设计规范。 核心交易规则为非托管模式，买卖双方按标准费率收取服务费，并于比特币主网进行原子结算。



import ProductShot from '../../../../components/screens/ProductShot.astro';

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

<ProductShot id="fixture-unknown-value" />

| 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

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

```json
{
  "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

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

- **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

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](/docs-stampdex/zh-cn/concepts/deployment-identity/).

## Related

- [Market data](/docs-stampdex/zh-cn/concepts/market-data/)
- [Data provenance](/docs-stampdex/zh-cn/concepts/data-provenance/)