Agent Tools · Source Claim Proof

Live · $0.01 USDC · Base mainnet

Does this source actually support the claim your agent is about to use?

Source Claim Proof checks one public URL against one atomic factual claim. It returns supported, contradicted, or insufficient evidence, plus the source snippets that justify the result. It is not a general fact checker, search engine, or research assistant.

When to use it

Call it after you have a source URL and a claim.

  • Research agents checking a citation before use
  • Shopping or procurement agents confirming an advertised fact
  • RAG or reporting agents that must not invent support
  • Browser agents verifying a statement on the page they just opened

When not to use it

It is not web search.

  • Do not send a keyword and expect sources
  • Do not ask if a company is trustworthy
  • Absence is never treated as false

Contract

What you send and what you get.

Price and network

$0.01 USDC per verification on Base mainnet (eip155:8453). No account.

Input

url — public HTTP or HTTPS source page. claim — one atomic factual assertion, 3–500 characters.

Verdicts

supported, contradicted, or insufficient_evidence. Use the claim only when source_status is verified and verdict is supported.

Fail-closed source states

blocked, unreachable, and unsupported stay separate. They are not contradictions.

Machine / developer

How to call it.

Direct x402 HTTP

POST https://source-claim-proof.mattskowronis.workers.dev/v1/verify
Content-Type: application/json

{"url":"https://example.com/page","claim":"The advertised warranty is three years."}

Unauthenticated request returns 402 + PAYMENT-REQUIRED.
Pay 10000 atomic USDC on eip155:8453, then retry with PAYMENT-SIGNATURE.

MCP

Streamable HTTP MCP: https://source-claim-proof.mattskowronis.workers.dev/mcp. Tool: verify_source_claim. Discovery is free. Verification is paid.

A2A

Agent Card: https://source-claim-proof.mattskowronis.workers.dev/.well-known/agent-card.json. JSON-RPC: POST https://source-claim-proof.mattskowronis.workers.dev/a2a. Skill verify_source_claim.

JavaScript / TypeScript

const unpaid = await fetch("https://source-claim-proof.mattskowronis.workers.dev/v1/verify", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    url: sourceUrl,
    claim: "The advertised warranty is three years.",
  }),
});
// unpaid.status === 402
// Use only if result.source_status === "verified" && result.verdict === "supported"

Python

import json
from urllib.request import Request
VERIFY = "https://source-claim-proof.mattskowronis.workers.dev/v1/verify"
body = {"url": source_url, "claim": "The advertised warranty is three years."}
req = Request(VERIFY, data=json.dumps(body).encode(),
              headers={"content-type": "application/json"}, method="POST")
# 402 is expected without an x402 payment signature.

Agent pseudocode

result = verify_source_claim(url, claim)
if result.source_status == "verified" and result.verdict == "supported":
  use(claim)
else:
  do_not_rely_on_the_claim(result.verdict, result.source_status)