Documentation

Evidence Receipts

Evidence receipts are the fundamental unit of governance proof in AGEI. Every governed AI event—policy evaluation, human decision, agent action, or audit request—creates a tamper-evident receipt with cryptographic integrity.

What is an Evidence Receipt?

An evidence receipt is a structured, tamper-evident record of a governed event. It captures:

  • What happened: Event type, action, outcome
  • When it happened: Timestamp with precision
  • Why it happened: Policy context, reason codes
  • Who authorized it: Principal, role, human reviewer
  • Whether controls fired: Gate outcome, approval/denial
  • Cryptographic proof: Content hash, signature, linkage

Receipts are the connective tissue between all AGEI features. They link policy gates to human decisions, agent actions to authorization, and runtime events to audit packs.

Generic Receipt Structure

Example: Gate Evaluation Receipt

Policy gate evaluated an AI model deployment request

{
  "receipt_id": "rcpt_001",
  "receipt_type": "gate_evaluated",
  "organization_id": "org_123",
  "event_id": "evt_456",
  "policy_id": "policy_789",
  "policy_version": "1.0.0",
  "outcome": "escalate",
  "reason_code": "HUMAN_REVIEW_REQUIRED",
  "content_hash": "sha256:a1b2c3d4e5f6...",
  "signature_alg": "Ed25519",
  "signature": "7f8g9h0i1j2k...",
  "prev_receipt_id": "rcpt_000",
  "created_at": "2026-05-04T16:30:00Z",
  "metadata": {
    "system": "credit-risk-ai",
    "model_version": "v3.2.1"
  }
}

Receipt Field Descriptions

Identifiers

receipt_id: Unique identifier for this receipt
event_id: Links to the triggering event
organization_id: Tenant isolation
receipt_type: Category (gate_evaluated, human_decision_recorded, etc.)

Policy Context

policy_id: Which policy was evaluated
policy_version: Immutable version identifier
outcome: Approve, Deny, Escalate, Inspect
reason_code: Machine-readable explanation

Cryptographic Bindings

content_hash: SHA-256 hash of receipt content
signature_alg: Signature algorithm (e.g., Ed25519)
signature: Cryptographic signature (optional)

Receipt Linkage

prev_receipt_id: Links to previous receipt in chain
created_at: Timestamp of receipt creation
metadata: Additional context (system, version, etc.)

Common Receipt Types

gate_evaluated

Policy gate evaluated an AI lifecycle event. Includes outcome (approve/deny/escalate/inspect) and reason code.

human_decision_recorded

Human reviewer made an approval, denial, or escalation decision. Includes reviewer role and justification.

agent_action_requested

AI agent requested to invoke a tool or perform an action. Includes agent ID, session, and tool parameters.

action_approved

An action was authorized to proceed. Links to gate evaluation or human decision that granted approval.

action_denied

An action was blocked. Includes reason code (policy violation, missing privilege, etc.).

audit_pack_created

An audit pack was materialized. Includes scope definition, included receipt count, and verification status.

Retrieval Pointers

Receipts include pointers that enable efficient retrieval during audit pack materialization:

  • event_id: Links back to the original AI lifecycle event
  • policy_id + policy_version: Retrieves the exact policy that was active
  • prev_receipt_id: Builds receipt chains for tamper detection
  • organization_id: Scopes audit packs to specific tenants
  • receipt_type: Filters by category (gates, HITL, agent actions)

Audit Pack Inclusion

When an audit pack is materialized, relevant receipts are selected based on scope criteria:

Scope Criteria

• Date range (created_at)
• System or model (metadata.system)
• Receipt types (gate_evaluated, human_decision_recorded)
• Policy versions (policy_id, policy_version)
• Event types (model deployment, agent action)

Verification Steps

• Recompute content_hash and verify integrity
• Validate signature (if present)
• Check prev_receipt_id linkage for tampering
• Confirm policy_version matches expected value
• Generate verification manifest

Receipt Best Practices

Immutability

Once created, receipts should never be modified. Store them in append-only evidence vaults with tamper detection.

Cryptographic Hashing

Always include content_hash (SHA-256 recommended). This enables verification that receipt content hasn't changed.

Receipt Chains

Link receipts using prev_receipt_id. This creates a chain that makes tampering detectable—changing one receipt breaks the chain.

Policy Version References

Always include policy_version, not just policy_id. This proves which version was active when the decision was made.

Ready to Work with Receipts?

Explore the API documentation or Python SDK to start creating and querying evidence receipts.