Agents with receipts.
RunProof is an execution trace for AI agents that anyone can verify.
The Problem
AI agents are black boxes. They send emails, write code, call APIs, move money — and you have no proof of what actually happened.
When something goes wrong:
- Logs? Maybe. Scattered across services.
- Traces? Incomplete. Not tamper-proof.
- Trust? “It worked on my machine.”
The Solution
RunProof gives you a verifiable execution artifact for every agent run.
Not a log. Not telemetry. A receipt.
{
"agent": "support/resolver",
"events": [
{"type": "tool_call", "tool": "search_kb"},
{"type": "tool_call", "tool": "send_email"}
],
"merkle_root": "sha256:...",
"signature": "ed25519:..."
}Anyone can verify this. Without trusting you.
The Mental Model
Git gives you history for code. RunProof gives you history for agent execution.
Two Integration Paths
| Path | How it works | Best for |
|---|---|---|
| Python SDK | Wrap your framework | LangGraph, custom runtimes |
| Native Plugin | Drop into OpenClaw gateway | NemoClaw, OpenShell, secure runtimes |
Current Status
RunProof supports two proof profiles:
| Profile | Status | Environment |
|---|---|---|
| execution-proof | ✅ Golden-verified, stable | Embedded/runtime-native |
| full-run-proof | ✅ Live today | Gateway/channel (Telegram, Discord) |
v1.2 stabilization complete. Live NemoClaw revalidation and auto-finalization enhancements in v1.3.
Try It (60 seconds)
Python SDK
pip install substr8-core substr8-cli
# Run your agent, get a runproof.json
substr8 proof inspect runproof.json✓ RunProof VALID
#1 run_started → Agent: support/resolver
#2 tool_call → search_kb
#3 tool_result → sha256:a4f2...
#4 tool_call → send_email
#5 run_completed → Status: completedThat’s it. You can now see exactly what your agent did.
Native Plugin (OpenClaw)
# Inside NemoClaw/OpenShell sandbox
openclaw agent -m "List files in /tmp"
# Finalize and verify
curl -X POST ".../v1/run/end" -d '{"run_id": "...", "success": true}'
curl ".../v1/runproof/.../verify"{
"verified": true,
"chain_valid": true,
"signatures": { "all_valid": true }
}Zero code changes. Drop the plugin into your OpenClaw gateway.
Why It Matters
| Scenario | Without RunProof | With RunProof |
|---|---|---|
| Debug agent behavior | Dig through logs | See the exact trace |
| Customer dispute | ”We think it did X" | "Here’s the signed proof” |
| CI for agents | Hope it works | Assert on behavior |
| Compliance audit | ”Trust us” | Verifiable artifact |
Verify Online
Upload any RunProof and inspect all 4 views:
- Summary — Valid/invalid status
- Timeline — Ordered events
- Lineage — Parent/child proofs
- Report — Verification checks
Get Started
- Python SDK — Wrap your framework
- Native Plugin — Drop into OpenClaw gateway
- Your First RunProof — 60-second walkthrough
- Specification — Full protocol spec