Skip to main content
AARM (Autonomous Agent Receipt Manifest) provides tamper-evident audit trails for AI tool calls using cryptographic primitives.

Enabling receipts

Pass a signingKeyPath / signing_key_path to init():
init({
  apiKey: "tap_abc123",
  signingKeyPath: "./keys/private.pem",
});
The TypeScript library uses the Node.js built-in crypto module — no extra dependencies needed.

What receipts add to events

When enabled, three fields are added to each event before it’s sent:
FieldDescription
output_hashSHA-256 hash of the event’s output (canonical JSON)
context_hashSHA-256 hash chain linking events in sequence — hash(previous_hash + canonical(event))
signatureEd25519 signature over the canonical event, with algorithm, key_id, and value (base64)

Generating a signing key

openssl genpkey -algorithm Ed25519 -out private.pem
openssl pkey -in private.pem -pubout -out public.pem