Proof you can check. Verify us.
Anything this platform issues you — an invoice, a receipt, a message from support — is sealed with a signature you can check yourself. Paste it below. The check runs in your browser against our published keys, so the answer is one anyone can reproduce. That is the point.
In your browser
The signature check runs locally — what you paste is never sent to us
No account
No login, no API key. Fetch the published keys, check, done
Three answers
Genuine, doesn't verify, or can't tell — never a guess dressed up as a verdict
Paste the document, or the whole message. Get an honest answer.
Checked in this browser tab. What you paste is never sent to us – only our public keys are fetched, exactly as any other visitor would fetch them.
One head commits to everything.
On a schedule, this platform seals the tip of every workspace’s evidence chain into a single signed Merkle root — the fleet head — and links each head to the one before it. Fetch the latest head and check its signature here, or paste your workspace’s inclusion proof to confirm your chain is committed by it. The check runs in your browser against the published keys; a Bitcoin anchor status is shown when the head has joined an OpenTimestamps batch.
A code is not proof. A signature is.
Messages we send can carry a short verification code and, underneath it, a signed block. The code exists so you can read it out loud; it is not a secret, and anyone who has seen a real message can quote a real code. The block is the part that cannot be faked without our private key — so when you check something, include it.
Genuine
Signed by a key we publish, unaltered since. You still check the issuing domain against the one you expected — and a genuine document never makes a link inside it safe to click.
Doesn’t verify
The bytes are not the bytes that were signed. An edit, a forward, or a partial copy does this — so it is “unproven,” not “fraud.” Slow down and contact us the way you normally do.
Can’t tell
Nothing signed was supplied, or the key is not one we publish. No check happened. We keep this visibly separate from a failure, because confusing the two is how people get caught out.
Whatever the verdict: we will never ask you for a password, a card number, or a one-time code in a message — and no result on this page should be treated as permission to hand any of those over. If you are unsure, close the message and reach us by typing our address yourself.
Paste a mandate’s status coordinate. Read the bit yourself.
Offline revocation check
Check whether a mandate is revoked yourself – entirely in your browser, against our published status list. No Agined API is consulted for the verdict.
We fetch + decode this. Or paste the credential below for a fully offline check.
Runs entirely client-side: base64url-decode → gunzip → test the bit at your index. This checks revocation only; full cryptographic signature verification of the list is available via the @agined/verifier package.
What this proves — and what it doesn’t.
What it confirms
- That a document was sealed by the key it names, at the time it states, and has not changed since.
- That its contents still match the fingerprint sealed with them.
- That the verdict came from the maths, computed locally — not from an API call you would have to trust.
- For a mandate: whether its index is marked revoked in the published list, decoded locally.
What it doesn’t
- A valid signature binds a document to a key and a time. It does not make a claim inside it true.
- A failed check is not a finding of fraud — an edit or a forward produces the same result.
- An unverifiable document is not a fake one; we simply could not check it.
- It says nothing about whether a link or attachment in a message is safe.
The signing keys are published as a JWK Set at /.well-known/attestor-keys.json, and the mandate status list at /.well-known/mandates/status-list.json. Anyone can fetch them and reach the same verdict — with this tool, with the embeddable widget, or with the offline @agined/verifier command line.