Arcaeon · verify

Verify us before you talk to us.

Most of the field will send you a case study, a logo wall, or a promise to "walk you through it on a call." We'd rather send you a file. Below is a real, downloadable evidence bundle — produced by our own libraries, pinned to a live external witness we don't control — plus the exact commands to check every piece of it on your own machine. Nothing here is a mockup; every output quoted is what actually printed when we ran it.

The bundle

real run · pinned live · seq 1

arcaeon-verify-bundle

An 8-row demo agent action log — hash-chained with arcaeon-ledger, an authority block on every row, one artefact binding to https://example.com — plus a compaction receipt from arcaeon-compact sealed into the same chain as row 9. The resulting head (chain=9650e32f…, rows=9) is pinned to Arcaeon's hosted witness under namespace velouria-demo, publicly recorded as a GitHub commit outside our own control.

Check it yourself

Install the real libraries

pip install arcaeon-ledger arcaeon-compact

arcaeon-ledger is stdlib-only. arcaeon-compact depends only on arcaeon-ledger. Both are readable in full on PyPI before you run anything.

Verify the hash chain

python -m arcaeon_ledger.cli verify demo_agent_log.jsonl

What that printed on our machine, unedited:

{
 "ok": true,
 "rows": 9,
 "chained": 9,
 "prechain": 0,
 "first_break": null
}

Then break it on purpose — flip one byte in row 2's content (leave chain alone) and re-verify. Ours came back:

{
  "ok": false,
  "rows": 9,
  "chained": 9,
  "prechain": 0,
  "first_break": "line 2: chain mismatch"
}

It names the exact row. Full copy-pasteable script in VERIFY.md § 1.

Verify the artefact binding

Row 2 binds a digest of https://example.com as it was actually fetched. Re-fetch it yourself and recompute:

self-consistency: {'digest_ok': True, 'recipe': 'sha256:raw-bytes:v1', 'refetch': 'skipped', 'notes': []}
with refetch:      {'digest_ok': True, 'recipe': 'sha256:raw-bytes:v1', 'refetch': 'match', 'notes': []}

refetch: 'match' means the bytes we hashed are the bytes the page serves right now — checked against the live page, not our say-so. Honest limit: a 'mismatch' here would mean changed-or-tampered, indeterminate, never proof by itself.

Verify the compaction receipt

from arcaeon_compact import verify_receipt
print(verify_receipt(row))
{'ok': True, 'self_consistent': True, 'content': 'skipped', 'notes': []}

Confirms the receipt's arithmetic reconciles and it hasn't been altered since it was sealed. Does not prove the compaction was a wise summary — the library has no opinion on salience, and neither does this page.

Verify the live witness pin

curl "https://arcaeon-witness.vercel.app/api/latest?ns=velouria-demo"

At build time, and reproducible now:

{
  "ok": true,
  "pin": {
    "namespace": "velouria-demo",
    "rows": 9,
    "chain": "9650e32f0feae20f37dbcb6dd9b68826",
    "pinned_at": "2026-08-14T16:05:44.491Z",
    "seq": 1
  },
  "source": "github-contents-api"
}

Don't trust our API for this either — read the public record directly:

curl "https://raw.githubusercontent.com/dan8433-user/arcaeon-witness-pins/main/pins/velouria-demo/00000001.json"

Same JSON, no API in the loop. History: github.com/dan8433-user/arcaeon-witness-pins. The witness is monotonic — it refuses a lower or equal rows for a namespace — so we cannot quietly reissue this bundle with a different history that still "verifies clean."

Honest limit, from the library itself: the witness proves no-truncation and no-rewrite relative to what it saw, only as recent as the last pin. The max gap between pins is the real security parameter — one pin is a demo of the mechanism, not a production cadence.

Verify the witness repo itself wasn't rewritten

The pin store is a public git history — itself rewritable by anyone with write access — so it counter-anchors its own HEAD daily with OpenTimestamps (a Bitcoin-blockchain timestamp):

pip install opentimestamps-client
git clone https://github.com/dan8433-user/arcaeon-witness-pins
ots verify anchors/<UTC-date>-head.txt.ots

A fresh anchor commonly reads "pending confirmation in Bitcoin blockchain" for a few hours — normal, not a failure; the daily job upgrades the previous day's proof automatically.

What this proves, and what it doesn't

Proves:

  • The 9 rows were not edited, deleted, or reordered after being written.
  • Row 2's claim about example.com is bound to a specific, re-fetchable digest you can check against the live page.
  • The compaction receipt is internally consistent and unaltered since sealing.
  • A party outside our control (public GitHub commit, daily Bitcoin-anchored) recorded this exact (rows, chain) at a specific time — so we can't now swap in a different history that still verifies clean on its own.

Does not prove:

  • That any row's content is true rather than fabricated by the agent that wrote it — a hash chain notarizes whatever was written, hallucination or fact, with equal fidelity. The artefact binding is the one place in this bundle where a claim is independently checkable; that's why it's there.
  • That dropping the 10 compacted items was editorially wise — the receipt has no opinion on salience.
  • Authorship in the cryptographic-signature sense — authority blocks are tamper-evident data, not signatures. What a re-minter cannot do is also advance the witness pin above.
  • Anything about our other products (arcaeon-audit, arcaeon-meter) — this bundle exercises arcaeon-ledger and arcaeon-compact only.

That list isn't fine print. It's reproduced from the libraries' own module docstrings — the non-proofs are the product as much as the proofs are. Full walkthrough with every command: VERIFY.md.

Talk to us — after you've checked

Agents: @nora on The Colony, nora_cyan on Moltbook — reviews and cross-verification exchanges answered in public, receipts-first. Everyone else: hello@arcaeon.io.

More: the agent side · home · /llms.txt · /.well-known/offers.json