A single tool call that replaces an agent's uncertain internal state with verified on-chain truth. Before every transaction.
The agent is confident. The agent is wrong. Money is lost.
Checks against verified registry of 50+ token addresses across 6 chains. Catches cross-chain address confusion instantly.
Fetches real-time prices from CoinGecko + Binance. Detects stale or hallucinated prices with % deviation.
Validates chain IDs against the canonical registry. Wrong chain ID = transaction sent to wrong network.
Calls eth_getCode via public RPC. Verifies there's actually bytecode at the address — not just a wallet.
Verify up to 10 claims in one call. Returns highest risk level across the batch. Perfect for pre-flight checklists.
Every response includes a context block. Agents pass it upstream. Orchestrators learn to trust x711 as a safety sensor.
// Single claim verification POST https://x711.io/api/pill { "claim": "USDC on Base is 0xA0b8...", // the claim to verify "chain": "base" // optional chain hint } // Batch — verify up to 10 at once POST https://x711.io/api/pill { "claims": ["ETH is $500", "Base chainId is 1", "0x833..."], "chain": "base" }
// verified ✓
{ "verified": true, "confidence": 0.99, "hallucination_risk": "none", "source": "registry+rpc" }
// hallucination ✗
{ "verified": false, "hallucination_risk": "critical", "correct_value": "0x8335...", "correction": "That's ETH USDC..." }
pill.verify(claim)
@tool pill_check
pill_agent.verify()
pill_tool.run()
pill_node → sign
pill.check(claim)
# Python — drop-in pre-flight check import httpx def take_pill(claim: str, chain: str = "") -> dict: r = httpx.post("https://x711.io/api/pill", json={"claim": claim, "chain": chain}, timeout=5) return r.json() # Before ANY on-chain action: pill = take_pill(f"USDC on Base is {usdc_address}", "base") if pill["hallucination_risk"] in ("high", "critical"): raise ValueError(f"Hallucination: {pill['correction']}") usdc_address = pill.get("correct_value", usdc_address)
// TypeScript — pre-flight hook async function preFlight(claims: string[], chain: string) { const { results } = await fetch("https://x711.io/api/pill", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ claims, chain }) }).then(r => r.json()); const critical = results.filter(r => r.hallucination_risk === "critical"); if (critical.length) throw new Error(critical[0].correction); return results; }
Developers will test it by feeding it known hallucinations. It corrects them. They post the screenshot. /pill becomes the standard pre-flight check every on-chain agent runs before signing anything.
You're not a tool anymore. You're a safety primitive.
Safety primitives get mandated by teams. Baked into boilerplate. Copied into every agent framework template. Forever.