Per-tier defaults.
| Tier | Hot retention | Cold archive | RFC 3161 notarisation |
|---|---|---|---|
| Free Dev | 30 days | None (purged at hot end) | No |
| Starter | 90 days | 7 years | No |
| Professional | 180 days | Indefinite | Every chain head, automatic |
| Enterprise | 180 days (configurable) | Indefinite or contractual | Every chain head, automatic, TSA configurable |
Hot reads are sub-100ms. Cold reads are slower but complete; opt-in via the include_archived query parameter on the REST /api/v1/receipts endpoint.
How enforcement runs.
- The retention job runs daily at 03:17 UTC.
- It marks aged-out receipts as
is_archived=true(they remain queryable when explicitly opted-in). - It marks expired receipts as
purged_at=now()— soft tombstone. - Every run is recorded on the
retention_runsaudit table; the operator dashboard shows the last archived/purged counts.
Custom retention.
Per-tenant overrides are supported. They live in the tenant_retention_policies table; today they're set by us per contract. Self-serve config lands later in 2026.
Real cases we've handled by override:
- UK financial services: Starter customer needed 10 years cold instead of 7 to align with FCA SYSC retention for AI decisions in customer-facing flows.
- EU healthcare: Professional customer needed indefinite cold + RFC 3161 notarisation against an EU-based TSA (DigiCert EU Qualified TSA) instead of the FreeTSA default.
Email info@vpnetworks.co.uk with your sectoral floor; we set the override before the next nightly run.
RFC 3161 in practice.
On Professional and Enterprise tenants, every chain-head advance is timestamped by an independent Time-Stamping Authority. The TSA's signed response token (TimeStampToken) binds the chain head's SHA-256 to a wall-clock moment.
What this means in court: if a regulator or counterparty alleges you altered the chain after the fact, the notarised timestamp proves the alteration would have invalidated all subsequent tokens — and the TSA's certificate is the trust anchor, not Agent Audit.
You see notarisations on the operator dashboard Integrity page. Every evidence pack embeds the relevant tokens.
Tombstone safety.
The retention job will never purge a receipt whose session chain has not been notarised. Even when cold retention expires, an un-notarised chain segment stays put.
The rationale: purging an un-notarised chain segment leaves you with no court-admissible record of those receipts. That's a worse outcome than paying for slightly longer storage. There is no operator override to turn this off, because the day we let you turn it off is the day a customer asks us to in the heat of an incident and regrets it later.
Auditor verification.
Every evidence pack's integrity page lists the notarisations within the period and embeds the manifest JSON. The verify CLI replays the chain and validates each timestamp token against the TSA's published certificate offline:
pip install agentaudit
agentaudit-verify ./eu-ai-act-12-pack.json
# Output:
# Verifying chain head 8f3e2a1b...
# 412 of 412 receipts intact
# Chain verified
# RFC 3161 notarisation: valid at 2026-06-01T09:14:22Z
# Signature (ECDSA-P256): matches customer key fingerprint a3:c8:...