On-chain anchors

Anchor verification

GrantLayer maintains a tamper-evident audit chain. The head of that chain is committed to the Cardano mainnet as a small, immutable record — each anchor a deliberate, individually authorized act, on no fixed schedule. This page lists those commitments and is careful to state exactly what they do — and do not — establish.

Loading the anchor snapshot…
EpochTransactionBlockBlock time (UTC) Head (H)Entries (N)Status
Loading anchors…

What this proves — and what it does not

What this proves

  • At each block time above, an immutable, timestamped, on-chain commitment existed to an audit chain of N entries whose fold head was H.
  • Those commitments form a growing sequence over time — the entry counts increase, and each anchor is fixed in a block that cannot be altered after the fact.

What this does NOT prove

  • Nothing about the contents of those entries — the anchor commits to a hash, not to any readable record.
  • Not that the entries correspond to real events, nor who did what.
  • Explicitly: this page is not evidence that any particular action was authorized. Anchoring freezes a record; it does not vouch for the record's truthfulness.
  • Nothing about events appended after the newest anchor. An anchor commits to the chain only as it stood at publication; everything appended since sits in an un-anchored window that no on-chain commitment covers until the next anchor is published. Within that window the row-hash chain alone cannot expose a database-level rewrite — truncation to an earlier prefix, a full re-link after an edit, or a mutated field re-hashed in place all produce a chain that still verifies. Anchors here are deliberately cadence-free (each is an explicit operator act), so the window has no fixed length. This is the structural trade-off of periodic anchoring, not a defect of this chain.

Verify it yourself

Do not trust this page — read the chain directly. The anchors carry Cardano metadata label 923350. Using the public, keyless Koios API on mainnet:

# 1. list anchor transactions (returns tx hash + block)
GET https://api.koios.rest/api/v1/tx_by_metalabel?_label=923350

# 2. read one anchor's committed payload {h, s, t}
POST https://api.koios.rest/api/v1/tx_metadata
     {"_tx_hashes": ["<tx hash from step 1>"]}
# → metadata["923350"] = { "h": <head>, "s": <entry count>, "t": <anchored-at> }

That confirms the on-chain commitment. To go further — to check that a specific full audit export folds to an anchored head — an operator can provide the export, and scripts/verify-anchor.py in the repository recomputes the head from that export (standard-library only, no GrantLayer code, no Cardano library) and compares it to the anchor. The export is not published here, so this page proves only the commitments, not their contents.