Skip to main content
[AVAILABLE], 113 run unattended via npm run examples (scripts/run-examples.ts), confirmed passing this pass; one (09, noted below) needs a live server and runs individually. Numbering has a few intentional gaps (61, 63-68, 85), retired when the Razorpay connector was deliberately removed from the codebase, never reused, see the note below. See Detect tampering and Choose a signature provider for guides built directly on several of these.
Run any of them directly: node_modules/.bin/tsx examples/tutorials/<NN-name>/run.ts. No AI agent action is authorized without a signed human approval, so every tutorial that shows an approved action has a demo approver sign one first (examples/shared/helpers/demo-approval.ts: a key made in memory, trusted only by that tutorial’s own runtime). On a real deployment the approver is a person added through Manage approvers.
The same pattern each time: generate something valid, mutate exactly one thing, re-verify, confirm rejection. See Detect tampering for three of these run live with real output.
These four once demonstrated a permit and receipt model that has since been deleted. They now run the real pipeline with CRYPTO_MODE=hybrid (Ed25519 and ML-DSA-65).
Tutorials 61, 63-68, and 85 don’t exist. All were retired when the Razorpay connector was deliberately removed from the codebase (docs/CLAIMS.md’s “Key Compromise Notice” section and the connector-removal history), never reused. examples/README.md in the source repository is the authoritative, current tutorial list.
See HubSpot for the connector these exercise and its exact proven scope.
Tutorials 96 through 104 exist and pass in CI but aren’t yet in the tables above.
105: Tenant Key Isolation. Demonstrates the per-tenant signing-key fix: a transaction with a provisioned tenant.<tenantId> key signs and verifies only under that key, an unprovisioned tenantId falls back silently to the shared default key, and a transaction with no tenantId is unaffected. Newly added to scripts/run-examples.ts’s list: it existed and worked standalone since its own commit, but npm run examples never exercised it until now.106: API Key Issuance (Writing a New Policy). A brand-new policies/api-key-issuance/1.0.0 policy (now 1.1.0, which also needs a signed human approval) and worked example showing how to author a policy correctly under the fail-closed boundSignals discipline and zero-conflict shape from the start, rather than retrofitting it afterward the way all 10 pre-existing policies needed. Also in scripts/run-examples.ts’s list from its first commit.107: Offline Verification. verifyExecutionTrustRecordOffline verifying a genuine record, a tampered one, and a wrong-key attempt, with zero disk/network/env-var access. One level stronger than Verify a trust record independently’s “server process stopped” proof.108: Public-Key Discovery. GET /keys/:keyId and GET /.well-known/jwks.json, unauthenticated, plus the full chain: a key fetched over real HTTP verifies a real record fully offline via Tutorial 107’s function, with zero further server calls.109: Durable-Evidence Key Rotation. PARMANA_VERIFICATION_KEY_ID rotating the Trust Record/Refusal Record/Audit Event signing key to a freshly generated keyId without invalidating any already-issued signature. That property was previously false (the only prior “rotation” was overwriting the key file in place).110: Hybrid-Signature Downgrade Protection. The opt-in HYBRID_SIGNATURE_REQUIRED flag closing the gap where a hybrid-signed record’s ML-DSA-65 signature could be silently stripped with no cryptographic trace, while leaving every already-issued record (default policy, unaffected) exactly as verifiable as before.
No AI agent action is authorized without a signed human approval, reads included. See Human approval.

Scenarios

Two production-shaped scenarios also live in examples/scenarios/, run manually via npm run examples (scripts/run-examples.ts), not currently part of CI: expense-approval, purchase-order. (A third, vendor-payment, existed here until payments:execute was removed from the repository entirely.)

Next

Detect tampering

Three of the tutorials above, run live with real output.

Limitations

What’s tested, what’s an honest gap, and how to verify any claim yourself.