How does the chain work?
Every event's hash covers its own content and the previous event's hash, and each hash is signed with an HMAC. Change, insert or delete an event and every link after it stops matching. A checkpoint builds a Merkle tree over the chain and signs the root with Ed25519, which fixes the state of the log at that moment.
What is in the log?
Policy changes are written strictly: if the audit write fails, the change fails. Approval decisions are recorded with the approver's identity. Run receipts, the per-step trail of what an agent did, are written best-effort, so a run can finish even if its receipt could not be stored.
What can I hand to an auditor?
Evidence bundles group the relevant events by SOC 2 control (for example CC6.1, CC6.3, CC7.2 and CC8.1) and by week, and each bundle is signed. A reviewer can download a bundle, verify its signature, and attest access reviews in the same screen. Raw events export as JSONL or CEF.
Limits: the per-event HMAC uses the deployment secret, and the signing key is derived from the same secret, so whoever operates the deployment holds both. The log exposes edits by anyone without those keys; it is not proof against the operator. A missing run receipt is not flagged on its own. Prashna Labs has no SOC 2 report.
