ALL SYSTEMS LIVE·ARCHIVE CHECKPOINTS · APPEND-ONLY, CHECKABLE
DATA WITH RECEIPTS · ED25519 · OPENTIMESTAMPS·--:--:-- UTC
Home  /  Proof  /  Checkpoints
THE APPEND-ONLY CLAIM, MADE CHECKABLE

Archive checkpoints

Our archive claims to be append-only: once a datapoint is recorded, it is never edited and never backdated. A claim like that should not rest on our word. So every day we publish a checkpoint: a compact, signed fingerprint of everything the archive held for that day.

Each checkpoint is chained to the one before it, and its digest is independently time-stamped through OpenTimestamps, which commits it to the Bitcoin blockchain, a public record that nobody controls, including us. After a day is checkpointed, quietly rewriting it is no longer possible: any change to the archived objects changes the digest, which breaks the chain and contradicts the anchored timestamp. The rewrite would show.

STEP 01

Digest

We list every object in yesterday's archive partition and compute one SHA-256 digest over the sorted listing (key, etag, size), plus per-feed object counts.

STEP 02

Sign

The checkpoint document is Ed25519-signed with the same key that signs every Dynamic Feed envelope. Verify it against /.well-known/keys.

STEP 03

Chain

Each checkpoint carries the previous day's digest, so the days form one continuous chain. Altering any past day breaks every link after it.

STEP 04

Anchor

The digest is time-stamped via OpenTimestamps onto the Bitcoin blockchain. The proof is a standard .ots file you can verify offline with public tooling.

RECENT CHECKPOINTS

The last 30 days

Day (UTC)Digest (SHA-256, first 16)ObjectsAnchorProof
Loading checkpoints from /v1/checkpoints ...

Chain check runs in your browser once the list loads.

HOW TO VERIFY

Check it yourself

01Fetch the checkpoint document

The keyless API lists recent checkpoints, newest first. Each entry carries the full signed document: day, digest, per-feed counts, the previous day's digest, and the Ed25519 signature.

$ curl -s https://dynamicfeed.ai/v1/checkpoints?limit=5

02Download the timestamp proof

Every anchored checkpoint has a detached proof file. Replace the date with the day you are checking.

$ curl -s -o checkpoint-2026-07-05.ots https://dynamicfeed.ai/v1/checkpoints/2026-07-05/proof

03Verify the proof against the digest

The OpenTimestamps client is open source and talks to the Bitcoin network directly, not to us. Pass the checkpoint's digest_sha256 from step 1.

$ pip install opentimestamps-client $ ots verify -d <digest_sha256> checkpoint-2026-07-05.ots

04Check the signature and the chain

The document's Ed25519 signature verifies against the published keys at https://dynamicfeed.ai/.well-known/keys (or with the df-verify packages on PyPI, npm and crates.io). Then confirm each day's prev_digest equals the digest_sha256 of the day before it. If both hold, the history you are looking at is the history that was anchored.

$ pip install df-verify

Honest limits. Checkpoints make the archive tamper-evident, not tamper-proof: they cannot stop a rewrite, they make one visible and provable. A fresh checkpoint shows as pending for some hours while Bitcoin blocks confirm; the proof then upgrades to confirmed automatically. And a checkpoint is advisory evidence, not a certification: it proves what our archive contained on a given day, and nothing beyond that.