# Null is never zero

Why block.space and this wiki write "not measured" instead of 0: what a measured zero is, where nulls come from, and how the rule shows on the pages and in the APIs.

URL: https://blockspace.wiki/methodology/null-is-never-zero/

A figure that was not measured is not zero. block.space states it as the fourth of the rules every board follows: "'Not measured' is never 0." This wiki's writing rules repeat it: "Something not measured is 'not measured'." This page explains the difference, where it comes from, and where it shows.

## Two different statements

- **A measured zero** says: the instrument looked and found nothing. The measurements document gives the example of a protocol that carries no artifact body. It "honestly measures zero in the content book. A measured zero is not a missing measurement." A pure-ledger transfer, such as an Omni or Counterparty send, has a [Book C](https://blockspace.wiki/glossary/book-c/) of 0 for this reason.
- **A null** says: the instrument did not look, could not look, or has not finished. It is written in words, as [not measured](https://blockspace.wiki/glossary/not-measured/).

The rankings documentation lists the cases a board meets: "A book the instrument has not measured for a protocol, a sat the record has not bound to an inscription, a holder the appendix cannot see: each is written in words. A zero means a measured zero."

## Why the rule exists

Blockspace Value Theory (§2.2a) records the failure the rule guards against. A census that finds protocols by their markers cannot see a protocol that hides its marker. Counterparty encrypts its payloads, and a byte scan of SRC-721 across blocks 820,600 to 823,200 "returned zero occurrences" on 2026-08-04, while Counterparty's own API showed SRC-721 mints live from block 795,762. In BVT's words, a marker-driven census "does not report a small number. It reports zero."

From this BVT draws the conclusion that "unclaimed bytes" is an upper bound, not a residue, and that it should be stated as "not attributable by marker detection", "a claim about the instrument, not about the chain". [BTI](https://blockspace.wiki/glossary/bti/)'s design takes this up as requirement R3, instrument honesty: BTI must publish the measurement's own blind spots rather than present a residue as a fact about the chain.

## Where nulls come from in BTI

- **An unreachable source.** The design's rule is to fail closed: "An unreachable source is a refusal, never a zero." The frontier cannot claim a protocol was searched if its source could not be asked. See [the frontier and "as of"](/methodology/the-frontier-and-as-of/).
- **A book not yet measured.** block.space's summary API carries the rule in its units note: "null means not measured. It never means zero." The front page says it in one line: "A null in the regional book means not measured — never zero." On the latest read (2026-10-20), the summary listed all 21 protocols as measured in each of Books A, B and C.
- **A holder no source records.** The holders appendix's rule is that "a protocol the appendix cannot see is 'not measured', never 0", and that a source whose delta is not yet written is "delta pending" by name.
- **Below a cut-off.** A board that ranks the top 100,000 says so, with the smallest figure that made the list. The rankings rules add: "A figure below the cut-off is unranked, not zero."

## How it looks on the pages

The leaderboard's coverage page is the clearest example. On 2026-10-20 (appendix pass finished 09:20 UTC, books at block 972,199) it listed three protocols with no holder source: Omni (no Omni ledger is run), brc100 and op20 ("an OP_RETURN script ledger the appendix cannot read"). Each row shows its [Book A](https://blockspace.wiki/glossary/book-a/) total, 6.66 GB for Omni, and then "not measured" in the columns for bytes on addresses, share and addresses. It does not show 0, and it does not drop the row. See [coverage](/methodology/coverage/).

## How this wiki keeps the rule

The wiki's live figures are read hourly from block.space and Blockspace Holdings' own node and indexers, and its build refuses a figure it has no reading for: a missing value fails the build rather than printing a number. The refresh job keeps a source's last reading, with its own "as of", when the source fails. Where a document gives no figure, the page says the documents do not give it.

Sources:

- block.space docs: rankings · https://block.space/docs/rankings
- block.space docs: measurements · https://block.space/docs/measurements
- Blockspace Holdings records
- block.space docs: Blockspace Value Theory · https://block.space/docs/bvt
- block.space meter and summary APIs · https://block.space/api/summary
- block.space live pages (/, /rankings, /leaderboard, /largest-inscriptions, /heaviest-tokens, /collections, /sync) · https://block.space
- block.space leaderboard coverage API (holders measured per protocol) · https://block.space/api/leaderboard/coverage
- blockspace.wiki README · https://blockspace.wiki

Updated: 2026-10-20
