Proof

A claim about you is not true until you sign it

A countersignature is an Ed25519 signature from the organisation a claim is about, over the canonical form of that claim. It is the difference between an unanswered assertion and a verifiable fact — checkable offline, by anyone, from two published keys, forever.

npx @flashyos/countersign audit example.com

What it does

Six things, and each one is a verb somebody runs rather than a property we claim.

Audit a site

Fetch what a domain publishes about itself and report which of its claims carry a countersignature and which do not.

The difference between saying you are accountable and being confirmed so. It runs against any site, including one that has never heard of us.

Countersign a claim

An organisation publishes an assertion about a counterparty, invites them to sign, and applies the Ed25519 signature that comes back.

Any company can list your logo today and no reader can tell an accurate claim from an invented one. This is the first thing on a commercial website that only both parties together can produce.

Verify every signature, not the first

Check a document against a published JWKS and report every problem at once.

A validator that stops at the first failure lets a partially-signed record read as fully signed. Reporting one problem is how a reader concludes there is one.

Delegate the signing

A chain that lets the person who knows the fact confirm it without holding the organisation’s key.

The alternative is that the only people who can countersign are the people with key custody, which is almost never the people who know whether the claim is true.

Publish the badge

A rendering of what a record currently proves, generated from the record rather than asserted beside it.

A trust badge nobody can check is decoration. This one is derived, so it cannot say more than the signatures behind it.

Rotate a key

Retire a signing key and keep every signature it made verifiable.

A scheme where rotation invalidates history quietly punishes the one operation security asks for most.

Seven rules, and every finding names the one it broke

A validator that reports “invalid” teaches nobody anything. Read all 7.

Questions

What is a countersignature?

A countersignature is an Ed25519 signature from the organisation a claim is about, over the canonical form of that claim. It turns an unanswered assertion into a fact any third party can verify offline from two published keys, without trusting either party or FlashyOS.

Does countersigning require an account?

No. The signer needs no account and gives FlashyOS nothing. Their key is generated in their browser and never leaves it, and the resulting signature is checkable by anyone, forever, without us.

Can an organisation sign its own claim about another organisation?

No. A claim that crosses an organisational boundary only becomes countersigned when a human at the other organisation signs it. The asserting party cannot sign its own claim about somebody else — that refusal is what makes the agreement mean anything.

What happens if a signing key is rotated?

Signatures made with the retired key stay verifiable. A scheme where rotation invalidates history punishes the one operation security asks for most, so the published key set keeps what is needed to check old signatures while new ones use the current key.

Where do the signatures live?

Beside the record, not inside it. A signature carried inside the document it signs changes the bytes being signed, so countersignatures travel as sidecars — the record stays canonical and any number of parties can sign the same bytes.

Can I check a countersignature without FlashyOS?

Yes, and that is the point. The schemas and the conformance suite are served at the URLs their own $id fields claim, so an implementation in any language can fetch them and verify a record without importing anything of ours.

What does the audit command tell me about a website?

It reports what that site currently demonstrates rather than what it says — which of its published claims carry a countersignature and which are unanswered. It runs against any domain, including one that has never used FlashyOS.

What this cannot do yet

A page about proof that omitted its own gaps would be the most expensive possible place to do that.

An MCP server for reading the graph

So an agent that has never read this documentation can still read the record. It does not belong in @flashyos/mcp — every tool there is pinned by a drift test to exactly one AgentReporter method, and a directory read wraps none of them. Forcing it in would break a good invariant to save a package, so it is a decision rather than an oversight.

A witness that is not us

Countersignatures prove two parties agreed. They do not prove the record was never rewritten — that needs a witness who is not the publisher, and the checkpoint format deliberately ships unsigned rather than performing a signature that proves nothing.

Been sent an invitation? Countersign a claim. Or read the package on /packages/countersign.

Countersignature — FlashyOS · FlashyOS