mirrored listing x402 eip155:8453

Buyer-side trust oracle for the x402 marketplace: 'I need X, budget $Y — which tool is rea

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.

Do you run agentpay.tools? This listing was mirrored from Coinbase's public Bazaar. Claim it in 30 seconds — no account required — and it becomes verified, permanently overriding the mirrored copy.

Claim this listing
10000 (raw units)
price
11
calls / 30d
5
unique payers
2026-09-09
updated

Provider

agentpay.tools · discovered, not yet claimed by its owner

Payment (x402 accepts[])

[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "10000",
    "maxTimeoutSeconds": 300
  }
]

Output schema

{
  "bazaar": {
    "description": "Vet before you pay a stranger: sweep the x402 catalog, collapse sybil/factory listings, rank real providers by usage, and return ONE recommendation under budget with a ready-to-pay x402 challenge + a catalog dossier (scanned / real_providers / sybil_collapsed / biggest_factory).",
    "info": {
      "errors": [
        {
          "body": {
            "error": "<summary>",
            "reason": "<machine-readable reason>"
          },
          "retry": "Re-request the challenge and pay again",
          "status": 402,
          "when": "No payment attached (this challenge), or the attached payment failed verification: wrong amount/recipient, memo mismatch, expired, or already used (replay)"
        },
        {
          "body": {
            "detail": [
              {
                "loc": [
                  "body"
                ],
                "msg": "<what is wrong>",
                "type": "<error type>"
              }
            ]
          },
          "retry": "Fix the body and retry with a fresh payment",
          "status": 422,
          "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"
        },
        {
          "body": {
            "detail": "Tool '<name>' not found"
          },
          "status": 404,
          "when": "Unknown tool name"
        },
        {
          "body": {
            "error": "Rate limit exceeded"
          },
          "retry": "Back off and retry after a minute",
          "status": 429,
          "when": "Rate limited (per-IP and per-wallet limits)"
        },
        {
          "body": {
            "error": "Tool execution failed",
            "payment_status": "refund_pending",
            "tool": "<name>"
          },
          "status": 500,
          "when": "Payment settled on-chain but tool execution failed — the payment is marked refund_pending automatically; you are not charged for a failed call"
        },
        {
          "body": {
            "detail": "<what is unavailable>"
          },
          "retry": "Retry shortly",
          "status": 503,
          "when": "Tool temporarily unavailable, or the gateway cannot persist the challenge (fail-closed)"
        }
      ],
      "input": {
        "body": {
          "parameters": {
            "budget_usd": 1,
            "chain": "",
            "need": "dex pair liquidity"
          }
        },
        "bodyType": "json",
        "method": "POST",
        "type": "http"
      },
      "output": {
        "example": {
          "catalog": {
            "biggest_factory": {
              "listings": 72,
              "pay_to": "0x2bb72231eed3"
            },
            "real_providers": 41,
            "scanned": 117,
            "sybil_collapsed": 73
          },
          "need": "dex pair liquidity",
          "recommendation": {
            "calls30d": 3246,
            "name": "Otto AI",
            "network": "eip155:8453",
            "payers30d": 200,
            "price_usd": "0.001",
            "quality": 3851,
            "ready_to_pay": {
              "accepts": {
                "network": "eip155:8453",
                "scheme": "exact"
              },
              "network": "eip155:8453",
              "url": "https://otto.example/dex"
            },
            "url": "https://otto.example/dex"
          },
          "vetting": "swept 17 queries → 117 listings → collapsed 73 sybil listings → 41 real providers"
        },
        "type": "json"
      }
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "input": {
          "additionalProperties": false,
          "properties": {
            "body": {
              "properties": {
                "parameters": {
                  "properties": {
                    "budget_usd": {
                      "description": "Max USDC to pay the downstream tool per call (default 1)",
                      "type": "number"
                    },
                    "chain": {
                      "description": "Optional chain filter: 'base', 'arbitrum', 'solana'. Empty = all chains. Solana picks are discovery-only (probe coverage: Base only — on-chain delivery unverified)",
                      "type": "string"
                    },
                    "need": {
                      "description": "What the agent needs, e.g. 'dex pair liquidity', 'crypto prices'",
                      "type": "string"
                    }
                  },
                  "required": [
                    "need"
                  ],
                  "type": "object"
                }
              },
              "type": "object"
            },
            "bodyType": {
              "enum": [
                "json",
                "form-data",
                "text"
              ],
              "type": "string"
            },
            "method": {
              "enum": [
                "POST"
              ],
              "type": "string"
            },
            "type": {
              "const": "http",
              "type": "string"
            }
          },
          "required": [
            "type",
            "bodyType",
            "body",
            "method"
          ],
          "type": "object"
        },
        "output": {
          "properties": {
            "example": {
              "type": "object"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}

Use it

curl

curl "https://agentpay.tools/tools/verified_route/call"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid

JavaScript

const res = await fetch("https://agentpay.tools/tools/verified_route/call");
if (res.status === 402) {
  const { accepts } = await res.json();
  // pay one of accepts[] via an x402 client, then retry with the payment header
}

Python

import httpx
res = httpx.get("https://agentpay.tools/tools/verified_route/call")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Machine-readable

Everything on this page is also available as clean JSON at /resources/601.json, and this resource appears in /discovery/resources and /discovery/search.