SERVICE / DETAILother

AgentPay x402 Trust Oracle

POST agentpay.tools/tools/verified_route/call

SONAR SCORE0.000
LIVE PRICE0.010000
BAZAAR LIVE
CDP INDEXEDno
DECISION EVIDENCE

Why an agent can trust this route.

No recent observations
HANDSHAKE SUCCESS0.0%402 challenge reachable
PAID DELIVERY0.0%settlement observed
P90 LATENCYrecent response window
PRICE DRIFTadvertised vs observed

Sonar evidence is advisory. Paid delivery is shown as verified only when paid probes are available; otherwise route estimates use the unpaid handshake as a clearly labeled proxy.

SONAR PROBE HISTORY / 30D

Observed outcomes

JSON ↗
No probe history yet.
LIVE ENDPOINT METADATA

Buyer-side trust oracle for the x402 marketplace: 'I need X, budget $Y — which tool is real?' Sweeps the WHOLE catalog across many queries, collapses sybil/factory clusters (one wallet stamping many fake-distinct listings), ranks the genuinely-used survivors by unique-payer usage, and returns one vetted pick with a ready-to-pay challenge. The credit-bureau check an agent can't do in a single query.

Resource: agentpay.tools/tools/verified_route/call

Network: eip155:8453 · Asset: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 · Pay to: 0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7

Payment methods: eip3009 · Last validation:

{
  "input": {
    "body": {
      "parameters": {
        "need": "dex pair liquidity",
        "chain": "",
        "budget_usd": 1
      }
    },
    "type": "http",
    "method": "POST",
    "bodyType": "json"
  },
  "output": {
    "type": "json",
    "example": {
      "need": "dex pair liquidity",
      "catalog": {
        "scanned": 117,
        "real_providers": 41,
        "biggest_factory": {
          "pay_to": "0x2bb72231eed3",
          "listings": 72
        },
        "sybil_collapsed": 73
      },
      "vetting": "swept 17 queries → 117 listings → collapsed 73 sybil listings → 41 real providers",
      "recommendation": {
        "url": "https://otto.example/dex",
        "name": "Otto AI",
        "network": "eip155:8453",
        "quality": 3851,
        "calls30d": 3246,
        "payers30d": 200,
        "price_usd": "0.001",
        "ready_to_pay": {
          "url": "https://otto.example/dex",
          "accepts": {
            "scheme": "exact",
            "network": "eip155:8453"
          },
          "network": "eip155:8453"
        }
      }
    }
  },
  "paymentRequirements": [
    {
      "raw": {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2",
          "assetTransferMethod": "eip3009"
        },
        "payTo": "0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "mimeType": "application/json",
        "resource": "https://agentpay.tools/tools/verified_route/call",
        "description": "AgentPay tool call",
        "outputSchema": {
          "input": {
            "type": "object",
            "required": [
              "need"
            ],
            "properties": {
              "need": {
                "type": "string",
                "description": "What the agent needs, e.g. 'dex pair liquidity', 'crypto prices'"
              },
              "chain": {
                "type": "string",
                "default": "",
                "description": "Optional chain filter: 'base', 'arbitrum', 'arbitrum-stack'. Empty = all chains."
              },
              "budget_usd": {
                "type": "number",
                "default": 1,
                "description": "Max USDC the agent will pay the downstream tool per call"
              }
            }
          },
          "errors": [
            {
              "body": {
                "error": "<summary>",
                "reason": "<machine-readable reason>"
              },
              "when": "No payment attached (this challenge), or the attached payment failed verification: wrong amount/recipient, memo mismatch, expired, or already used (replay)",
              "retry": "Re-request the challenge and pay again",
              "status": 402
            },
            {
              "body": {
                "detail": [
                  {
                    "loc": [
                      "body"
                    ],
                    "msg": "<what is wrong>",
                    "type": "<error type>"
                  }
                ]
              },
              "when": "Request body present but malformed (invalid JSON or wrong field types) WITH a payment header attached — checked BEFORE settlement, so the payment is never consumed. An unpaid malformed request gets the 402, not a 422",
              "retry": "Fix the body and retry with a fresh payment",
              "status": 422
            },
            {
              "body": {
                "detail": "Tool '<name>' not found"
              },
              "when": "Unknown tool name",
              "status": 404
            },
            {
              "body": {
                "error": "Rate limit exceeded"
              },
              "when": "Rate limited (per-IP and per-wallet limits)",
              "retry": "Back off and retry after a minute",
              "status": 429
            },
            {
              "body": {
                "tool": "<name>",
                "error": "Tool execution failed",
                "payment_status": "refund_pending"
              },
              "when": "Payment settled on-chain but tool execution failed — the payment is marked refund_pending automatically; you are not charged for a failed call",
              "status": 502
            },
            {
              "body": {
                "detail": "<what is unavailable>"
              },
              "when": "Tool temporarily unavailable, or the gateway cannot persist the challenge (fail-closed)",
              "retry": "Retry shortly",
              "status": 503
            }
          ],
          "output": {
            "need": "dex pair liquidity",
            "chain": null,
            "catalog": {
              "scanned": 117,
              "after_vetting": 114,
              "real_providers": 41,
              "unique_wallets": 38,
              "biggest_factory": {
                "pay_to": "0x2bb72231eed3",
                "listings": 72
              },
              "sybil_collapsed": 73
            },
            "vetting": "swept 17 queries → 117 listings → collapsed 73 sybil listings → 41 real providers",
            "survivors": [],
            "budget_usd": "1",
            "recommendation": {
              "url": "https://otto.example/dex",
              "name": "Otto AI",
              "flags": [],
              "pay_to": "0x0e84ddedaae6a7",
              "network": "eip155:8453",
              "quality": 3851,
              "calls30d": 3246,
              "payers30d": 200,
              "price_usd": "0.001",
              "ready_to_pay": {
                "url": "https://otto.example/dex",
                "accepts": {
                  "scheme": "exact",
                  "network": "eip155:8453"
                },
                "network": "eip155:8453",
                "price_usd": "0.001"
              }
            }
          }
        },
        "maxTimeoutSeconds": 300
      },
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "payTo": "0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7",
      "scheme": "exact",
      "network": "eip155:8453",
      "amountAtomic": "10000"
    }
  ]
}
METADATA PROVENANCE

Source catalog records are retained separately from live endpoint observations. Sonar score, uptime, and latency are advisory metrics. CDP indexing is not inferred from validation.