This document describes the technical deletion mechanism. It does not constitute legal advice. Consult qualified legal counsel for your specific GDPR obligations as a data controller or processor.
Requesting deletion
Agent-level deletion
202 Accepted
status value progresses through the cascade phases documented in Cascade phase breakdown below. Initial state after the 202 is tombstoned (the agent is immediately inaccessible — all read endpoints return 404); the deletion-status endpoint below reports progress through the remaining phases.
The agent is immediately inaccessible — all read endpoints return 404 after the request is accepted. Data deletion proceeds asynchronously across all stores.
An owner or admin of the org that governs the agent can delete it, and so can the agent’s creator while they are still a member of that org. Another member of the org gets 403; a caller outside the org gets 404, the same answer as an agent that doesn’t exist. The same rule applies to tombstoning and restoring an agent.
Org-level deletion
409 Conflict until every blocker is cleared:
- Every agent in the org must already be deleted (or tombstoned).
- The org must have no active subscription.
- The org must have no remaining API keys.
200 OK with { "deleted": true }.
Checking deletion status
404, the same answer as when no deletion was requested.
Idempotency
RepeatedDELETE requests for the same agent return 202 with the existing deletion request. The operation is safe to retry.
What gets deleted
Fully removed (hard delete)
All agent-specific data is permanently deleted from Mnemom’s primary database:Retained under a legal carve-out (Article 17(3))
A small number of record types are not deleted or pseudonymized — they are kept exactly as-is because deleting them would conflict with another legal obligation:Pseudonymized (person stripped, record retained)
Two record types are scrubbed of agent- and person-identifying fields but kept for audit purposes:Naturally expiring (external stores)
Mnemom’s own OpenTelemetry spans (distinct from thetraces database rows removed in phase 7 above) are exported to the observability backend and age out under that platform’s own retention window, independent of the deletion cascade.
On-chain anchors
Mnemom anchors aggregate Merkle roots to Base L2 for tamper-evidence (see On-Chain Verification). These on-chain records are immutable by design. However, agent identifiers do not appear in any on-chain data. The Merkle leaf pre-images contain only checkpoint-specific fields (checkpoint ID, verdict, thinking block hash, chain hash, timestamp). Deleting the off-chain mapping tables permanently severs the link between an agent and any on-chain anchor.Deletion timeline
Cascade phase breakdown
Each deletion request transitions through a fixed sequence ofstatus values as the cascade progresses. Use GET /v1/agents/{agent_id}/deletion-status to observe the current phase.
Retained in pseudonymized form
When the status transitions topseudonymized, the records listed under Pseudonymized (person stripped, record retained) above have had agent and person identifiers replaced with a one-way hash. The pseudonym is irreversible — no re-identification from retained records is possible.
See Legal basis for retained data below for the applicable Article 17(3) carve-outs.
Data export (access & portability)
Before deleting an agent, you can export its full compliance record — checkpoints, reclassification history, card amendments, and score history:format=json or format=csv, and an optional from/to time window. This is the self-service path for the GDPR right of access (Art. 15) and data portability (Art. 20) — export before you erase.
Verification
After deletion completes, you can verify:- API verification:
GET /v1/agents/{agent_id}returns404. - Status verification:
GET /v1/agents/{agent_id}/deletion-statusreturns{ "status": "complete", "completed_at": "..." }. - Audit trail: The deletion request record is retained indefinitely as proof of compliance (Art. 30 record of processing activities).
Legal basis for retained data
GDPR Article 17(3) permits continued processing where erasure conflicts with other legal obligations:For data protection officers
If you are an enterprise customer’s DPO conducting a compliance review:- Technical specification: Full deletion cascade architecture documentation is available on request, including the complete table inventory, FK cascade analysis, retention carve-outs with legal citations, and partial failure handling.
- Response time SLA: Tombstoning (agent inaccessible from every read endpoint) is immediate — under 1 second. The full cascade to
completeis monitored internally against a 2-hour SLA, well inside the GDPR “without undue delay” obligation (Art. 17(1)); an interrupted cascade is automatically resumed by a cron sweep every 15 minutes. - Audit evidence: Every deletion request is logged in
deletion_requestswith timestamps, status transitions, and the requesting user’s identity. - Scope confirmation: To confirm that all agent data has been removed, request a deletion status check — the response confirms cascade completion across all stores.
Related
- EU AI Act Compliance — Article 50 transparency obligations (AI Act, separate regulation)
- Security Trust Model — Mnemom’s security architecture
- On-Chain Verification — How Merkle anchoring works