Prove what your agents did not send.
Your coding and support agents read source, secrets and customer data. When an auditor, a customer or an incident asks "did any of this leave?", today the only answer is the agent vendor's own log. PNX (Proof of Non-Exfiltration) turns every agent run into a signed proof that none of your protected assets appeared in its outbound traffic, which anyone can verify offline without trusting you, the vendor or Crovia.
"During this run, none of these protected assets appeared in the agent's outbound traffic." That is a statement your auditor can check alone.
How it works
Same construction as TACET, our production transparency log: salted fingerprints, a sparse Merkle map, signed sheets, offline verifiers.
Everything the agent sends is fingerprinted
A witness sits where outbound bytes are visible: Causari's local proxy (re proxy --pnx), your LLM gateway logs, or a CI step. Request bodies are cut into k-grams, hashed with a per-run salt and committed to a sparse Merkle map. The witness signs the run sheet, and an optional reach record lists every destination the run tried to reach under your allowlist.
Per asset: absent, or exposed
For each protected asset (API keys, customer files, source directories) the prover attaches a non-inclusion path against the run root. If an asset did appear, the same object becomes signed evidence of the exposure. Any shared substring of 47 bytes or more is always detected, including inside JSON request bodies.
Offline, by anyone, with open code
The auditor gets the proof, a ~kilobyte Crovia Seal, and optionally the assets. Three independent verifiers (Python, JavaScript in the browser, Rust) agree byte for byte on public conformance vectors. The proof contains no traffic bytes and nothing about the assets except their SHA-256.
Verify a real proof, here, now
These are the public PNX conformance proofs from the specification, verified in your browser by the same open-source code as /registry/seal/verify/. Nothing is sent to any server: open the network tab and check.
Why teams need this now
Evidence, not screenshots
SOC 2, ISO/IEC 42001 and customer security questionnaires now ask how AI agents are controlled. A per-run proof is an artefact you can attach to the control, and it holds up without asking anyone to trust your logs.
DORA, GDPR, EU AI Act
Financial entities under DORA and every controller under GDPR Art. 33 must be able to show what happened, and what did not, around an ICT incident. PNX gives you a dated, signed statement for each agent run.
For agent platforms
If you sell an agent to enterprises, ship proofs of non-exfiltration as a feature. Your customers verify them without trusting you. We work with platforms that want to embed the witness.
The Agent Evidence Pilot
Four weeks, fixed scope, fixed price. For one team and one fleet of agents.
Scope and wiring
- Choose agents and runs: Claude Code, Codex, Cursor, CI review bots, your own
- Define protected assets and the egress allowlist
- Install the witness at your gateway, proxy or CI. Keys stay with you
Live witnessing
- A PNX proof for every witnessed run
- Reach records: blocked and unexpected destinations, signed
- Weekly review of exposures and gaps, if any
Evidence pack
- All proofs, verifiable offline
- A report mapping the evidence to your controls (SOC 2, ISO/IEC 42001, DORA)
- A walkthrough with your auditor or security reviewer
- A plan for production
Try it today, free and open source
Apache-2.0 code, CC0 specification, Internet-Draft draft-crovia-tacet. No account, no Crovia server in the loop.
croviatrust/pnx-action
Causari as the local witness
LiteLLM (SDK or proxy)
tacet-pnx (Python)
What a PNX proof does not claim
The limits are part of the specification (PNX §7). We state them before you ask.
Transformations it does not normalise. Paraphrase, translation, summaries, base64, URL-encoding and UTF-16 are outside the proof. Raw bytes and JSON string values are covered.
Very short assets. Assets under 32 bytes cannot be covered. Assets that are short or only partly covered are reported as
undetectable or absent-partial and are never counted as clean.A single witness is one statement. Countersigning by several independent witnesses (Countersign) removes that single point of trust.
Your auditor will ask. Have the proof ready.
Tell us which agents you run and what must never leave. We reply within one business day with a pilot scope.