Reference · integrity
Externally-timestamped record
Each UTC day, Scopes computes a single cryptographic fingerprint (a Merkle root) over everything appended to the record that day: price snapshots, flagged divergences, reads, model reads, resolutions and corrections. The root is anchored to the Bitcoin blockchain via OpenTimestamps and mirrored to a public GitHub repository. That lets anyone prove a given day’s record existed on that date and has not been altered since, without trusting Scopes.
Method: canonicalization v1 (RFC 6962 Merkle). The exact rules are published in the scopes-integrity repository, which also carries every day’s digest line and its .ots proof.
On anchor timing
Anchoring began on Sep 28, 2026. Days before that were fingerprinted from the existing append-only record and anchored retroactively: their proofs establish existence as of the anchor date, not the record date. From Sep 28, 2026 forward, every day is anchored before the next day begins.
75 days anchored retroactively, 3 same day.
The daily digests
78 days recorded, 66 Bitcoin-confirmed. Newest first. Showing 1 to 50 (page 1 of 2).
| Date (UTC) | Merkle root | Rows | Timestamp | Anchor | Proof |
|---|---|---|---|---|---|
| 2026-09-30 | 7faec9fba5d6771b5093… | 324 | pending | Anchored same day | pending |
| 2026-09-29 | 4e55a1c5208d4f612f5c… | 298 | pending | Anchored same day | pending |
| 2026-09-28 | 060b9a93a59de7f670c9… | 271 | submitted, awaiting confirmation | Anchored same day | .ots |
| 2026-09-27 | d085f296a9e2df92be51… | 253 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-26 | 11c37893fea02217626f… | 267 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-25 | 4cf01f6368dc2025c2b5… | 263 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-24 | 9bfd31c62d50b3571b6b… | 278 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-23 | ba3441dc2bbc1be717af… | 276 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-22 | a0d6c6877ce53f570431… | 272 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-21 | 78873bbe73fa5b73a6d5… | 364 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-20 | 7b96aee0f1d93d8a6d74… | 273 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-19 | 64d7bec5251edb918b77… | 271 | submitted, awaiting confirmation | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-18 | d7174eefc12f287d0c13… | 288 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-17 | 665deee7dfa94eac65cb… | 280 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-16 | 3e1a771a821b9938ee2a… | 311 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-15 | 3d09b53254ea8f5c6610… | 302 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-14 | 82e2612b43b9c2fbcd24… | 282 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-13 | dbddfbe195ebaddb9e91… | 281 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 30, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-12 | 5d8328879484d9fac11f… | 308 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-11 | c853da24e233b1e18006… | 277 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-10 | 40da7ff93d7705a61333… | 276 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-09 | 17290139c7e161880f7f… | 269 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-08 | 2783321d388d62a5084e… | 305 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-07 | 1889a89050d11ddebc3a… | 274 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-06 | 56a56bf47212c537bb68… | 253 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-05 | c2b0e19976cafc896d6b… | 729 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-04 | c6cac7cde010a18cb83a… | 278 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-03 | 715b36d23192d75ba18e… | 293 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-02 | 0dfbf125566ce4e55579… | 280 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-09-01 | 7b4daa62b5ea1bb2cc82… | 393 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-31 | d6cdc3ac84c28d87792b… | 317 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-30 | bf99c1380b8db6f2a19c… | 293 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-29 | 227d74c2237735dc3d2b… | 179 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-28 | db9a2ac8fb0654b91644… | 198 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-27 | e9819e8cd7c112c4f842… | 206 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-26 | 1893da3785d46cde8c44… | 196 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-25 | 6759acadaf43291cc864… | 180 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-24 | 1c1ea4a9cef2f47cef35… | 167 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-23 | d696d4a0deea0afbad7e… | 140 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-22 | c9d021cf8d7992c022ad… | 164 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-21 | ad9b81abc267f016a639… | 194 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-20 | 7ef5b09c48da81882463… | 217 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-19 | c7c52bf12a2017b325df… | 138 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-18 | f4a0249b38b1cbfc6c6b… | 153 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-17 | 761d5936319c5c4fc067… | 256 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-16 | 48a8122958976b92047a… | 154 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-15 | 65b02573af2387336b57… | 205 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-14 | c61320be5dab5ed904ae… | 175 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-13 | 6b10041a813c2dfbb9b2… | 153 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
| 2026-08-12 | 8b7021736ca313164cdb… | 92 | Bitcoin-confirmed | Retroactively anchoredAnchored Sep 29, 2026. Proves existence by that date, not the record date. | .ots |
The Anchor column marks provenance. “Retroactively anchored” days were fingerprinted from the existing append-only record and timestamped later, so the proof establishes existence as of the anchor date shown, not the record date. “Anchored same day” days were timestamped within the nightly cycle.
How to verify
- Recompute a day’s root. Take a day’s data export, apply canonicalization v1 (RFC 6962), and compute the Merkle root. It must equal the root published above. A reference verifier ships in the repo at
scripts/verify-integrity.mjs(usage below); the rules are frozen indocs/integrity-canonicalization-v1.md. - Verify one row. Fetch an inclusion proof for a single record via
/api/integrity/proof?date=&table=&id=. It returns the leaf hash, the audit path, and the day’s root. Recompute the leaf hash from your copy of the row and confirm the path leads to the root. (No row content is returned, so no personal data is exposed.) - Verify the timestamp. Download the day’s
.otsproof and runots verify(OpenTimestamps client) against the root. It confirms the root was committed to Bitcoin at or before the attested block time.
Recompute a day (reference verifier)
node scripts/verify-integrity.mjs <export-dir> <YYYY-MM-DD> <expected-root>