x402-doctor.onrender.com

https://x402-doctor.onrender.com/api/v1/fix

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

The fix for your x402 endpoint: diagnoses it, then returns per problem the concrete change as code for your stack (Express, Next.js, Hono or raw HTTP), filled in with your own payTo, amount, network and route.

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% Sep 24Sep 28Oct 1Oct 5

Response time

p50 111ms · p95 270ms
0ms 150ms 300ms Sep 24Sep 28Oct 1Oct 5
Data table
Reliability history per time bucket over the last 30 days (daily).
Bucket Uptime Probes Response time
9/24/2026, 12:00:00 AM 100% 2 94ms
9/25/2026, 12:00:00 AM 100% 14 108ms
9/26/2026, 12:00:00 AM 100% 14 104ms
9/27/2026, 12:00:00 AM 100% 13 107ms
9/28/2026, 12:00:00 AM 100% 13 109ms
9/29/2026, 12:00:00 AM 100% 12 114ms
9/30/2026, 12:00:00 AM 100% 12 102ms
10/1/2026, 12:00:00 AM 100% 12 110ms
10/2/2026, 12:00:00 AM 100% 12 212ms
10/3/2026, 12:00:00 AM 100% 13 200ms
10/4/2026, 12:00:00 AM 100% 10 204ms
10/5/2026, 12:00:00 AM 100% 10 162ms
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
1

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
x402-next

Operator

Company
inferred — unknown
Jurisdiction
—
Registrar
Amazon Registrar, Inc.
Domain registered
2015-03-28
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": {
    "fixes": {
      "items": {
        "properties": {
          "checks": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "code": {
            "items": {
              "properties": {
                "label": {
                  "type": "string"
                },
                "language": {
                  "type": "string"
                },
                "snippet": {
                  "type": "string"
                },
                "stack": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "recipe": {
            "type": "string"
          },
          "severity": {
            "enum": [
              "fail",
              "warn"
            ],
            "type": "string"
          },
          "steps": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "verify": {
            "type": "string"
          },
          "why": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "why",
          "steps",
          "code"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "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"
    },
    "stack": {
      "properties": {
        "detected_from": {
          "type": "string"
        },
        "id": {
          "enum": [
            "express",
            "next",
            "hono",
            "node",
            "python",
            "generic"
          ],
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "summary": {
      "type": "string"
    },
    "unfixed": {
      "items": {
        "type": "object"
      },
      "type": "array"
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "url",
    "fixes"
  ],
  "type": "object"
}