Circulation84 203 915Entries 7d312 884State◐ REPORTEDInvariant FAILas of 2026-08-14 04:00 UTC · a pinned fixture read, never live-ticking

VERIFY · LIVE

Proof

One invariant decides whether any figure on this site may read Reconciled: the sum of every ledger entry must equal the sum of every balance. This is every run of it, passing or not.

INVARIANT · FAILCYG-LED-6

Σ entries

206 533.35
◐ reported · 04:21 UTC

Σ balances

206 533.35
drift 0 minor units

The most recent run FAILED, and is published here for that reason. Nothing on this property reads Reconciled while that is true.

What failed it

  • 16 balance-continuity breaks since the watermarkAn entry recorded after 2026-08-14 did not begin where the previous one ended. Every write path has gone through one primitive since then, so a break here means that guard was defeated — this is the one continuity figure that is a live defect rather than history.

Drift between the two totals is 0 minor units. Offsetting errors net out, so a run can fail with the totals agreeing exactly — which is why the sum is one check here and not the only one.

Historical continuity breaks

181 entries recorded before 2026-08-14 do not begin where the previous one ended. Every write path has gone through one primitive since that date, so no new one can be created — and because the ledger is append-only, none of these can be corrected either: a mistake is fixed by posting a compensating entry, never by editing history. They are published as a closed scar rather than repaired, and they do not fail a run. One recorded on or after that date would.

The largest breaks, worst gap first · all recorded before the watermark
EntryRecordedBooks saidEntry saidGap
445a7aa7-a7dd-4fef-b944-35f202ee045e2026-07-29219,51319,511
7016022f-6aa8-41ec-93c3-0261990a00232026-07-292519,46919,444
cc22cb8b-c375-4809-8114-daa52adf32d32026-07-223519,25819,223
206d56b7-33a3-446b-beae-aa5a91f5f6a72026-07-221019,217.2519,207.25
8fa93e2f-d604-4267-86cc-47efbf7ffdb92026-07-291019,190.2519,180.25
2e7ad2cc-998c-4116-a868-65544997819e2026-07-2919,074.55-19,069.5
e157b456-c937-4c97-9a77-fbffa4b8eff62026-07-291019,074.519,064.5
37ea75d2-6b57-43c4-884d-457c474f63482026-07-2910219,115.7519,013.75
a24d17dc-35bc-449f-a504-1e2efc9d52582026-07-2219,036.2551-18,985.25
088daf97-08c0-4071-a751-e7a245b27e762026-07-29418,916.318,912.3
4f02c37d-92a4-4bb8-a005-27af5651f9f02026-07-292018,892.2518,872.25
176091a6-e0ca-498b-a6ba-7818ec8d39cf2026-07-2941019,27418,864
68891313-ac78-4e9a-b2de-7280ffaf00852026-07-2219,058205-18,853
f4a0f88a-e556-49a5-ace4-0cbb548885772026-07-29218,833.518,831.5
eb2e4ba7-2086-475c-a038-1d2ed6e3df202026-07-2219,017.25210-18,807.25
5b61e522-3cb2-41d6-83fb-79efe31d17942026-07-232018,757.518,737.5
26d52b26-7a73-47f4-b69d-0838616907052026-07-2318,752.525-18,727.5
7b6a9cc1-83c5-49ab-a24e-65ded5165d612026-07-293018,730.2518,700.25
45727f60-c98e-4f68-9f66-4321a9894e212026-07-2318,66410-18,654
714ff142-70ee-4931-b4e8-c7fa72b81ffd2026-07-2518,589.55-18,584.5
6e40945d-05a4-4324-bcda-714dcc49bf262026-07-291018,589.7518,579.75
a38969df-f732-41c2-978c-c780a3ad92622026-07-292018,48818,468
3198bf43-c3ec-430c-bc64-0b216dd85c3a2026-07-2418,467.2510-18,457.25
8221752d-faac-4317-8267-b66e30aae9252026-07-292018,477.2518,457.25
429ef116-3aa1-4ee1-bfdb-47ea8124f6ae2026-07-2318,388.75200-18,188.75

Exit criteria · workstream CYG-LED

TaskRequiredTodayStatus
CYG-LED-1Integer minor unitsPartly. Wallet.goldBalanceMinor (BigInt) is written in lockstep by postEntry, with backfill and verify scripts; goldBalance and the GoldLedger amount columns are still Float, so reads have not flipped
ClaimYour.Gold · prisma/schema.prisma · SEAM-3 Phase A · read 2026-08-20
IN BUILD
CYG-LED-2One write path, CI-enforcedLanded. Every movement goes through postEntry; the legacy-writer list in eslint.ledger-legacy.mjs is empty and the rule keeps it that way. SEAM-4 Phase 1 gates service-to-service calls through one guard
ClaimYour.Gold · eslint.ledger-legacy.mjs · SEAM-1, SEAM-4 · read 2026-08-25
LIVE
CYG-LED-6Nightly Σ(entries) = Σ(balances)Installed. invariantJob runs at 04:00 UTC and writes every run — pass or fail — to ledger_invariant_runs, which this property reads
ClaimYour.Gold · src/jobs/invariantJob.ts · src/services/invariantRunService.ts · read 2026-08-25
LIVE

Run history

The nightly job runs at 04:00 UTC and writes every result to the record, pass or fail. The most recent is above. This history shows every failure it finds, including historical ones, and is never reset — a reconciliation history with the failures taken out is not evidence, it is marketing.

What happens when it passes

A passing run is what entitles a figure to read Reconciled, and it is also the gate on the chain. A snapshot only becomes reproducible once the ledger holds integers behind one writer, and a root may only be anchored for a snapshot whose invariant passed — anchoring a ledger that does not reconcile would make the drift permanent instead of merely present. How anchoring works →