Soroban testnet ledger reading… ledger close 5.000000 s ± 0.000050 · measured, not assumed

TTL decay · recorded evidence, not a simulation

One chart, both halves of the claim

The thing left alone declines; the thing watched over steps back up. Every dot is a committed observation — irregularly spaced, because that is when the readings happened. B’s expiry marker stays after the event: the timeline is evidence, not a status display.

guinea-pig B · instance

The control. Deployed 5 September, calibrated once that day with a disclosed extend, then left alone — and it expired on 21 September, as intended. Six measured readings run into the expiry; nothing extended it at any point.

warning 120,960act 17,280 expired 2026-09-21 · ledger 4,793,687 ledger 4,586,511

Each panel has its own vertical scale; the horizontal axis is always ledger numbers. Dates beside ledgers are estimates at five seconds per ledger.

Every point behind this panel, with its source
LedgerRemainingWhat happened
4,586,511207,176observed · docs/evidence/2026-09-09-scan-dedup/scan.json
4,776,40817,279observed · docs/W3-B-WATCH-CLOSING.md
4,776,48617,201observed · docs/W3-B-WATCH-CLOSING.md
4,785,1038,584observed · docs/W3-B-WATCH-CLOSING.md
4,789,3684,319observed · docs/W3-B-WATCH-CLOSING.md
4,789,4264,261observed · docs/W3-B-WATCH-CLOSING.md

guinea-pig C · instance

The backup proof, staggered five days behind B. Deployed 5 September and left alone on the same terms; nothing has extended it. It crossed its alert threshold on 25 September and expired on the 26th; the sealed expiry observation is assessed separately below.

warning 120,960act 17,280 expired 2026-09-26 · ledger 4,880,097 ledger 4,586,511

Expiry was observed separately at ledger 4,880,115 on 2026-09-26T12:02:42.713Z. The sealed capture's v1 verdict remains unverified; its separate offline assessment reports expiry-observed. The dashed line is a projection from the last plotted pre-expiry reading, not a measured path. Read the assessment.

Each panel has its own vertical scale; the horizontal axis is always ledger numbers. Dates beside ledgers are estimates at five seconds per ledger.

Every point behind this panel, with its source
LedgerRemainingWhat happened
4,586,511293,586observed · docs/evidence/2026-09-09-scan-dedup/scan.json
4,821,84858,249observed · apps/web/data/snapshot.json

guinea-pig A · instance

The watched one. Its decay was arranged by raising the alert threshold above its remaining TTL; the response was not. Each upward step names its actor and transaction.

warning 120,960act 17,280 manual CLI · e18e0822…engine, local timer · dae63da8… ledger 4,585,589

The dashed segment is a projection to a known expiry ledger, not a reading. Nothing has been recorded past the last dot.

Each panel has its own vertical scale; the horizontal axis is always ledger numbers. Dates beside ledgers are estimates at five seconds per ledger.

Every point behind this panel, with its source
LedgerRemainingWhat happened
4,585,5891,440,000observed · docs/evidence/2026-09-09-guinea-pig-a-extend/README.md
4,821,4621,548,799observed · apps/web/data/snapshot.json
4,626,4231,399,166 → 1,400,168manual CLI · e18e0822d7131b6dc4ffb0953d880baf91135bc0e7a1e3ee40b4ea5071a4115a · +1,000 ledgers requested; expiry +1,002 including inclusion delay. Fee charged 5,064 stroops. docs/evidence/2026-09-12-manual-extend-proof/README.md
4,670,2611,356,330 → 1,700,000engine, local timer · dae63da8bd42dde7ca8a72ac9ff99f7d7179cc505819db337253843e60369128 · Alert threshold raised to 1,500,000 so the engine would act — arranged timing, genuine response. Fee charged 44,725 stroops. No row here is labelled scheduled cron: as far as the record goes, the production cron has never extended anything. docs/evidence/2026-09-14-scheduled-a-save/README.md

shared code entry

One entry all three contracts depend on — A, B and C were built from one Wasm. Extended on 2026-10-14, eighteen days late, after the decay proofs were captured.

warning 120,960act 17,280 manual stellar CLI · ef581718… ledger 4,586,511

The dashed segment is a projection to a known expiry ledger, not a reading. Nothing has been recorded past the last dot.

Each panel has its own vertical scale; the horizontal axis is always ledger numbers. Dates beside ledgers are estimates at five seconds per ledger.

Every point behind this panel, with its source
LedgerRemainingWhat happened
4,586,511704,318observed · docs/evidence/2026-09-09-scan-dedup/scan.json
4,821,462469,367observed · apps/web/data/snapshot.json
5,271,7733,025,389observed · apps/web/data/snapshot.json
5,186,763104,066 → 3,110,399manual stellar CLI · ef5817188b0405bea7e5622365cc2fb8585438fc164890104aff5114630340fb · The entry that governs whether A, B and C are usable at all, 104,101 ledgers from archival. Remaining went from 104,101 to 3,107,326. Fee charged 289,112,648 stroops. docs/evidence/2026-10-14-shared-code-extend/README.md

How to read this

A sawtooth is the product working: decay, then an extension, then decay again. A straight decline is the control: guinea-pig B was calibrated once on 5 September and left alone, so its two observations agree on one expiry — ledger 4,793,687, 21 September 2026. A's steps each link to the transaction that made them; the second step's timing was arranged by raising the threshold, the response was not. The shared code entry binds all three contracts and ends at ledger 8,297,162, ~12 April 2027.