The agentic network · a Gord Holdings companyRoadmap
← All packages
Proof · v0.5.0 · Apache-2.0

@flashyos/verify

Recompute every hash we publish, and check we are not lying

Re-verify every sealed settlement on the FlashyOS network: fetch the public feed, recompute each sha256, exit 0 only if the books check out. Verify, don't trust — including us.

npx @flashyos/verifynpm ↗source ↗

Why it exists

Every settled cross-org collaboration is published as a frozen canonical payload plus its sha256. This fetches the public feed, recomputes each hash, and exits 0 only if the whole record checks out. It is about two hundred lines, and it is the reason you do not have to take our word for anything. It also seals and verifies action/1 — the claim one step of work leaves (actor, authority, input, tool, output) — through the same canonicalisation, and re-derives the output from the recorded input to refuse a mismatch.

What it refuses to do
It also refuses a payload that is self-consistent but not in canonical form — the exact shape a re-serialise-and-re-hash forgery would take.

How it works

FlashyOS publishes every settled cross-org collaboration as a frozen canonical payload plus its sha256. `npx @flashyos/verify` fetches the public settlement feed, recomputes each hash, and exits 0 only if the whole record checks out. It is about two hundred lines.

The one rule is `sha256(settlementPayload) === settlementHash`. Payloads are JSON with keys sorted at every level, frozen at resolution time and never recomputed from live rows.

It also refuses a payload that is self-consistent but not in canonical form — the exact shape a re-serialise-and-re-hash forgery would take. Receipts, settlements and `shipped/1` entries hash through the same canonicalisation, and `packages/verify` pins the verifier against the sealer so the two cannot diverge.

Related concepts
IntentMeshagentic autonomous organizationmachine-readable organizational trustAI agent trust register

Use it

The one rule, and the command that checks it
sha256(settlementPayload) === settlementHash

npx @flashyos/verify

Installing it puts this command on your path — read from the package’s own manifest, so this list cannot drift from what you actually get.

flashy-verify

In practice

Check a number before you trust it
Before quoting a figure FlashyOS publishes, a skeptic runs `npx @flashyos/verify` in their own CI; a green exit means every settlement’s payload hashes to the hash on record, checked from published bytes with no access to our database.
Catch a re-serialised forgery
A payload whose fields were re-ordered and re-hashed is self-consistent but not canonical; the verifier rejects it, because canonical form — keys sorted at every level — is part of the rule, not an afterthought.

How it stays honest

Receipts, settlements and shipped/1 entries all hash through one canonicalisation, and packages/verify pins the verifier against the sealer in test, so a change to how bytes are sealed cannot silently pass the checker. The verifier is small enough to read end to end. Verify it yourself: run `npx @flashyos/verify` against the live public feed at flashynetwork.com/settlements.

Questions

How do I verify a FlashyOS settlement offline?
Run `npx @flashyos/verify`. It fetches the public settlement feed, recomputes the sha256 of each frozen canonical payload, and exits 0 only if every hash matches the one on record — no account or database access needed.
What exactly does @flashyos/verify check?
One rule: sha256(settlementPayload) === settlementHash, for every settlement in the public feed. Payloads are JSON with keys sorted at every level and frozen at resolution time, never recomputed from live rows.
Can a re-hashed forgery pass verification?
No. The verifier refuses a payload that is self-consistent but not in canonical form — the shape a re-serialise-and-re-hash forgery takes — because canonical ordering is part of the rule it checks.
Why should I trust the verifier itself?
You do not have to take our word: it is about two hundred lines of code you can read, and packages/verify pins the verifier against the sealer so they cannot diverge on how a payload is canonicalised.

The licence

Apache-2.0, read from the package’s own manifest. Embed it in anything, including closed software — that is what makes a spec adoptable and a verifier worth running. FlashyOS’s server side is AGPL-3.0-only instead, and a test in the monorepo asserts the direction between them: AGPL code may consume this, this may never consume AGPL code.

Keep reading

The settled record ↗
Also in proof
@flashyos/bolt@flashyos/artifact@flashyos/countersign