79trust / 100

Check

by Settled in Security & trust

x402 APIPassing, checked 26 min ago

Signed check of an x402 endpoint before you pay it: who really pays it on Base (settlements and unique payers over 30 days), a fresh unpaid probe (cached ≤5 min) with status, latency and the parsed quote, payability, paying agents' reports, the seller's claim, the scout's last real purchase (settlement transaction and whether it matched the listing), a quality score and risk flags. Free up to 300 calls a day per client at /v1/free/check.

GET https://settled.tools/v1/check

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
702 ms typical, 912 ms slowest 5%
Last check
26 min ago
Next check
in 7 min

How to call it

# See the payment challenge (nothing is charged)
curl -i -X GET "https://settled.tools/v1/check?url=https%3A%2F%2Fapi.example.com%2Fsearch"
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fsettled.tools%2Fv1%2Fcheck
const res = await pay("https://settled.tools/v1/check?url=https%3A%2F%2Fapi.example.com%2Fsearch");
console.log(await res.json());

Example input

{
  "url": "https://api.example.com/search"
}

Example output

{
  "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "cached": false,
  "checked_at": "2026-09-25T15:10:00.000Z",
  "delivery_verified": true,
  "flags": [],
  "http_status_last": 402,
  "last_delivery_at": "2026-09-24T09:00:00.000Z",
  "last_ok_at": "2026-09-25T15:10:00.000Z",
  "latency_ms": 412,
  "network": "eip155:8453",
  "ok_count": 14,
  "onchain": {
    "last_settlement_at": "2026-09-25T14:02:00.000Z",
    "settlements_30d": 1840,
    "status": "ok",
    "unique_payers_30d": 63,
    "window": {
      "days": 30
    }
  },
  "pay_to": "0x52E29e0d2Aa49bfBfC548C0A9F2196F4aa51f3ea",
  "payability": {
    "declared_verb": "GET",
    "payable_verb": "GET",
    "verdict": "delivered"
  },
  "price_usd": 0.01,
  "probe_count": 14,
  "quality": {
    "activity": 14,
    "delivery": 15,
    "latency": 10,
    "liveness": 40,
    "schema": 12,
    "total": 91
  },
  "reports": {
    "counts": true,
    "failed": 0,
    "wallets": 4,
    "worked": 4
  },
  "schema_score": 0.8,
  "status": "live",
  "url": "https://api.example.com/search",
  "x402_version": 2
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
26 min agoPassed402912 ms$0.002
4 h agoPassed4021.0 s$0.002
7 h agoPassed402599 ms$0.002
11 h agoPassed402640 ms$0.002
15 h agoPassed402702 ms$0.002
18 h agoPassed402715 ms$0.002
23 h agoPassed402621 ms$0.002
26 h agoPassed402705 ms$0.002
29 h agoPassed402783 ms$0.002
34 h agoPassed402684 ms$0.002