x402-doctor.fizzl.eu

https://x402-doctor.fizzl.eu/api/v1/diagnose

Shares a payout wallet with 30 other endpoints — its adoption is attributed from that shared wallet's traffic, not earned exclusively.

Why is my x402 endpoint broken? Diagnose and debug an x402 payment endpoint (or MCP server) when payments fail: checks the 402 challenge, accepts[] (network, payTo, amount, asset), resource URL, Solana settlement readiness, which wallets and agents can pay, Bazaar/OpenAPI discovery and the browser paywall. Returns every check with a fix hint. Read-only: never pays.

60
reliability

Reliability & health

Uptime and response time from our own unpaid probes, plus the reliability score built from them.

Uptime

100.0% avg
0% 50% 100% Tue 2 AMThu 7 AMSat 10 AMMon 10 PM

Response time

p50 258ms · p95 471ms
0ms 500ms 1000ms Tue 2 AMThu 7 AMSat 10 AMMon 10 PM
Data table
Reliability history per time bucket over the last 7 days (hourly).
Bucket Uptime Probes Response time
9/29/2026, 2:00:00 AM 100% 1 261ms
9/29/2026, 4:00:00 AM 100% 1 144ms
9/29/2026, 6:00:00 AM 100% 1 164ms
9/29/2026, 8:00:00 AM 100% 1 376ms
9/29/2026, 10:00:00 AM 100% 1 141ms
9/29/2026, 12:00:00 PM 100% 1 321ms
9/29/2026, 2:00:00 PM 100% 1 372ms
9/29/2026, 4:00:00 PM 100% 1 172ms
9/29/2026, 6:00:00 PM 100% 1 139ms
9/29/2026, 8:00:00 PM 100% 1 331ms
9/29/2026, 10:00:00 PM 100% 1 471ms
9/30/2026, 1:00:00 AM 100% 1 290ms
9/30/2026, 3:00:00 AM 100% 1 286ms
9/30/2026, 5:00:00 AM 100% 1 371ms
9/30/2026, 7:00:00 AM 100% 1 348ms
9/30/2026, 9:00:00 AM 100% 1 123ms
9/30/2026, 11:00:00 AM 100% 1 168ms
9/30/2026, 1:00:00 PM 100% 1 328ms
9/30/2026, 3:00:00 PM 100% 1 453ms
9/30/2026, 5:00:00 PM 100% 1 559ms
9/30/2026, 7:00:00 PM 100% 1 172ms
9/30/2026, 9:00:00 PM 100% 1 136ms
9/30/2026, 11:00:00 PM 100% 1 348ms
10/1/2026, 1:00:00 AM 100% 1 154ms
10/1/2026, 3:00:00 AM 100% 1 425ms
10/1/2026, 5:00:00 AM 100% 1 163ms
10/1/2026, 7:00:00 AM 100% 1 308ms
10/1/2026, 9:00:00 AM 100% 1 277ms
10/1/2026, 11:00:00 AM 100% 1 275ms
10/1/2026, 1:00:00 PM 100% 1 259ms
10/1/2026, 3:00:00 PM 100% 1 256ms
10/1/2026, 5:00:00 PM 100% 1 492ms
10/1/2026, 7:00:00 PM 100% 1 269ms
10/1/2026, 9:00:00 PM 100% 1 361ms
10/1/2026, 11:00:00 PM 100% 1 257ms
10/2/2026, 1:00:00 AM 100% 1 376ms
10/2/2026, 3:00:00 AM 100% 1 128ms
10/2/2026, 5:00:00 AM 100% 1 140ms
10/2/2026, 7:00:00 AM 100% 1 247ms
10/2/2026, 9:00:00 AM 100% 1 121ms
10/2/2026, 11:00:00 AM 100% 1 172ms
10/2/2026, 1:00:00 PM 100% 1 331ms
10/2/2026, 3:00:00 PM 100% 1 291ms
10/2/2026, 5:00:00 PM 100% 1 305ms
10/2/2026, 7:00:00 PM 100% 1 431ms
10/2/2026, 9:00:00 PM 100% 1 103ms
10/2/2026, 10:00:00 PM 100% 1 104ms
10/3/2026, 12:00:00 AM 100% 1 279ms
10/3/2026, 2:00:00 AM 100% 1 433ms
10/3/2026, 4:00:00 AM 100% 1 162ms
10/3/2026, 6:00:00 AM 100% 1 139ms
10/3/2026, 8:00:00 AM 100% 1 259ms
10/3/2026, 10:00:00 AM 100% 1 134ms
10/3/2026, 12:00:00 PM 100% 1 474ms
10/3/2026, 2:00:00 PM 100% 1 141ms
10/3/2026, 4:00:00 PM 100% 1 334ms
10/3/2026, 6:00:00 PM 100% 1 139ms
10/3/2026, 8:00:00 PM 100% 1 908ms
10/3/2026, 11:00:00 PM 100% 1 75ms
10/4/2026, 1:00:00 AM 100% 1 368ms
10/4/2026, 2:00:00 AM 100% 1 273ms
10/4/2026, 4:00:00 AM 100% 1 333ms
10/4/2026, 6:00:00 AM 100% 1 362ms
10/4/2026, 8:00:00 AM 100% 1 136ms
10/4/2026, 1:00:00 PM 100% 1 271ms
10/4/2026, 3:00:00 PM 100% 1 166ms
10/4/2026, 5:00:00 PM 100% 1 152ms
10/4/2026, 7:00:00 PM 100% 1 278ms
10/4/2026, 9:00:00 PM 100% 1 130ms
10/5/2026, 2:00:00 AM 100% 1 69ms
10/5/2026, 7:00:00 AM 100% 1 215ms
10/5/2026, 9:00:00 AM 100% 1 116ms
10/5/2026, 11:00:00 AM 100% 1 262ms
10/5/2026, 1:00:00 PM 100% 1 78ms
10/5/2026, 2:00:00 PM 100% 1 79ms
10/5/2026, 4:00:00 PM 100% 1 244ms
10/5/2026, 6:00:00 PM 100% 1 249ms
10/5/2026, 8:00:00 PM 100% 1 208ms
10/5/2026, 10:00:00 PM 100% 1 199ms
60
Composite reliability — the weighted average of the dimensions below, on a 0–100 scale.
Availability
100

How often it was reachable when we probed it (weight 35%).

Latency
100

How quickly it answers when it is up — fast scores high (weight 20%).

Security
100

Whether it serves over working TLS / https (weight 15%).

Transparency
61

Whether the operator disclosed what it does — description, schema, identity (weight 15%).

Activity
3

Observed on-chain payments to this endpoint's wallet — transactions, volume, and distinct paying wallets over the last month (weight 15%; not yet measured when we have not seen its wallet settle).

Confidence 100% — how much probe evidence backs this score. A thin history is flagged, not hidden.

See the scoring methodology for exactly how each number is computed.

Payment

Currencies
USDC
Networks
base, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Facilitator
unknown
SDK
unknown

Operator

Company
inferred — unknown
Jurisdiction
—
Registrar
—
Domain registered
—
Hosting network
RS-1125
Hosting country
—

Operator context is derived from public RDAP/TLS records and unverified. Company and country are only available for endpoints that publish them (an OV/EV TLS certificate or a non-redacted domain record); most endpoints are CDN-fronted and disclose neither.

On-chain activity (base)

139
payments (30d)
5.4
USD volume (30d)
13
paying wallets (30d)

Payments per day

last payment 10/5/2026
0 20 40 Sep 21Sep 26Sep 30Oct 5
Data table
Settled payments per day.
Day Payments Volume (USD) Paying wallets
9/21/2026 1 0.1 1
9/22/2026 3 0.06 2
9/23/2026 2 0.01 1
9/24/2026 8 0.48 2
9/25/2026 8 0.92 3
9/26/2026 37 1 1
9/27/2026 15 1.05 2
9/28/2026 14 0.66 3
9/29/2026 16 0.18 4
9/30/2026 5 0.01 2
10/1/2026 3 0.07 1
10/2/2026 2 0.01 1
10/3/2026 1 0 1
10/4/2026 20 0.84 2
10/5/2026 4 0.01 2

This payout wallet is shared: figures cover all 31 endpoints paid at it, since payments cannot be attributed to one of them. Only payments settled on chains and facilitators we index.

Linked by wallet — likely same operator

On-chain agent identity and the x402 endpoint that shares its settlement wallet.

Response schema
{
  "properties": {
    "challenge": {
      "type": [
        "object",
        "null"
      ]
    },
    "checks": {
      "items": {
        "properties": {
          "group": {
            "enum": [
              "challenge",
              "accepts",
              "resource",
              "settlement",
              "wallets",
              "discovery",
              "browser"
            ],
            "type": "string"
          },
          "hint": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail",
              "info",
              "skip"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "message"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "method": {
      "enum": [
        "GET",
        "POST",
        null
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "overall": {
      "enum": [
        "pass",
        "warn",
        "fail"
      ],
      "type": "string"
    },
    "receipt": {
      "description": "Signature over this whole answer (without receipt.signature), so the verdict can be verified later: EIP-191 personal_sign over canonical JSON (sorted keys, compact, ASCII-escaped). Signer addresses: /.well-known/x402-doctor-signer.json; free check: POST /api/v1/verify.",
      "properties": {
        "algorithm": {
          "enum": [
            "eip191-canonical-json-v1"
          ],
          "type": "string"
        },
        "cert": {
          "description": "The payout wallet's certificate for this signing key: personal_sign by authority over 'fizzl receipt signer\\nservice: <service>\\nsigner: <signer>\\nvalid_from: <date>'. Pin the payout wallet and a rotated key still verifies.",
          "properties": {
            "authority": {
              "type": "string"
            },
            "service": {
              "type": "string"
            },
            "signature": {
              "type": "string"
            },
            "signer": {
              "type": "string"
            },
            "valid_from": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "input_sha256": {
          "description": "sha256 of canonical JSON {route, input}: your query parameters as strings",
          "type": "string"
        },
        "payment": {
          "description": "The payment behind this answer, from your x402 payment payload. EVM: payer + EIP-3009 nonce; find the settlement as AuthorizationUsed(payer, nonce) on the asset contract. Solana: payer + sha256 of the signed transaction you sent.",
          "properties": {
            "amount": {
              "type": "string"
            },
            "asset": {
              "type": "string"
            },
            "network": {
              "type": "string"
            },
            "nonce": {
              "type": "string"
            },
            "pay_to": {
              "type": "string"
            },
            "payer": {
              "type": "string"
            },
            "proof": {
              "enum": [
                "eip3009",
                "svm-transaction"
              ],
              "type": "string"
            },
            "transaction_sha256": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "request_id": {
          "type": "string"
        },
        "route": {
          "type": "string"
        },
        "signature": {
          "type": "string"
        },
        "signed_at": {
          "type": "string"
        },
        "signer": {
          "type": "string"
        }
      },
      "required": [
        "request_id",
        "route",
        "input_sha256",
        "signed_at",
        "signer",
        "algorithm",
        "signature"
      ],
      "type": "object"
    },
    "url": {
      "type": "string"
    },
    "wallets": {
      "description": "Which wallets can pay: per wallet, the networks where payment works (yes) and where it fails, with the reason (no).",
      "items": {
        "properties": {
          "agent": {
            "type": "boolean"
          },
          "no": {
            "items": {
              "properties": {
                "network": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "wallet": {
            "type": "string"
          },
          "yes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "url",
    "overall",
    "checks"
  ],
  "type": "object"
}