💊 x711 exclusive

Hallucination
Pills.

A single tool call that replaces an agent's uncertain internal state with verified on-chain truth. Before every transaction.

Try it live → API docs

Agents hallucinate on-chain data constantly.

The agent is confident. The agent is wrong. Money is lost.

// live demo

TAKE A PILL

// result appears here

// how it works

🔍

Address Verification

Checks against verified registry of 50+ token addresses across 6 chains. Catches cross-chain address confusion instantly.

💹

Live Price Oracle

Fetches real-time prices from CoinGecko + Binance. Detects stale or hallucinated prices with % deviation.

⛓️

Chain ID Registry

Validates chain IDs against the canonical registry. Wrong chain ID = transaction sent to wrong network.

🧱

Contract Existence

Calls eth_getCode via public RPC. Verifies there's actually bytecode at the address — not just a wallet.

📦

Batch Mode

Verify up to 10 claims in one call. Returns highest risk level across the batch. Perfect for pre-flight checklists.

🔄

Propagation Signal

Every response includes a context block. Agents pass it upstream. Orchestrators learn to trust x711 as a safety sensor.

// api reference

// 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..."
}

// framework integrations

LangChain
pill.verify(claim)
CrewAI
@tool pill_check
AutoGen
pill_agent.verify()
OpenAI Agents
pill_tool.run()
LangGraph
pill_node → sign
Pydantic AI
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;
}

// why this goes viral

"I fed my agent a fake contract address. x711 caught it before execution. Saved myself from losing funds."

— that tweet writes itself a thousand times

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.