P10-L06 · P10 · P10-M02
Resolve conflicts or report insufficient evidence
Prerequisites: P10-L05
Learning objectives
- Resolve conflicts or report insufficient evidence
- Resolve conflicting measurements by time, unit and coverage before choosing a value.
Why this matters
Two providers can disagree because they measured different windows, not because one is deceptive. Picking the convenient value conceals the actual evidence problem.
Explanation
Start with a conflict ledger. For each value record asset identity, chain, block/slot, raw unit, finality basis, pagination and retrieval time. Normalize compatible units while retaining raw responses. Values from different blocks can both be valid observations; they do not describe one common snapshot. A missing field is not zero, and a stale field is not refreshed by retrieving the same cache again.
When the records truly target the same state, test decoder version, token decimals, dropped events, pending/reorg handling and pagination. Do not average incompatible balances into a synthetic “consensus” figure. An independent primary state record can resolve a field conflict, but only if its scope and identifier match. Preserve the earlier conflict and explain the resolution rather than overwriting evidence.
The conclusion should identify which narrower claims are supported and what remains unavailable. UNKNOWN labels an unresolved field; INSUFFICIENT EVIDENCE means a proposed decision, such as a withdrawal accusation, cannot be supported from those fields. A tool’s blank panel may be a coverage failure, not a clean result.
Key terms
Stale: a value whose measured state predates the claimed observation.
Conflict ledger: side-by-side source records with compatible-field checks.
Missing: unavailable field, distinct from numeric zero.
Resolution: evidence-backed explanation of disagreement.
Historical example
ILLUSTRATIVE: provider A gives balance 100 at block 50 with 0 decimals. Provider B gives 9000 raw units at block 51 with 2 decimals: 90 displayed units. Provider C returns null at block 51 because its supported event type is unavailable. A claimed withdrawal of 10 units is proposed, but no transition receipt is supplied.
Visual specifications
Evidence panel with A/B/C rows, raw/display amounts and block columns. Flag time mismatch and missing C; show withdrawal claim as unresolved, not a red fraud badge.
Caption: Fictional conflicting observations are reconciled before any event attribution.
SPECIFICATION_ONLY — the rendered visual has not been produced or independently reviewed.
What the evidence proves
A and B describe different stipulated block states; B converts to 90 units. C is missing, not zero. The apparent 100-to-90 difference is a candidate state change requiring transition evidence.
What the evidence does not prove
It does not prove a withdrawal event, controller intent, provider fraud or a current balance. Even a real balance difference could reflect several transitions or incompatible accounting.
Common mistakes
Treating null as zero; averaging 100 and 9000; ignoring block mismatch; calling the difference a theft; losing the raw records after normalization.
Practical exercise
Build the conflict ledger, compute B, reject one invalid aggregation, and write a conclusion about the proposed withdrawal. Specify the next decisive record to request.
Show worked correction
A: block 50, raw100, decimals0, display100. B: block 51, raw9000, decimals2, display90. C: block 51, unavailable, display unknown. An arithmetic average mixes time and unit bases and is invalid. “The fixture contains a 10-unit difference between separate block observations; a withdrawal mechanism and attribution are not established.” Request the transition receipt/state reconciliation for the exact asset between blocks50–51, with complete relevant coverage. Keep C as a provider-coverage gap.
Checklist
- Align identity, unit, time and finality basis.
- Preserve null as unavailable.
- Reject averages of incompatible states.
- Name the evidence needed to resolve the specific claim.
Summary
Resolve the measurement basis first; if decisive transition evidence is absent, report the precise unresolved claim.
Summary
- Null is not zero.
- Different block states are not one snapshot.
- A balance difference alone does not name a mechanism or motive.
Next lesson
P10-L07
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.
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-L06-V01
Resolve conflicts or report insufficient evidence
Fictional conflicting observations are reconciled before any event attribution.
Evidence panel with A/B/C rows, raw/display amounts and block columns. Flag time mismatch and missing C; show withdrawal claim as unresolved, not a red fraud badge.
Evidence panel with A/B/C rows, raw/display amounts and block columns. Flag time mismatch and missing C; show withdrawal claim as unresolved, not a red fraud badge.
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-L06-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
https://github.com/Blockstream/esplora/blob/master/API.md
Dataset provenance
id: P10-L06-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.