██████╗ ███████╗ █████╗ ██████╗ ██╔══██╗██╔════╝██╔══██╗██╔════╝ ██████╔╝█████╗ ███████║██║ ██╔═══╝ ██╔══╝ ██╔══██║██║ ██║ ███████╗██║ ██║╚██████╗ ╚═╝ ╚══════╝╚═╝ ╚═╝ ╚═════╝
Verify what your agents and tools actually did.
PEAC issues portable, signed records for AI agents, APIs, MCP tools, and gateways. Get from zero to a verified record in seconds.
tip the terminal is real — type verify then tamper.
Pick a path. Each is copy-paste.
60 seconds to a local proof.
Generate real signed records and verify one offline. Requires Node 22+. No account.
npx @peac/cli@0.15.1 samples generate -o ./samplesnpx @peac/cli@0.15.1 verify ./samples/valid/basic-record.jws --public-key ./samples/bundles/sandbox-jwks.jsonexpected Signature valid (offline)
- jti
- 019ecfcc…bdd8
- type
- org.peacprotocol/access
- kind
- evidence
- iss
- sandbox.peacprotocol.org
- iat
- 2026-06-16
- alg
- EdDSA · Ed25519
- kid
- sandbox-2026-06
- signing input
- header.payload ✓
- public key
- sandbox-2026-06 ✓
- checked by
- web crypto · offline ✓
Same sandbox record as the terminal and /verify; rendered here so you can see the shape. Or run the walkthrough.
Attach a record to an MCP tool call.
{
"_meta": {
"org.peacprotocol/receipt_jws": "<compact-JWS>",
"org.peacprotocol/receipt_ref": "sha256:<digest>"
}
}The consumer extracts the JWS, confirms receipt_ref == sha256(jws), and verifies the signature. Tampering fails closed.
peac verify <record.jws> --public-key <issuer-jwks.json>Everything is a command.
| verify | verify the signed sandbox record (real Ed25519, offline) |
| tamper | flip a byte, then verify -> watch it fail closed |
| decode | base64url-decode the record header + payload |
| gui | open the full point-and-click verifier |
| try / mcp | open the CLI path / MCP integration |
| help | list every command |
Getting-started questions.
>how do I verify a signed record?
Run the terminal above (type verify), use the browser verifier at /verify, or run the CLI: npx @peac/cli verify <record.jws> --public-key <jwks.json>. Verification checks the Ed25519 / JWS signature against the issuer public key.
>does verification need a network connection?
No. Records verify offline with a local public key. The in-browser verifier can additionally resolve the issuer key from the record over https for convenience.
>where are the full docs and specification?
The canonical PEAC Protocol specification, schemas, and documentation live at peacprotocol.org. peac.dev is a developer front door for getting started fast.