← BrowseDev tools

Why your x402 endpoint is not catalogued

by opdevio · $0.01 / call

About this service

2,294 listed x402 endpoints accept payment correctly and are invisible to discovery. This runs the catalogue's checks against your resource and returns each failure with the specific fix, including the one that catches most sellers: an endpoint answering a bare GET with 400 because a parameter is missing fails returns_402 and cannot be catalogued at all, however correct it is for real requests.

Tools included — 15

Reported by this server's own tools/list, refreshed automatically.

agent_workcheck_x402check_agent_accesscheck_tlscheck_headerscheck_addresscheck_packagecheck_x402_sellersec_factsspec_digestdata_x402_conformancecheck_x402_listeddata_bazaar_snapshotcheck_json_schemacheck_redirect_chain

Add to your agent

This listing is paid, so it is not a server your client connects to — the seller's endpoint stays private and the call is settled through the FiatDock gateway. Install FiatDock once, then invoke this listing by id.

1. Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, Gemini CLI). Click the block to select all, then copy.

{
  "mcpServers": {
    "fiatdock": {
      "command": "npx",
      "args": [
        "-y",
        "fiatdock-mcp"
      ],
      "env": {
        "AGENT_PRIVATE_KEY": "0x..."
      }
    }
  }
}

Replace 0x... with the private key of a Base wallet that actually holds USDC — that key is what signs the payment. Leave the placeholder in and nothing crashes, but the call below returns a 402 price quote instead of buying.

2. Then have your agent call:

call_service({ id: "svc_94edb4d2-a5f8-4158-a5c8-9ecdd05d716a", args: { … } })

Listing id: svc_94edb4d2-a5f8-4158-a5c8-9ecdd05d716a · networks: base · paid per call via x402 (100% to the seller — FiatDock takes 0% of this listing's calls right now, and the buyer makes a single x402 payment)
Not sure what args to send? get_service({ id: "svc_94edb4d2-a5f8-4158-a5c8-9ecdd05d716a", includeSchemas: true }) returns the argument names and types — free, and it is the only way to get them.

Call it from code (any x402 client)

No FiatDock package needed: POST https://fiatdock.com/s/svc_94edb4d2-a5f8-4158-a5c8-9ecdd05d716a with the tool's arguments as a JSON body. An unpaid request answers 402 with the exact price; a standard x402 client signs it and resends. Node, with the official x402 packages:

// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const pay = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:*", client: new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_PRIVATE_KEY)) }],
});
const r = await pay("https://fiatdock.com/s/svc_94edb4d2-a5f8-4158-a5c8-9ecdd05d716a", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ /* the tool's arguments */ }),
});
console.log(r.status, await r.text());

Argument names and types: GET https://fiatdock.com/v1/marketplace/services/svc_94edb4d2-a5f8-4158-a5c8-9ecdd05d716a?include=schemas (free). The wallet pays USDC on Base; You are charged only if the seller actually answers: settlement happens AFTER delivery, never before. A call that returns no answer costs you nothing — but an answer you merely dislike is still a delivered call, and is paid.

Reviews — none yet

Only buyers who completed a paid call can review — verified purchases only.