TunnelMind Compliance Ledger v1
A tamper-evident, customer-configurable record of agent decisions · Ed25519 + RFC 8785 JCS + SHA-256
Every time an agent asks TunnelMind to verify a destination
(/v1/verify, /v1/explain, /v1/preflight,
/v1/profile) it receives a signed
Receipt. The Compliance Ledger
retains those decisions as a per-customer, append-only, hash-chained
log, and lets you export them — mapped to your regulatory regime, signed, and
independently verifiable — as the evidentiary record a regulation like the
EU AI Act, DORA, or NYDFS Part 500 requires. self-serve
You configure it. Pick your regime, your retention period, and your export formats — no bespoke engineering, no sales call. The format your auditor wants is a setting, not a feature request.
1 · Configure (your knob)
PUT /v1/compliance/profile (Authorization: Bearer <key>)
{ "enabled": true,
"regime": "ai_act_art12",
"retention_days": 365,
"export_formats": ["signed_json","csv","eat"] }
GET /v1/compliance/profile returns your config plus the catalog
of supported regimes and formats. Anonymous callers get no ledger — it is an
authenticated, opt-in record.
2 · The ledger entry & the chain
Each enabled verdict appends one entry with a per-customer monotonic
seq. Tamper-evidence comes from a hash chain: every entry binds
the content hash of its decision and the previous entry's hash.
record_hash = "0x" + sha256( JCS(decision_record) )
entry_hash = "0x" + sha256( JCS({
seq, customer_id, receipt_id, endpoint, node, verdict,
trust_score, confidence, decided_at, record_hash, prev_hash
}) )
prev_hash = entry_hash of (seq - 1), or "0x0" at genesis
Altering or deleting any entry changes its entry_hash, which
breaks prev_hash linkage for every entry after it. The chain is
the proof.
3 · Signed checkpoints
Periodically (and on every export) TunnelMind signs the current chain head
with the receipt signing key
(Ed25519): {customer_id, seq_high, entry_count, chain_head_hash, signed_at}.
A checkpoint is a portable proof that your ledger held N entries with
head H at time T — so even TunnelMind cannot rewrite history
before a checkpoint without detection.
4 · Regimes
The chosen regime maps each entry to your auditor's field names and citation. Extensible — adding a regime is one mapping entry.
| id | maps to |
|---|---|
ai_act_art12 | EU AI Act — Reg. (EU) 2024/1689 Art. 12 (automatic logging) |
dora_art11 | EU DORA — Reg. (EU) 2022/2554 Art. 11 (ICT response records) |
nydfs_500 | NYDFS Part 500 — 23 NYCRR 500.06 (audit trail) |
hipaa | HIPAA Security Rule — 45 CFR 164.312(b) |
pci_dss | PCI DSS v4.0 — Requirement 10 |
soc2 | SOC 2 — AICPA TSC CC7.2 |
generic | raw tamper-evident record (no regime mapping) |
5 · Export
POST /v1/compliance/export?format=csv®ime=ai_act_art12&from=&to=
| format | artifact |
|---|---|
signed_json | the whole bundle wrapped as a TunnelMind Receipt (Ed25519) |
csv | one row per decision, columns = the regime's field labels |
eat | EAT profile token — EdDSA JWS, typ: eat+jwt |
stix | STIX 2.1 bundle (custom compliance objects) |
Every export carries a manifest: the time window, entry count,
first_seq/last_seq, the live chain-integrity result,
and the latest signed checkpoint.
6 · Verify it yourself
An auditor can confirm an export is authentic and complete without trusting us:
- For each record, recompute
record_hashandentry_hashfrom the formulas in §2 and confirm they match. - Confirm each entry's
prev_hashequals the prior entry'sentry_hash, andseqincrements by 1 with no gaps. - Verify the manifest's signed
checkpointsignature against the published receipt key, and confirm itschain_head_hashequals the last entry'sentry_hash(for records up toseq_high). - Or simply call
GET /v1/compliance/verify— TunnelMind recomputes the whole chain and returns{ intact, entry_count, chain_head_hash }, or{ reason, first_break_seq }if any record was altered or removed.
Tombstoned entries (content purged after your retention window) keep their
record_hash and chain hashes, so the proof that a decision
occurred survives even after its detail is minimised away.
Substrate: Receipt Format v1.0 · Key bundle: /.well-known/receipt-signing-key.json
Endpoints:
data.tunnelmind.ai/v1/compliance/{profile,ledger,export,verify} ·
also on the MCP surface.Standards hub: /standards.