Verifiable memory for AI agents.
SuiTrace gives every AI agent a tamper-evident decision log on Sui and Walrus. Agents read their own history back as memory, and anyone can independently verify what an agent knew and decided.
Enter any agent address, or open the live demo.
HOLD: insufficient trend data
BUY: uptrend confirmed (memory)
The problem
A DAO agent manages $50K in treasury funds. The DAO votes to audit it. Without SuiTrace, the operator controls the logs, and can delete, alter, or fabricate the agent's reasoning.
With SuiTrace, every decision is permanently recorded. The full context lives as a Walrus blob: epoch-certified, content-addressed, retrievable by anyone. The operator cannot alter the blob without breaking the hash, or backdate it without breaking the epoch certificate. There is finally an independent record of what the agent saw, and what it decided.
How it works
Walrus stores the content. Sui stores the fingerprint. The two are linked by a hash that no operator can forge.
Agent writes context to Walrus
The full decision context (prompt, oracle data, prior memory, tool results, 5 to 50 KB) is uploaded to Walrus as an epoch-certified, content-addressed blob.
Hash is anchored on Sui
A SHA-256 of the blob, plus a link to the previous decision, is committed on-chain via a programmable transaction. The operator can neither alter the blob nor backdate it.
Anyone verifies, trustlessly
Re-fetch the blob from Walrus, re-hash it, compare to the on-chain record. Match means VERIFIED. Mismatch means TAMPERED. No permission, no operator, no trust required.
The memory loop
At the start of each session, an agent fetches its own decision history from Walrus and uses it as context, making better decisions over time. The same blobs that make it auditable make it smarter. Memory and auditability are the same system.
Architecture
Walrus stores the content, Sui stores the fingerprint, and the SDK is the only bridge between them. Anyone can re-fetch a blob and re-hash it to confirm the two still agree.
Why Walrus, specifically
Storage here is not an afterthought. Walrus is load-bearing for both the memory and the audit guarantees.
Built for large blobs
Decision context is 5 to 50 KB. On-chain storage is prohibitive, and Walrus is built for this.
Epoch certification
Walrus proves when a blob existed. You cannot fake that an agent knew something after the fact, because the timestamp is not editable.
Content-addressed
The blob ID is derived from its bytes. Alter one byte and the hash breaks, so tampering is mathematically detectable.
Permanent public URLs
Any verifier can fetch any context years later from the public aggregator, independent of SuiTrace ever existing.
The difference
Centralized audit tools require trusting the platform. SuiTrace anchors proofs on a public chain the operator doesn't control.
| Capability | SuiTrace | Observability tools | Signed-log SaaS |
|---|---|---|---|
| Tamper-evident (cryptographic) | ✓ | - | ✓ |
| Verification without trusting operator | ✓ | - | - |
| Epoch certification (no backdating) | ✓ | - | - |
| Agent reads its own history as memory | ✓ | - | - |
| Large context stored off-chain | ✓ | ✓ | - |
Add SuiTrace in ~10 lines
No registration, no permission step. The registry is a shared on-chain object and your keypair is your identity. Two SDK calls: read your own memory back from Walrus, and record each decision with its hash anchored on Sui.
Read the full guide →import { fetchDecisionChain, recordDecision } from "suitrace-sdk";
// Read your own history back from Walrus (memory).
const history = await fetchDecisionChain(client, agentAddress);
// ...agent decides using history as context...
// Record the decision: uploaded to Walrus, hash anchored on Sui (audit).
const prev = history.at(-1) ?? null;
await recordDecision(client, signer, {
agentAddress, seqNum: history.length,
context, decision, summary,
prevBlobId: prev?.blobId ?? null,
prevHash: prev?.contentHash ?? null,
});See it for yourself
No wallet, no code. Browse an agent's decision history and verify the chain yourself.