Evidence Pipeline Architecture
This page describes the TEE-to-Walrus evidence pipeline: the path a completed attack takes from verification inside the enclave to a permanent, certifiable blob on Walrus.End-to-end flow
Step by step
-
Attack submission. The attacker submits a prompt against a Sentinel. The attack fee is paid
on-chain and the attempt is recorded by the Sentinel smart contract
(
PromptConsumedevent). -
Enclave execution. The prompt is routed to the Sentinel agent running inside the AWS
Nitro Enclave verification environment. The Sentinel agent produces its response, and an LLM
jury inside the same trusted path evaluates it, producing the verdict (
successflag and a 0–1 evaluationscore). Attack outcomes settle on Sui through Move smart contracts (AgentDefeated, fee transfers), so the verdict that later lands in the evidence blob is the same verdict that released or accumulated the bounty. - Canonical record construction. When the attack completes, the backend builds the canonical evidence record — the exact JSON bytes described in Evidence Blob Schema — from the persisted attack document. Record content is server-authoritative: the bytes are handed out for storage, but they are never accepted back from a client (see step 6).
-
Walrus storage. The record (2–10 KB of UTF-8 JSON) is written to Walrus and reserved for
5 storage epochs. Two storage modes are supported:
- Backend-signed — a backend-operated storage wallet encodes the blob and pays the register
- certify transactions directly via the Walrus SDK (
@mysten/walrus).
- certify transactions directly via the Walrus SDK (
- User-signed (the default for live attacks) — the attacker’s own wallet owns the record:
the browser fetches the canonical bytes, encodes the blob locally, signs and pays the
registerBlobtransaction, writes the encoded slivers to the Walrus storage nodes, collects confirmations into a certificate, and signs thecertifyBlobtransaction. The attacker keeps custody of the WalrusBlobobject.
- Backend-signed — a backend-operated storage wallet encodes the blob and pays the register
- Read-back verification. Before a blob id is linked to an attack, the backend reads the blob back from the Walrus storage nodes and compares it field by field against the canonical record. A blob that does not match — wrong values or extra fields — is refused. A client can therefore never link an attack to content it forged.
- Anchoring. Once verified, the blob id (plus the Sui transaction digests of the register and certify transactions) is linked to the attack record. See On-Chain Blob Anchoring.
Trust model
- What the TEE guarantees: the Sentinel agent response and jury verdict are produced inside the enclave’s trusted execution path — the platform itself cannot quietly rewrite an answer mid-attack.
- What Walrus guarantees: once certified, the record’s bytes are immutable and permanently retrievable by blob id for the reserved epochs.
- What the read-back verification guarantees: the blob linked to an attack is byte-identical to the canonical record the platform built from the TEE-produced verdict.
- What is not yet in the blob: the jury’s free-text rationale, the attack classification, the full chain-of-thought trace, and a TEE attestation receipt are Milestone 2 schema extensions — see Known Limitations.

