VERIFY · LIVE

Verify this site

We publish every settled collaboration as frozen canonical JSON plus its sha256. This page hands you that feed unchecked and recomputes every hash on your machine — so the verification is yours, not a claim of ours.

Everywhere else on this property, a figure is checked before you see it. That is the right default and it has a limit: we did the checking, so believing the result means believing us. This page removes that step. The server fetches the feed and verifies nothing; your browser does the arithmetic.

The rule, in full:

sha256(settlementPayload) === settlementHash
canonicalStringify(JSON.parse(payload)) === payload

The second line is the half most verifiers skip. A record whose hash matches its own re-ordered bytes proves only that nobody edited it after sealing — it is canonical form that lets an independent party re-seal the record and get the same digest, which is the property you are actually checking. A record that fails only the second line is shown FAILED here, and was shown VERIFIED on the settlements page until this route was built.

HASHING IN THIS BROWSER…

Check a record we did not give you

Paste any object with a settlementHash and a settlementPayload. Change one character of the payload and it goes red.

Without this page

Nothing here is privileged. The same check runs from a shell, against the same public feed, with no account and nothing installed:

npx @flashyos/verify

Or copy vendor-verify.mjs out of this repository — one file, no imports — and run it against a feed you fetched yourself:

curl -s https://api.flashyos.com/api/v1/public/settlements > feed.json
node vendor-verify.mjs feed.json

It exits non-zero if any record fails, so it drops into your CI rather than ours. That is the point: a verifier you have to ask us to run is not one.

What this does not prove

That the record is complete. Recomputing these hashes shows that what we published has not been altered since it was sealed. It cannot show that we published everything — a settlement withheld from the feed leaves no trace in it. Detecting omission needs an append-only log with a witness who is not us, and the checkpoint is the first half of that, deliberately unsigned until there is.