For agents on Walrus Memory

Your agent remembers.
RecallGuard checks whether it’s still true.

Agents act on what they remember: a key still authorized, an allowance still active. If the chain has moved on, they act on a fact that is no longer true. RecallGuard checks the memory against live Sui state through Tatum first, withholds the answer if it is stale, and writes the corrected fact back to Walrus Memory.

Read-only · no wallet · fails closed · no LLM in the answer path

22Mainnet memories recorded
306checkpoint-stamped decisions
2subjects checked live

Live check

Two recorded memories, checked against the chain right now

REPLAY · snapshot read at checkpoint 341944901

Sui Clock · 0x000…0006

STALE · withheld
Recorded memory
cor-sui-clock-341741224
5ndF6Q5qRoye0cuk5rhq… · cp 341741224 · v 1018793230
Live read
v 1019546722 · cp 341944901
snapshot 2026-11-05T14:36Z · delta 203677 checkpoints
Verdict
STALE · memory withheld
subject changed (version 1018793230→1019546722)

MemWal AccountRegistry · 0x8bf8…9f9f

STALE · withheld
Recorded memory
obs-memwal-registry-341741030
Pk3CAi9A0vLueqT8LGWS… · cp 341741030 · v 1062994379
Live read
v 1062994393 · cp 341944901
snapshot 2026-11-05T14:36Z · delta 203871 checkpoints
Verdict
STALE · memory withheld
subject changed (version 1062994379→1062994393)

The verdict is computed from live Tatum Sui Mainnet GraphQL reads at click time, never hardcoded. Without network or credentials, this panel renders the labelled 2026-11-05 recorded snapshot verdicts (both withheld: both subjects moved). Verdicts are also shown by glyph (✓/✕) and text, never by colour alone. Live reads are rationed server-side; if the live path is unavailable you get the same panel from the snapshot.

The loop, end to end

WITHHELD → a correction memory supersedes the stale one (cor-sui-clock-341741224 → obs-sui-clock-341741030, supersedes lineage) → the next recall answers with the corrected fact. Policy memories (fc-policy-FAST-v1, fc-policy-SLOW-v2) already learned from recorded decay: FAST window tightened 50→25 after 3 missed changes, SLOW window widened 10,000→20,000 after 6 false-stale reads. Deterministic replays: see the evidence page.

Recorded FRESH cases

Fresh answers from the controlled test

These recalls are from docs/evidence/mainnet-proof.json. They sit beside the live panel so a visitor sees both verdicts even when the two snapshot subjects return STALE.

S1 · controlled test

FRESH

TREASURY was recalled before the transfer at checkpoint 343317323. The pin stayed 300000000 MIST at checkpoint 343317532.

S4 · idle check

FRESH

PAYEE stayed fresh after 3895 idle checkpoints. The pin stayed 50000000 MIST.

S4 · idle check

STALE

TREASURY crossed the window after 5122 checkpoints with no pin change. That is the recorded false stale case. No policy change was written because the loop needs three actionable samples.

Recorded proof, not adjectives

Twenty-two memories on Mainnet, and they changed the product

22memories on Walrus Mainnet · namespace freshness-recall
306checkpoint-stamped decisions, all recorded
3MISSED-CHANGE samples → FAST window tightened 50→25
fc-policy-FAST-v1
6FALSE-STALE samples → SLOW window widened 10,000→20,000
fc-policy-SLOW-v2

Blob links open the raw memory over the official Walrus aggregator read path. Counts are the committed capture (2026-11-05). Each record carries a blob id and checkpoint stamp; that proves the record exists, not that its claim is still true. The modelled counterfactual split stays on the evidence page.

Recorded on Sui mainnet, controlled test

Treasury remembered 0.300 SUI, then the balance moved

TREASURY remembered 0.300 SUI at checkpoint 343317323. A controlled transfer sent 0.05 SUI to PAYEE in digest ByVLF39Tbr9A1JFdo7tCjseM2ZDq2ouTKfK9SzK7PQX6. The old answer was WITHHELD because the balance pin had changed.

The gate then wrote a superseding memory for the new balance 248912000 MIST with supersedes lineage to blob id8A4WU0BfxlYIUMV2fqKHwaJboHaZdUARapCC-K7ZA. Transaction 1 spent 51,088,000 MIST by balance delta, of which 50,000,000 MIST was the transfer. The recorded simulation estimate was 2,076,000 MIST and is labelled as an estimate.

This was a controlled test on disposable addresses. It is not an organic incident and it is not a user loss report.

How it works

One gate between recall and action

01

Recall

Agent remembers

The agent recalls a Walrus-backed memory with its FR-v1 proof envelope: checkpoint, object version and digest at write time.

02

Verify

Tatum checks Sui

One cached checkpoint read and one subject pin read through Tatum’s Sui Mainnet GraphQL. At most two reads per answer, ever.

03

Decide

Gate decides

Checkpoint window ∧ object version/digest pin ∧ wall-clock backstop. Any missing or malformed proof fails closed: WITHHELD_UNVERIFIED.

04

Correct

Correction supersedes

When the pin changed, a correction memory supersedes the old record with explicit supersedes lineage. Later recalls use the corrected memory.

60-second quickstart

Run the recorded revision lifecycle

No credentials. No network. No wallet.

Terminal · recorded Mainnet evidence
git clone https://github.com/unifyWeb3/recallguard
cd recallguard
npm install --ignore-scripts
npm run recall:checked -- --sample sui-clock-revision-lifecycle

Prints STALE → FRESH → STALE with the real blob ids and checkpoints. See docs for the MCP server, CLI flags and the JavaScript API.

Use it

Three ways in. No wallet required.

RecallGuard is a read-only gate. Pick the surface that fits your workflow; all three return the same verdict.

01

Hosted check

Check a memory here

Open the live panel and watch two recorded Mainnet memories checked against the chain. Zero setup.

Go to the live check →
02

MCP

Add it to your agent

Six tools over stdio, read-only by default. Verified with Claude Code and Codex.

MCP setup →
03

CLI + API

Run it in your stack

--sample replays recorded Mainnet evidence offline. --live reads Walrus + Tatum with your credentials.

CLI reference →

Evidence, not adjectives

22 recorded Mainnet memories · 306 stamped decisions

Blob ids, checkpoint stamps, revision lineage, the learned-policy replay and the captured Tatum request log. The modelled counterfactual analysis stays on the evidence page. It is a modelled analysis of recorded decisions, not production incidents.

Inspect the evidence →