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

@flashyos/countersign

A claim about you is not true until you sign it

Verification over a directory/1 record: a countersignature from the party a claim is about, an audit of what a website can prove, and a badge that carries a date. Ed25519 over the canonical assertion, verifiable offline from two published keys.

npx @flashyos/countersignnpm ↗source ↗

Why it exists

An organisation can publish an assertion about another one. This is what makes the other one’s agreement a verifiable fact rather than an unanswered claim: an Ed25519 countersignature over the canonical assertion, checkable offline from two published keys, by anyone, forever.

What it refuses to do
The signer needs no account and gives us nothing. Their key is generated in their browser and never leaves it.

How it works

`@flashyos/directory` says what the estate knows; `@flashyos/countersign` is the proof the record layer has no opinion about. A countersignature is an Ed25519 signature from the party a claim is about, over the canonical assertion, checkable offline from two published keys by anyone, forever.

The signer needs no account and gives us nothing: their key is generated in their browser and never leaves it. The CLI resolves and fetches records, grades them as of a date, invites a counterparty to sign, applies what came back, and verifies every countersignature against a JWKS.

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 without importing anything of ours.

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

Use it

Audit what a site can actually prove
npx @flashyos/countersign audit https://example.com

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

flashy-countersign
flashyos-countersign-adoption

In practice

Turn a claim about a partner into a fact
An org publishes an assertion about a counterparty, invites them to sign, and applies the returned Ed25519 countersignature — the claim becomes a verifiable fact a third party can check offline, not an unanswered assertion.
Audit what a site can actually prove
`countersign audit gda.group` reports what a website currently demonstrates — which of its claims carry a countersignature and which do not — the difference between saying you are accountable and being confirmed so.

How it stays honest

A countersignature is checkable offline forever, so its honesty does not depend on us staying up: recompute it from two published keys. The directory schemas and the 23-case conformance suite are served at the URLs their own $id fields claim, and a route test in the marketing app fails if a schema is published without being served — because a schema that 404s points every outside implementer at nothing. Verify it yourself with `npx @flashyos/countersign conformance`.

Questions

What is a countersignature in FlashyOS?
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.
Does countersigning require a FlashyOS account?
No. The signer needs no account and gives FlashyOS nothing. Their key is generated in their browser and never leaves it, and the countersignature is checkable by anyone, forever, without us.
Can an organisation sign its own claim about someone else?
No. A cross-boundary claim only becomes countersigned when a human at the other organisation signs it. The asserting org cannot sign its own claim about somebody else — that is what makes the agreement verifiable.
How do I check every signature on a directory record?
Run the CLI’s `verify doc.json --jwks keys.json`. It checks every countersignature against the published keys and reports each problem, not just the first, so a partially-signed record cannot read as fully signed.

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

Countersign a claimAudit a site
Also in proof
@flashyos/bolt@flashyos/artifact@flashyos/verify