Lessons 1/4 · 20 min
Raw fact or interpretation: how a screen is produced
A starting question
You open an explorer and read: "Transfer of 150 USDT from Alice (Exchange X) to Bob, 3 minutes ago, fee $0.40". How many of these words are facts written in a block? Very few. To see it, follow the data's path.
The data's path
node (blocks, state) -> indexer (decodes, files) -> database
-> API -> website or app -> your screen- The node (the program that downloads blocks, checks the rules and holds the state; workshop 113) holds the blocks and state. It is the only stage that holds consensus bytes.
- The indexer is software that reads the blocks, decodes them (which function was called? what amount?), and files them in an ordinary database so it can answer "all transactions of this address" quickly. It decides what it keeps and how to show it.
- The API and the site add labels, prices, converted timestamps and charts.
Each stage is software written by a team, with its bugs, delays and choices.
Sorting the example
| What the screen says | Nature | Who asserts it |
|---|---|---|
| The amount 150 | Decoded from the transaction data | The indexer (from block bytes) |
| "USDT" | A name chosen by the contract's deployer; nothing prevents it being copied | The contract, relayed by the indexer |
| "Alice (Exchange X)" | A label assigned by the explorer or third parties | The explorer: not blockchain data |
| "3 minutes ago" | Block time declared by the block producer (on Bitcoin and Ethereum-style chains), compared with the server's clock | The producer + the explorer |
| "$0.40" | Fee in native units × a price taken from a price provider | An external price service |
| Status "Success" | Execution result recorded in a receipt (raw) or inferred by the indexer (derived): check which | Depends on the chain (see lesson 2) |
Out of six lines, only the amount and the status come from consensus data (the amount after decoding, the status after reading the receipt when the chain produces one); the relative time, the token's name, the label and the dollar price are derived or supplied by third parties. Even the amount is not "directly in the bytes": for a token, the indexer computes it from an event or the call data, and from a token metadata item (its number of decimals).
What is raw, what is not
Raw (consensus): a block's header and body, the signed transactions, the result of applying the rules (the state after the block, and receipts when the protocol produces them).
Derived: any interpretation, any grouping, any fiat value, any label ("Exchange X"), any ranking ("top holders"), any "internal transfer" reconstructed by replaying calls.
Example: a block's time
On Bitcoin and Ethereum-style chains, the displayed time is the timestamp the block producer wrote in the header, within limits the protocol checks only loosely. It does not come from a trusted clock. (On CometBFT, the time comes from a computation among validators: each chain family has its own rule.) The explorer converts it to a time zone (often UTC or your browser's). Two explorers may thus show "different" times for the same block without either lying: one shows UTC, the other local time (UTC+1 in Cameroon, with no daylight saving).
What this does NOT guarantee
- A well-known explorer is not an authority: it can lag, have a bug, be hacked (web page or domain) or be slow to follow a chain reorganisation.
- A figure consistent across three sites is not verified: they may read the same indexer or the same node provider.
- "It's on the blockchain" does not mean "it's true": it means "a participant signed it and the chain accepted it".
Recap
For each line on a screen, ask: is this fact in the block's bytes, or did someone compute, guess or add it? Only the first case can be verified directly against a node.
