/api/attestations. They exist so that rewriting a ledger row later would contradict a dated digest already in a reader’s hands — the publication attests to itself less over time.An artifact contains no market data and no submission content — only counts, tip positions, and SHA-256 digests over the ledgers’ immutable columns:
| Field | What it commits to |
|---|---|
| ledgers.print_hash_ledger.rows_sha256 | A digest over every (print_date, sha256, corrections) row — the canonical hash of each daily print at first sight. |
| ledgers.print_hash_ledger.latest_print_date · rows | How far the ledger reached when the artifact was written — a lagging ledger is visible, not hidden. |
| ledgers.submission_hash_ledger.rows_sha256 · tip_seq · tip_chain_hash | The chained submission ledger's digest and tip. Each row's chain hash commits to every row before it, so the tip commits to the whole history. |
| ledgers.submission_hash_ledger.chain_intact | Whether the chain verified end-to-end when the artifact was written; defects would be listed, not suppressed. |
GET /api/attestations returns the latest artifact and the index of dates; GET /api/attestations/<date> is permanent for a past date. An artifact you saved yesterday is a commitment we cannot silently rewrite today — comparing your saved copy against the served one is the check./api/print/<date>. The ledger row for a date is the SHA-256 of that print’s canonical core; the artifact’s rows_sha256 commits to the full set of rows. A print that changed after its ledger row was digested can no longer match.The artifacts are produced and served by The Grid itself: they prove consistency over time— that the record you can fetch today matches the record digested on a dated earlier day — and they make silent rewriting detectable by anyone who has ever saved an artifact. They are not third-party assurance; external assurance is the roadmap’s trust ceiling, and independent, widely-held copies of the artifacts are what hardens the scheme. Saving them is participation.
The artifacts also live in the project’s git history. While the repository is private, that history is not a public verification path — the served artifacts and the chained digests are. Any wording that implies more than that is wrong and gets corrected.
A lagging latest_print_date inside an artifact is itself information: it means the ledger writer fell behind the prints on that day, and the artifact recorded that honestly rather than papering over it.
scripts/write_attestation.py (flag-gated, runs with the daily workflow) · prints: how the print is produced