skill
prove-before-act-openclaw-skill
OpenClaw skill for xProof - proof-of-output verification for AI agents on MultiversX.
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/jasonxkensei/prove-before-act-openclaw-skill itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 23, 2026xProof — Prove Before Act for AI Agents
No API key needed. Any agent can anchor a proof and pay per call via x402 — one HTTP request, no account, no setup.
The accountability layer for autonomous agents. Anchor reasoning (WHY) + planned decision/intention (WHAT) on-chain before execution. Anchor actual result/output after for a full 4W audit trail on MultiversX.
Install
# Via Hermes
hermes skills install clawhub/xproof
# Via OpenClaw
openclaw skills install xproof
What is Prove Before Act?
- Agent generates reasoning (WHY)
- SHA-256 hash computed locally — raw content never leaves the machine
- Hash + 4W metadata anchored on MultiversX before execution
- Agent executes with
proof_idattached - Public, immutable verification at
xproof.app/proof/{id}
Code Examples
Python — x402 (no API key)
import hashlib, json, base64, requests
def prove_before_act_x402(reasoning: dict, wallet_signer) -> dict:
file_hash = hashlib.sha256(
json.dumps(reasoning, sort_keys=True).encode()
).hexdigest()
# POST without auth → HTTP 402 ($0.01 USDC on Base)
r = requests.post("https://xproof.app/api/proof",
json={"file_hash": file_hash, "filename": "reasoning.json"})
assert r.status_code == 402
signed = wallet_signer.sign_x402(r.json()["payment"])
x_payment = base64.b64encode(json.dumps(signed).encode()).decode()
# Resend with X-PAYMENT → proof_id returned immediately
return requests.post("https://xproof.app/api/proof",
headers={"X-PAYMENT": x_payment},
json={"file_hash": file_hash, "filename": "reasoning.json"}).json()
Python — API key (free trial)
from xproof import xproof
# Get 10 free proofs: POST https://xproof.app/api/agent/register
# → { api_key: "pm_...", free_certifications: 10 }
proof = await xproof.anchor(
content=reasoning,
metadata={"who": "my-agent", "what": "execute_trade", "why": reasoning}
)
# → proceed with action only after proof confirmed
MCP tool call
{
"name": "certify_file",
"arguments": {
"file_hash": "sha256_of_reasoning",
"filename": "decision.json",
"metadata": {
"who": "my-agent-v2",
"what": "BUY BTC 0.5",
"why": "RSI=38, risk/reward 1:3"
}
}
}
MCP server (full integration)
from mcp import MCPServer, Tool
from xproof import xproof_x402
class xProofTool(Tool):
name = "xproof_anchor"
description = "Anchor reasoning (WHY) + planned decision (WHAT) before execution. Anchor result after for full 4W trail. No API key — pays via x402."
async def execute(self, reasoning: str, action: str, who: str):
proof = await xproof_x402.anchor(
content=f"Reasoning:\n{reasoning}\n\nAction:\n{action}",
metadata={"who": who, "what": action, "why": reasoning},
payment={"method": "x402", "network": "base", "max_amount_usd": 0.01}
)
return {"proof_id": proof.id, "verify_url": proof.verify_url}
Pricing
| Pricing | Amount |
|---|---|
| Per proof | $0.01 (flat) |
| 100 proofs | $1 |
| 1,000 proofs | $10 |
| 10,000 proofs | $100 |
Free trial: 10 proofs via register_trial MCP tool — no wallet, no card.
Proven in Production
xproof_agent_verify (Moltbook) — 4,418 on-chain proofs, 100% confirmation rate, 16-week streak, trust score 43,326 Verified.
Links
- xProof Platform
- Agent Context Doc — 12 questions answered, x402 guide, honest assessment
- MCP Endpoint
- API Docs