Skip to content
5-minute local proof

Issue and verify a record locally.

Generate conformant sample records and verify one offline with the issuer public key. No account, no server. Requires Node 22.13+.

01

Generate samples

The CLI issues valid signed records and a sandbox JWKS you can verify against.

shell
npx @peac/cli@0.16.3 samples generate -o ./samples
02

Verify one offline

Point the verifier at a record and the sandbox public key. No network needed.

shell
npx @peac/cli@0.16.3 verify ./samples/valid/basic-record.jws \
  --public-key ./samples/bundles/sandbox-jwks.json

Expected: Signature valid (offline).

03

Tamper and watch it fail

Change one byte in the record and re-verify; the signature check fails closed.

shell
# edit any byte in basic-record.jws, then re-run verify
# -> E_INVALID_SIGNATURE

Sample records

The CLI generates these records. Valid ones verify offline; invalid ones demonstrate fail-closed rejection.

valid
basic-recordMinimal valid signed interaction record.
full-recordValid record with optional fields (subject, declared purpose).
mcp-tool-runValid record for an MCP tool run.
payment-eventValid record for a payment event.
event-time-recordValid record carrying an event time (occurred_at).
invalid (rejection fixtures)
expiredAlready expired.
future-iatIssuance time in the future (clock-skew violation).
missing-issMissing the required issuer claim.

Next

Verify a record in the browser, wire records into an MCP tool, or read the full quickstart and API reference.