Etch

Download trust report (PDF)

Compliance posture

Etch's SOC 2 Type I attestation targets Aug 2026. The controls that matter for Type I are already implemented and evidence is logged. Type II attestation follows after four quarters of Type I operation. DPA available on request: security@etch.systems.

Framework mapping

Every Article and control ID cited below is addressed by a specific mechanism in the shipped product today. The "covered by" column names the mechanism so a compliance officer can trace every claim to code.

Article / Control Requirement Covered by
EU AI Act
Art. 12Automatic recording of logs ("logs")Signed tamper-evident event log + Merkle epoch closes
Art. 13Transparency + provision of informationOffline reference verifier + public key fingerprints
Art. 14Human oversightpin_annotation MCP tool signs human notes into the chain
Art. 15Accuracy, robustness, cybersecurityHybrid Ed25519 + SLH-DSA-SHA2-128f (FIPS 205) signing
SOC 2
CC6.6Logical + physical access boundariesPer-project keys + scoped API tokens + admin scopes
CC7.2System monitoringScheduled offline verifier + attestation history
CC7.3Incident evaluationAttestation verdicts + drill-into stack trace
ISO 27001
A.12.4Logging + monitoringSigned audit chain + attestation cadence enforcement
A.14.2Secure system engineeringOSS + offline verifier + reproducible builds (roadmap)

Cryptographic primitives

External anchors

Every closed epoch is anchored to two independent public logs. Neither log is operated by Etch. Rewriting a signed epoch would require the log operator to publish evidence of the rewrite, which immediately breaks the anchor comparison.

Trust assets

Etch's guarantees are code-testable and cryptographically anchored, not marketing claims. This page links every document and mechanism an engineer, compliance officer, or investor needs to evaluate Etch's substrate end-to-end. Every claim below is verifiable, commands and file paths included.

1. Dogfooding report

Etch runs on Etch. Every push to the etch repo fires a GitHub webhook that records into Etch's own authenticated audit chain, plus every AI-coding tool call during Etch's own development. The report covers 62 hours of active production usage across two build sprints and a SWE-bench Verified benchmark run.

Read the full report

2. Adversarial suite

For every concrete attack an adversary might attempt, a code-testable property that Etch relies on to defeat it, and a test that proves the defense holds. 13 tests, all passing.

Every claim is anchored in a test. Reproduce with:

git clone https://github.com/SaravananJaichandar/etch
cd etch
PYTHONPATH=src python3 -m pytest tests/test_adversarial.py -v
# expected: 13 passed

Read the analysis

3. Compliance mapping

For a compliance or legal reviewer: how Etch's cryptographic guarantees map to specific clauses in four named frameworks.

Includes the "what compliance officers should ask us" Q&A section answering every question we've been asked to date.

Read the mapping

4. Public-key pinning + signed dump manifest

Any auditor, at any time, can independently verify Etch's authenticated audit chain without operator cooperation. Two public endpoints:

# Get the public keys (pin their fingerprints on your side)
curl https://etch.systems/projects/world-model-mcp/audit-log/public-keys

# Download the signed dump manifest
curl https://etch.systems/projects/world-model-mcp/audit-log/dump/manifest

Both endpoints are open (no auth needed) because independence from the operator is the point. The public keys are also on the OSS layer, the signature envelope embeds Ed25519 fingerprints, so an auditor can pin what they see today and detect any future key rotation.

Threat model, briefly

Etch assumes the operator (that's us) might themselves be malicious. Every attack in the adversarial suite is one an insider with full root on our storage could attempt. Etch's guarantee is that tampering leaves a trace, an external verifier can detect it without our cooperation. Etch does NOT guarantee preventing tampering (that's impossible when we have the disk). It guarantees detection.

5. Shadow Mode, model-upgrade validation

Prove a model upgrade doesn't silently change what your agent decides on production traffic. EtchShadowClient wraps two model configurations, calls both on every request (or a sampled fraction), and records per-attribute divergence.

Read the docs

6. Incident Replay, reconstruct any past moment

Given a flagged event, walk backwards through the session to see every input the agent saw and every tool it called. Download a signed forensic bundle for offline audit, verifiable against pinned public keys, no operator cooperation required.

Read the docs

7. Signed monthly statements

For every project, Etch renders a signed audit statement for any past month. Three surface forms all derive from one canonical, hybrid-signed payload:

The three formats commit to identical numbers. Every statement carries a chain-integrity check for the period, the Merkle roots of the first and last epochs it covers, and the same signature envelope used on the transparency-log head.

8. Coach-Player benchmark on SWE-bench Verified (CX.1)

The first head-to-head reproducible benchmark of an agent with vs. without Etch as the notary layer for prior decisions. This is a pilot at n=20, not a statistical claim. The flagship 100-task study (CX.2) is pre-registered below.

Setup

Result

Arm Resolved Pass rate
Baseline (agent alone) 19/20 95.0%
Treatment (agent + Etch Coach-Player) 20/20 100.0%
Delta +1 task +5.0 pp

The specific task that changed

sympy__sympy-12489 is a combinatorics.Permutation subclassing bug in SymPy. The baseline patch applied cleanly and regressed nothing (8 of 8 unrelated tests still passed), but did not fix the target test (test_Permutation_subclassing). The bug requires replacing hardcoded class references with cls across a chain of internal helper calls. This is exactly the class of subtle inheritance error where prior precedent is decisive. Treatment resolved it.

19 tasks passed in both arms. 0 regressions. Coach-Player did not break any task the baseline resolved.

Honest limits of this run

Reproduce

git clone https://github.com/SaravananJaichandar/coding-agent-memory-benchmark
cd coding-agent-memory-benchmark/scripts
python3 select_subset.py    # writes subset_50.json (SHA above)
python3 score.py --predictions baseline_predictions.json                  --run-id v0.9-baseline --model-name etch-v0.9-baseline                  --out baseline_results.jsonl
python3 score.py --predictions treatment_predictions.json                  --run-id v0.9-treatment --model-name etch-v0.9-treatment                  --out treatment_results.jsonl

What's next: CX.2 pre-registered

The 100-task flagship benchmark is frozen and pre-registered before the run:

Full results and paper materials will land here on completion.

Ready to try it?

Sign up for a pilot   10-minute quickstart