Litecoin.watch — first confirmation observer pilot
Release: 2026-10-02-v1 / analysis 1.0
Frozen database snapshot: 2026-10-01 22:20:00 UTC
Last poll included: 2026-10-01 22:19:52 UTC
Report date for citations: 2026-10-01 (UTC snapshot date).
Report: https://litecoin.watch/articles/what-our-node-has-observed-about-litecoin-confirmation-times-so-far

Scope
This is a short, descriptive pilot, not the completed October study. One pruned
Litecoin Core 0.21.5.8 mainnet node, a deterministic 1-in-16 transaction-ID rule,
nominal 15-second polling, and newly observed transparent mempool entries only.
Transactions already present at each baseline reset are excluded. Entries that
appear and confirm between polls are unobservable. Poll gaps censor open waits.
The cutoff does not retrospectively fill in later outcomes.

Input files
cohort.csv: one row per selected transaction; UTC Unix seconds. Columns: txid,
first_seen, state, closed_at, confirmed_at, block_height, block_hash. Empty fields
mean unavailable. These are public transparent-chain identifiers, not people,
merchant customers, private MWEB movements or measured sender broadcast times.
polls.csv: UTC Unix seconds at, collector state, covered_seconds (0..30),
baseline_excluded (mempool entries excluded at a reset, not new sampled rows).
snapshot.json: capture metadata and original CSV SHA-256 values. Both tables
were read in one read-only SQLite transaction. The node_status_read_after_export
field is a separate diagnostic read, not an input to numerical calculations.
observer-source.py.txt: exact deployed cohort state machine retrieved after
capture and checked against the maintained source. SHA-256:
418dd2209c09b17243c4e67a9cafe20ad47f976df829ad68eca2725a21523311
The RPC/daemon wrapper is described in the existing protocol:
https://litecoin.watch/uploads/research/confirmation-observer-20260927-v2/README.txt

Reproduction (Python 3.10 or newer, standard library only)
1. Unzip the package into an empty directory. Keep input files together.
2. Rename analyze.py.txt to analyze.py (or run the .txt filename directly).
3. Run: python analyze.py .
4. Compare the JSON with results.json. Key ordering and whitespace may differ;
   numeric results must agree. SHA256SUMS.txt identifies this immutable package.
The script validates CSV hashes, transaction uniqueness, selection, time bounds
and coverage intervals before calculating results. Hashes identify file content;
they are not an independent attestation of node correctness.

Calculations
Covered time is SUM(covered_seconds) over the frozen polls.
Matched-only duration = confirmed_at - first_seen for state=confirmed.
For q=0.5 or 0.9, sort these durations and linearly interpolate at (n-1)*q.
Buckets have inclusive upper bounds 60,150,300,600 seconds, then >600.
Shares shown in the timing table use n=7595 only.
The all-outcomes table instead counts every row, n=8148.
No survival estimator, causal fee effect or population confidence interval is
claimed. Transactions share blocks; collection gaps are informative; recently
seen and censored entries have different follow-up. Open outcomes are not failures.

Main results
Total 8148; counts {"censored_gap": 512, "censored_reorg": 0, "confirmed": 7595, "left_mempool": 13, "pending": 28, "recheck_required": 0}
Covered seconds 62040; matched blocks 334.
Matched-only median 135.0 s; p90 390.0 s.
Histogram [1781, 2556, 1966, 1146, 146]; maximum matched wait 1035 s.

Files and versioning
Figures are SVGs generated from these results, with zero-baseline counts and
explicit conditional denominators. The hero is an SVG summary of measured data.
This release will not be overwritten with later observations. Corrections need
a new version and an accompanying explanation. The live observer and its rolling
exports are separate: https://litecoin.watch/confirmation-times/

Responsibility
Produced by Litecoin.watch. Article editor: Jarosław Wasiński. Code and drafting
were AI-assisted. Reproducing the arithmetic does not independently validate
the node, transaction selection or the completeness of observed network traffic.
No external independent reviewer is claimed.
