Back

Data collection and provenance

P10-L02 · P10 · P10-M01

Record identifiers block heights timestamps and provider limitations

ILLUSTRATIVE · needs_review

Prerequisites: P10-L01

Learning objectives

  • Record identifiers block heights timestamps and provider limitations
  • Preserve event time, retrieval time and provider coverage in separate fields.

Why this matters

A screenshot can look stable while its provider changes labels or confirmations. A timestamp without a time basis can make an old event look like a new observation.

Explanation

Treat each retrieval as a small evidence package: request method and exact URL, network, record identifier, block or slot reference, response status, actual UTC collection time, response bytes and a cryptographic checksum. Keep the provider’s event-time field separate. Store the data first, then derive a table; otherwise later readers cannot distinguish provider content from analyst edits. Never include credentials or private session material in a public package.

An identifier checksum reproduces bytes, not truth. A locally recomputed transaction ID proves that the supplied raw serialization matches that identifier; it does not alone prove canonical inclusion, finality or human identity. An indexer’s confirmed label has its own source boundary. Record missing pages, truncation, chain reorganization policy and unsupported event types rather than silently normalizing them away.

For derived values, state the unit and operation. Keep raw integers before decimal display. Wallet Intelligence can help inspect records, but this lesson creates no actual report and does not infer tool coverage from the interface. Provenance follows each claim all the way from stored response to calculation.

Key terms

Retrieval time: when a response was collected.

Event time: timestamp declared by the event’s chain record.

Checksum: fingerprint of stored bytes.

Coverage: which records and event types a provider includes.

Historical example

ILLUSTRATIVE: response R names block 500 with header time 12:00Z. It is fetched at 12:12Z and lists 2500000 raw units with six decimals. Provider P reports page 1 of 2; page 2 is unavailable. Derived display is 2.5 units, not 2,500,000 whole tokens. The fixture stipulates these values; no request was made.

Visual specifications

Transaction timeline with two lanes: declared event time at 12:00Z and retrieval at 12:12Z. Attach raw-unit conversion and a conspicuous page-2 gap.

Caption: Illustrative provenance separates event time from the time a provider response was collected.

SPECIFICATION_ONLY — the rendered visual has not been produced or independently reviewed.

What the evidence proves

The fixture supports a reproducible unit conversion and a clearly bounded page-1 observation. Collection time and event time have different recorded meanings.

What the evidence does not prove

A matching checksum does not certify provider correctness. Missing page 2 prevents a complete-event-count claim; a header time does not establish exact wall-clock arrival.

Common mistakes

Hashing a screenshot instead of preserving the response; replacing event time with retrieval time; stripping raw units; reporting a complete count from one available page.

Practical exercise

Write a provenance row for R, compute its display amount, and rewrite “all events occurred at 12:12Z.” Include the unavailable page and one independent verification step.

Show worked correction

Use fictional URL/record R, network N, block 500, eventTime 12:00Z (header-declared), retrievedAt 12:12Z, provider P, rawAmount 2500000, decimals 6, displayAmount 2.5, coverage page 1/2 with page 2 unavailable. The correct statement is “R was retrieved at 12:12Z; its declared block time is 12:00Z.” Preserve exact response bytes and checksum; independently verify raw serialization and block reference before extending confirmation claims. Complete event count remains insufficiently evidenced.

Checklist

  • Keep exact identifiers and raw units.
  • Separate event and retrieval timestamps.
  • Save bytes before derivation.
  • Disclose incomplete pagination and indexed finality.

Summary

Provenance binds records, retrievals and derived claims without converting a checksum into a truth certificate.

Summary

  • Preserve response bytes and request context.
  • Time basis and unit basis travel with each value.
  • Partial coverage cannot support a complete count.

Next lesson

P10-L03

Tools

Use the named ZECOIN tool only as an evidence-reading context. This lesson creates no tool output, account session or entitlement. Offline exercise; do not sign, deploy, approve or fund anything.

Sources & claim boundaries

  • API: Esplora public API specification — GET routes, integer satoshis and indexed confirmation/outspend fields. Boundary: Mechanism documentation only; original illustrative values are stipulated, not observations. Historical records have separately frozen provenance and explicit collection gaps.
  • BTC: Bitcoin developer guide — transactions — Input references identify previous transaction outputs; scripts do not identify a human. Boundary: Mechanism documentation only; original illustrative values are stipulated, not observations. Historical records have separately frozen provenance and explicit collection gaps.

Evidence classifications

ILLUSTRATIVE — entirely fictional offline inputs; no current observation.

Observation date

null — no real observation

Content version

1

Review date

null

Review status

needs_review

Visual specifications

P10-L02-V01

SPECIFICATION_ONLY · ILLUSTRATIVE

Record identifiers block heights timestamps and provider limitations

Illustrative provenance separates event time from the time a provider response was collected.

Transaction timeline with two lanes: declared event time at 12:00Z and retrieval at 12:12Z. Attach raw-unit conversion and a conspicuous page-2 gap.

Transaction timeline with two lanes: declared event time at 12:00Z and retrieval at 12:12Z. Attach raw-unit conversion and a conspicuous page-2 gap.

Stack observations, assumptions, gaps and conclusion at 390 px; retain full IDs and a complete text equivalent. Any wide table scrolls locally.

Prose may follow RTL; IDs, quantities and time axes remain LTR. Preserve dependency direction.

P10-L02-ILLUSTRATIVE-v1

Sources & claim boundaries

API · PRIMARY_DOCUMENTATION

Esplora public API specification

Supported claim
GET routes, integer satoshis and indexed confirmation/outspend fields.
Verification boundary
Mechanism documentation only; original illustrative values are stipulated, not observations. Historical records have separately frozen provenance and explicit collection gaps.
Checked at
2026-10-02
Open primary source
https://github.com/Blockstream/esplora/blob/master/API.md

BTC · PRIMARY_DOCUMENTATION

Bitcoin developer guide — transactions

Supported claim
Input references identify previous transaction outputs; scripts do not identify a human.
Verification boundary
Mechanism documentation only; original illustrative values are stipulated, not observations. Historical records have separately frozen provenance and explicit collection gaps.
Checked at
2026-10-02
Open primary source
https://developer.bitcoin.org/devguide/transactions.html

Dataset provenance

id: P10-L02-ILLUSTRATIVE-v1

dataStatus: ILLUSTRATIVE

observedAt: null

source: Original offline scenario in realOrHistoricalExample

scope: Fictional stipulated labels and values. No wallet, deployment, transaction, token launch or production observation.

Test your reasoning

P10-L02-Q1 · R is fetched at 12:12Z with header time 12:00Z. Which timestamp describes the event record?
P10-L02-Q2 · 2500000 raw units at six decimals displays as what?
P10-L02-Q3 · What does a matching stored-byte SHA-256 establish?
P10-L02-Q4 · Only page 1 of 2 is available. Which statement survives?
P10-L02-Q5 · Raw transaction ID matches; inclusion is only an indexer label. What remains?