Verify · nothing sent · no account

Paste a signed card.

Two modes. Estate cards recompute Ed25519 against did:web:csoai.org#card-attestation-1. Public-root mode loads GET /root.json, verifies its Ed25519 envelope against the pinned board key, and binds inclusion proofs to that root. Root membership does not individually sign a leaf. This is not a certificate, and it is not a training record.

Attestation trio for strangers: VALID (signature and payload match), INVALID (signature fails), UNCHECKABLE (superseded living stamp, missing PQC seal, or verify path not wired) — never paint UNCHECKABLE as INVALID by default.

Verify a single estate record

Paste any one estate record — hash and signature are recomputed here, in your browser, against the published keys. Share a permalink and the recipient's browser re-runs the same check on the same bytes.

Fetches one leaf from the published chain (or card index) into the box — unaltered.
Paste a record above to enable this.

Chain replay is not claimed

A previous demo rehashed records and expected values generated by the same browser bundle. That can demonstrate SHA-256 mechanics, but it cannot independently establish a published chain or prove that a record was unchanged after signing. It is withdrawn until exact published bytes, trusted reference hashes, and link continuity are bound into one verifiable input. Use the estate-card verifier above for the capability that is live today.

Board stamp — living board, not your card

This is the published board stamp. It is not a stamp on a card you just pasted. Empty fields show exactly why they are empty.

Attestation · live from GET /api/gspc · click any row for traces

Measurement freshness · derived from GET /api/gspc · measured_on

behavioural axes 2026-08-12 · jail 2026-08-18 · financial-fact axes 2026-08-25

living_stamp.gold_run 18 Aug 2026 — payload stamp, not a live re-measure. Board counts stay derived from GET /api/gspc; no new MEASURED invented here.

These run dates are weeks old. Freshness is labelled; the board is not re-stamped from this UI.

Living Stamp — SIGNED

Do not treat this as a valid attestation. Check site_attestation instead.

Progress · 22 axis · 22 measured

N→N+1 drift · UNCHECKABLE

No published board time series for N→N+1 drift. Empty stays empty — do not invent drift numbers or a Merkle seal. Cite GET /root.json and GET /api/gspc for the living snapshot only. Living snapshot only — cite GET /root.json.

22 axis are on the board and every one carries a measurement — no declared slot is empty. Both counts are DERIVED from the axis array, never typed; if a future slot is added with no run behind it, this line separates the two again on its own.

In-lane measurements · not board rows

2 slots measured in-lane on a smaller fleet with no separation test. Published as measured_in_lane on GET /api/gspc — never stamped onto the board. Board public_count stays 22 axis · 22 measured.

What this button does NOT do

  • The estate-card verifier recomputes the payload hash and checks the Ed25519 signature against the published key. Current v0.1 signed cards are under 1KB; the envelope specification allows a maximum of 3KB. Authorship is carried by a card signature checked against did:web:csoai.org#card-attestation-1, public key d4cb0eaa16d5f50b… — read it out of that document yourself and compare it to the pubkey on any card. A card's trust path is an Ed25519 signature over a SHA-256 hash chain, verifiable offline against did:web:csoai.org — no blockchain and no timestamp authority sits in that path. The /xrpl-attest page is a reader of GET /root.json (signed root envelope; inclusion does not individually sign a leaf). GET /api/xrpl is a reader of that root (writes_board false, live locked 16, same merkle). Historical DEVNET Payment-memo / CredentialCreate hashes are not this feed. XLS-70 Credentials are live on XRPL mainnet as an allowlist primitive; we are not issuing GSPC grades on-ledger. Separately from the card trust path, The current canonical public root has a proof-derived CONFIRMED_BITCOIN OpenTimestamps witness at block 966783. That witness covers the exact public root.json bytes only, not the separate signed-card index. Queued and candidate atoms are not automatically admitted, published, or anchored; a pending calendar stamp, where one exists, does not by itself prove inclusion in a Bitcoin block. The current canonical public root has a proof-derived CONFIRMED_BITCOIN OpenTimestamps witness at block 966783. This covers the exact public-root bytes only, not an individual content_id or the separate signed-card index. The post-quantum ML-DSA-65 (FIPS-204) path is planned and scaffolded only; no PQC signer/runtime is built or published.
  • The 3KB envelope ceiling is binding; it is not the current card size. An ML-DSA-65 signature is ~3.3KB and cannot live inside that ceiling. Hybrid, when it ships, is a second receipt on the root / DID / inclusion bundle — never a PQC-signed card.#board-pqc-1 is ABSENT. No PQC verify helper is wired. Fail-closed: a missing PQC seal is UNCHECKABLE, never VALID. PQCBench is the GSPC continuity arena (csoai/gspc-asi), not a post-quantum signature on these cards.
  • It does not contact a server. Verification is local; you bring the records and the WebCrypto implementation in your browser.
  • It does not assert that a model is "safe", "compliant", or "authentic". Those words are not in the button's vocabulary, on purpose.