Agent payout intent: invoice-042
local-demo
0xa9cabb066060a15f073d619b6570f6c7cbf75b5255a955ab053297b7cbde791d0xdd7634577227cb76521993f968a38f3fca5f581a579c94b49cdff45be3186edeOpenClaw skill demo
A normal OpenClaw prompt asks the installed ReplayFence skill to guard one payout action, reject the duplicate replay, and return a capsule another user can verify.
OpenClaw reads the installed ReplayFence SKILL.md before running the commands.
CONSUMED
REPLAY_REJECTED
VERIFIED
The recorder spawns the real TUI, types this request into the input line, and submits it with Enter.
Can you use ReplayFence to protect a payout for me? Run it once, try the exact same payout again, verify the proof capsule, and tell me whether the duplicate was blocked. Please include the capsule path and finish with: ReplayFence check complete.
~/.openclaw/workspace/skills/replayfence/SKILL.md
SKILL_DIR="$HOME/.openclaw/workspace/skills/replayfence" OUT_DIR="$HOME/openclaw-test" mkdir -p "$OUT_DIR" node "$SKILL_DIR/scripts/replayfence.mjs" demo --reset --format pretty --out "$OUT_DIR/replayfence-capsule.json"
SKILL_DIR="$HOME/.openclaw/workspace/skills/replayfence" CAPSULE="$HOME/openclaw-test/replayfence-capsule.json" node "$SKILL_DIR/scripts/replayfence.mjs" verify --capsule "$CAPSULE" --format pretty
/Users/rick/openclaw-test/replayfence-capsule.json
local-demo
0xa9cabb066060a15f073d619b6570f6c7cbf75b5255a955ab053297b7cbde791d0xdd7634577227cb76521993f968a38f3fca5f581a579c94b49cdff45be3186ededemo/openclaw-tui-interactive.typescript
.hunter/openclaw-tui-interactive.report.json
capsule_f17b29a188bd7390
Done. Here's what happened: **Protected action:** Agent payout intent: `invoice-042` (via `demoTreasury.requestPayout`) **Results:** - **First attempt:** `CONSUMED` — payout accepted on first run - **Replay attempt:** `REPLAY_REJECTED` — duplicate blocked because the same latch key was already consumed - **Verifier result:** `VERIFIED` — all three capsule checks passed (canonical hash match, latch key match, replay rejected) **Capsule path:** `/Users/rick/openclaw-test/replayfence-capsule.json` **Important note:** This run was `local-demo` mode only — it's deterministic replay-fencing evidence, not live Pharos transaction proof. To get on-chain proof, you'd need `PHAROS_RPC_URL`, `PRIVATE_KEY`, and `ONCE_LATCH_REGISTRY_ADDRESS` configured and would pass `--pharos-report` to record the live tx. The duplicate payout was blocked. ReplayFence check complete.
ReplayFence OpenClaw Skill Demo Mode: local-demo Purpose: prove a normal installed skill can canonicalize one agent action, consume it once, reject the exact replay, and export a capsule. 1. Canonicalize action label: Agent payout intent: invoice-042 tool: demoTreasury.requestPayout actor scope: openclaw-guest-demo volatile fields stripped: timestamp canonical SHA-256: 0xdd7634577227cb76521993f968a38f3fca5f581a579c94b49cdff45be3186ede 2. Derive latch chain id: 688689 registry: 0x000000000000000000000000000000000000f3ce latch key: 0xa9cabb066060a15f073d619b6570f6c7cbf75b5255a955ab053297b7cbde791d 3. Execute twice first attempt: CONSUMED replay attempt: REPLAY_REJECTED replay reason: same latch key already consumed 4. Export capsule capsule id: capsule_f17b29a188bd7390 capsule path: /Users/rick/Documents/Project/Hackathon/Pharos/demo/openclaw-tui-replayfence-capsule.json verifier hint: node scripts/replayfence.mjs verify --capsule /Users/rick/Documents/Project/Hackathon/Pharos/demo/openclaw-tui-replayfence-capsule.json --format pretty Live Pharos evidence attached report: /Users/rick/Documents/Project/Hackathon/Pharos/demo/pharos-consume-report.json status: CONSUMED_AND_REPLAY_REJECTED registry: 0xf3cb65898bc692495c64e2fa3981acbab2770a73 first consume tx: 0x7dcfe6f8...cc74941d replay tx: 0xf428dbdf...bbdabe6d replay status: REPLAY_REJECTED decoded error: ReplayFenceReplay Honesty boundary This run is local-demo evidence. Only an attached Pharos report or live Pharos command proves chain state. Installing to /Users/rick/.openclaw/workspace/skills/replayfence… Installed replayfence from path -> /Users/rick/.openclaw/workspace/skills/replayfence replayfence ✓ Ready Use ReplayFence to fence duplicate agent actions, derive stable action hashes and latch keys, run an OpenClaw-installable exactly-once demo, create ReplayFence Capsules, and verify whether a replay was rejected. Use when an agent needs a reusable Pharos/OpenClaw action replay guard or proof capsule workflow. Details: Source: openclaw-workspace Path: ~/.openclaw/workspace/skills/replayfence/SKILL.md Visible to model: yes Available as command: yes Tip: use `openclaw skills search`, `openclaw skills install`, and `openclaw skills update` for ClawHub-backed skills. ReplayFence OpenClaw Skill Demo Mode: local-demo Purpose: prove a normal installed skill can canonicalize one agent action, consume it once, reject the exact replay, and export a capsule. 1. Canonicalize action label: Agent payout intent: invoice-042 tool: demoTreasury.requestPayout actor scope: openclaw-guest-demo volatile fields stripped: timestamp canonical SHA-256: 0xdd7634577227cb76521993f968a38f3fca5f581a579c94b49cdff45be3186ede 2. Derive latch chain id: 688689 registry: 0x000000000000000000000000000000000000f3ce latch key: 0xa9cabb066060a15f073d619b6570f6c7cbf75b5255a955ab053297b7cbde791d 3. Execute twice first attempt: CONSUMED replay attempt: REPLAY_REJECTED replay reason: same latch key already consumed 4. Export capsule capsule id: capsule_fcfb807cd480ae16 capsule path: /Users/rick/Documents/Project/Hackathon/Pharos/demo/replayfence-capsule.json verifier hint: node scripts/replayfence.mjs verify --capsule /Users/rick/Documents/Project/Hackathon/Pharos/demo/replayfence-capsule.json --format pretty Live Pharos evidence attached report: /Users/rick/Documents/Project/Hackathon/Pharos/demo/pharos-consume-report.json status: CONSUMED_AND_REPLAY_REJECTED registry: 0xf3cb65898bc692495c64e2fa3981acbab2770a73 first consume tx: 0x7dcfe6f8...cc74941d replay tx: 0xf428dbdf...bbdabe6d replay status: REPLAY_REJECTED decoded error: ReplayFenceReplay Honesty boundary This run is local-demo evidence. Only an attached Pharos report or live Pharos command proves chain state.
set -a; source "$HOME/use_key.txt" >/dev/null 2>&1; set +a npx --yes openclaw --no-color tui --local --session replayfence-tui-interactive-... --timeout-ms 600000 npx --yes openclaw skills install ./skills/replayfence --as replayfence --force npx --yes openclaw skills info replayfence node ~/.openclaw/workspace/skills/replayfence/scripts/replayfence.mjs demo --reset --format pretty --out demo/openclaw-tui-replayfence-capsule.json --transcript demo/openclaw-tui-skill-showcase.out --json-out demo/openclaw-tui-demo-output.json --pharos-report demo/pharos-consume-report.json node ~/.openclaw/workspace/skills/replayfence/scripts/replayfence.mjs verify --capsule demo/openclaw-tui-replayfence-capsule.json --format pretty --json-out demo/openclaw-tui-verify-output.json