FETCH402
← Protocol index

Resource / 337

healthy

Quartermaster x402 Audit.

Full x402 endpoint audit: verifies the 402 challenge, payment fields, Bazaar discovery metadata, and the origin's discovery surfaces (llms.txt, openapi.json, .well-known/x402, discovery/resources), returning a 0-100 score, pass/warn/fail checks with evidence, and recommended fixes.

Eligibility
probeable
Failures
0
Last quote
2026-08-12 22:47:37 UTC
Last probe
2026-08-12 22:47:37 UTC
Payment requirements / accepts[] 2 options
State Network Scheme Atomic amount Asset payTo / untrusted
active eip155:8453 exact 10000 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x5253666c40432f009ebd99908b9cd2a7fd1019cb
active solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp exact 10000 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v FgcKNzsBXSEHGNZNWetPsjXiBZk1WFoU6sF2zVsnzXfa

All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.

Probe evidence 1 recent
healthy 2026-08-12 22:47:37 UTC GET · HTTP 402 · 14ms · accepts 2 · base 1 ok
Request
GET https://quartermaster.surewhynot.app/v1/x402-audit
Robots
allow
Note
http_402;accepts=2;base=1
Accepts fingerprint
91f0ac209d8fbbacef37279f352f0f9fd4938c24e8f6cd73a6119d335b18f4b3

Accepts snapshot

[
  {
    "amount": "10000",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "assetTransferMethod": null,
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "maxTimeoutSeconds": 300,
    "network": "eip155:8453",
    "payTo": "0x5253666c40432f009ebd99908b9cd2a7fd1019cb",
    "paymentFlow": null,
    "raw": {
      "amount": "10000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 300,
      "max_timeout_seconds": 300,
      "network": "eip155:8453",
      "payTo": "0x5253666c40432f009ebd99908b9cd2a7fd1019cb",
      "pay_to": "0x5253666c40432f009ebd99908b9cd2a7fd1019cb",
      "scheme": "exact"
    },
    "scheme": "exact"
  },
  {
    "amount": "10000",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "assetTransferMethod": null,
    "extra": {
      "feePayer": "D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"
    },
    "maxTimeoutSeconds": 300,
    "network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
    "payTo": "FgcKNzsBXSEHGNZNWetPsjXiBZk1WFoU6sF2zVsnzXfa",
    "paymentFlow": null,
    "raw": {
      "amount": "10000",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "feePayer": "D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"
      },
      "maxTimeoutSeconds": 300,
      "max_timeout_seconds": 300,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "FgcKNzsBXSEHGNZNWetPsjXiBZk1WFoU6sF2zVsnzXfa",
      "pay_to": "FgcKNzsBXSEHGNZNWetPsjXiBZk1WFoU6sF2zVsnzXfa",
      "scheme": "exact"
    },
    "scheme": "exact"
  }
]

PaymentRequired raw

{
  "accepts": [
    {
      "amount": "10000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "extra": {
        "name": "USD Coin",
        "version": "2"
      },
      "maxTimeoutSeconds": 300,
      "network": "eip155:8453",
      "payTo": "0x5253666c40432f009ebd99908b9cd2a7fd1019cb",
      "scheme": "exact"
    },
    {
      "amount": "10000",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "extra": {
        "feePayer": "D6ZhtNQ5nT9ZnTHUbqXZsTx5MH2rPFiBBggX4hY1WePM"
      },
      "maxTimeoutSeconds": 300,
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "FgcKNzsBXSEHGNZNWetPsjXiBZk1WFoU6sF2zVsnzXfa",
      "scheme": "exact"
    }
  ],
  "error": "Payment required",
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "method": "GET",
          "queryParams": {
            "url": "https://api.example.com/paid-endpoint"
          },
          "type": "http"
        },
        "output": {
          "example": {
            "bazaar": {
              "has_metadata": false
            },
            "checks": [
              {
                "id": "returns_402",
                "label": "Endpoint returns HTTP 402 for unpaid requests",
                "status": "pass"
              }
            ],
            "discovery": {
              "discovery_resources": "missing",
              "llms_txt": "missing",
              "openapi_json": "present",
              "well_known_x402": "missing"
            },
            "payment": {
              "asset_name": "USDC (Base mainnet)",
              "is_x402": true,
              "network": "eip155:8453",
              "x402_version": 2
            },
            "recommended_fixes": [
              "Declare Bazaar discovery metadata on the route - without it, settlements will NOT list you in the Coinbase Bazaar."
            ],
            "score": 72,
            "status": "warn",
            "target_url": "https://api.example.com/paid-endpoint"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "method": {
                "enum": [
                  "GET"
                ],
                "type": "string"
              },
              "queryParams": {
                "properties": {
                  "url": {
                    "description": "x402 paid endpoint to audit",
                    "format": "uri",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "resource": {
    "description": "Full x402 endpoint audit: verifies the 402 challenge, payment fields, Bazaar discovery metadata, and the origin's discovery surfaces (llms.txt, openapi.json, .well-known/x402, discovery/resources), returning a 0-100 score, pass/warn/fail checks with evidence, and recommended fixes.",
    "mimeType": "application/json",
    "serviceName": "Quartermaster x402 Audit",
    "tags": [
      "x402",
      "audit",
      "payments",
      "bazaar",
      "discovery",
      "lint",
      "score",
      "developer-tools",
      "report"
    ],
    "url": "https://quartermaster.surewhynot.app/v1/x402-audit"
  },
  "x402Version": 2
}

Response headers

{
  "access-control-allow-origin": "*",
  "access-control-expose-headers": "PAYMENT-REQUIRED,PAYMENT-RESPONSE,X-PAYMENT-RESPONSE,X-Payment-Notice,Retry-After",
  "alt-svc": "h3=\":443\"; ma=86400",
  "cache-control": "no-store",
  "cf-ray": "a2a305de5cc0adf1-IAD",
  "connection": "keep-alive",
  "content-length": "2",
  "content-type": "application/json",
  "date": "Wed, 12 Aug 2026 22:47:37 GMT",
  "nel": "{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}",
  "payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly9xdWFydGVybWFzdGVyLnN1cmV3aHlub3QuYXBwL3YxL3g0MDItYXVkaXQiLCJkZXNjcmlwdGlvbiI6IkZ1bGwgeDQwMiBlbmRwb2ludCBhdWRpdDogdmVyaWZpZXMgdGhlIDQwMiBjaGFsbGVuZ2UsIHBheW1lbnQgZmllbGRzLCBCYXphYXIgZGlzY292ZXJ5IG1ldGFkYXRhLCBhbmQgdGhlIG9yaWdpbidzIGRpc2NvdmVyeSBzdXJmYWNlcyAobGxtcy50eHQsIG9wZW5hcGkuanNvbiwgLndlbGwta25vd24veDQwMiwgZGlzY292ZXJ5L3Jlc291cmNlcyksIHJldHVybmluZyBhIDAtMTAwIHNjb3JlLCBwYXNzL3dhcm4vZmFpbCBjaGVja3Mgd2l0aCBldmlkZW5jZSwgYW5kIHJlY29tbWVuZGVkIGZpeGVzLiIsIm1pbWVUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInNlcnZpY2VOYW1lIjoiUXVhcnRlcm1hc3RlciB4NDAyIEF1ZGl0IiwidGFncyI6WyJ4NDAyIiwiYXVkaXQiLCJwYXltZW50cyIsImJhemFhciIsImRpc2NvdmVyeSIsImxpbnQiLCJzY29yZSIsImRldmVsb3Blci10b29scyIsInJlcG9ydCJdfSwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiIxMDAwMCIsImFzc2V0IjoiMHg4MzM1ODlmQ0Q2ZURiNkUwOGY0YzdDMzJENGY3MWI1NGJkQTAyOTEzIiwicGF5VG8iOiIweDUyNTM2NjZjNDA0MzJmMDA5ZWJkOTk5MDhiOWNkMmE3ZmQxMDE5Y2IiLCJtYXhUaW1lb3V0U2Vjb25kcyI6MzAwLCJleHRyYSI6eyJuYW1lIjoiVVNEIENvaW4iLCJ2ZXJzaW9uIjoiMiJ9fSx7InNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6InNvbGFuYTo1ZXlrdDRVc0Z2OFA4TkpkVFJFcFkxdnpxS3FaS3ZkcCIsImFtb3VudCI6IjEwMDAwIiwiYXNzZXQiOiJFUGpGV2RkNUF1ZnFTU3FlTTJxTjF4enliYXBDOEc0d0VHR2tad3lURHQxdiIsInBheVRvIjoiRmdjS056c0JYU0VIR05aTldldFBzalhpQlprMVdGb1U2c0YyelZzbnpYZmEiLCJtYXhUaW1lb3V0U2Vjb25kcyI6MzAwLCJleHRyYSI6eyJmZWVQYXllciI6IkQ2Wmh0TlE1blQ5Wm5USFVicVhac1R4NU1IMnJQRmlCQmdnWDRoWTFXZVBNIn19XSwiZXh0ZW5zaW9ucyI6eyJiYXphYXIiOnsiaW5mbyI6eyJpbnB1dCI6eyJ0eXBlIjoiaHR0cCIsInF1ZXJ5UGFyYW1zIjp7InVybCI6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3BhaWQtZW5kcG9pbnQifSwibWV0aG9kIjoiR0VUIn0sIm91dHB1dCI6eyJ0eXBlIjoianNvbiIsImV4YW1wbGUiOnsidGFyZ2V0X3VybCI6Imh0dHBzOi8vYXBpLmV4YW1wbGUuY29tL3BhaWQtZW5kcG9pbnQiLCJzY29yZSI6NzIsInN0YXR1cyI6Indhcm4iLCJjaGVja3MiOlt7ImlkIjoicmV0dXJuc180MDIiLCJsYWJlbCI6IkVuZHBvaW50IHJldHVybnMgSFRUUCA0MDIgZm9yIHVucGFpZCByZXF1ZXN0cyIsInN0YXR1cyI6InBhc3MifV0sInBheW1lbnQiOnsiaXNfeDQwMiI6dHJ1ZSwieDQwMl92ZXJzaW9uIjoyLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhc3NldF9uYW1lIjoiVVNEQyAoQmFzZSBtYWlubmV0KSJ9LCJiYXphYXIiOnsiaGFzX21ldGFkYXRhIjpmYWxzZX0sImRpc2NvdmVyeSI6eyJsbG1zX3R4dCI6Im1pc3NpbmciLCJvcGVuYXBpX2pzb24iOiJwcmVzZW50Iiwid2VsbF9rbm93bl94NDAyIjoibWlzc2luZyIsImRpc2NvdmVyeV9yZXNvdXJjZXMiOiJtaXNzaW5nIn0sInJlY29tbWVuZGVkX2ZpeGVzIjpbIkRlY2xhcmUgQmF6YWFyIGRpc2NvdmVyeSBtZXRhZGF0YSBvbiB0aGUgcm91dGUgLSB3aXRob3V0IGl0LCBzZXR0bGVtZW50cyB3aWxsIE5PVCBsaXN0IHlvdSBpbiB0aGUgQ29pbmJhc2UgQmF6YWFyLiJdfX19LCJzY2hlbWEiOnsiJHNjaGVtYSI6Imh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1hIiwidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsiaW5wdXQiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsidHlwZSI6eyJ0eXBlIjoic3RyaW5nIiwiY29uc3QiOiJodHRwIn0sIm1ldGhvZCI6eyJ0eXBlIjoic3RyaW5nIiwiZW51bSI6WyJHRVQiXX0sInF1ZXJ5UGFyYW1zIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InVybCI6eyJ0eXBlIjoic3RyaW5nIiwiZm9ybWF0IjoidXJpIiwiZGVzY3JpcHRpb24iOiJ4NDAyIHBhaWQgZW5kcG9pbnQgdG8gYXVkaXQifX0sInJlcXVpcmVkIjpbInVybCJdfX0sInJlcXVpcmVkIjpbInR5cGUiLCJtZXRob2QiXSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfSwib3V0cHV0Ijp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InR5cGUiOnsidHlwZSI6InN0cmluZyJ9LCJleGFtcGxlIjp7InR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInR5cGUiXX19LCJyZXF1aXJlZCI6WyJpbnB1dCJdfX19fQ==",
  "permissions-policy": "camera=(), microphone=(), geolocation=()",
  "referrer-policy": "strict-origin-when-cross-origin",
  "report-to": "{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=fJxNmGNUNkiPzwAUDpxmkJgaMzsZmlpldCrOZfW8GaYYdjYhoN%2BQosvwcM%2B6VeMfbhBFiH0Q16KYldsGEiUKEq2NXfS%2FI8orQQU6DpctPQDmaSBIkdTzPiRVaoex63M%2BGWnkxwu4J5u2HBnLv7vg\"}]}",
  "server": "cloudflare",
  "speculation-rules": "\"/cdn-cgi/speculation\"",
  "strict-transport-security": "max-age=31536000; includeSubDomains",
  "x-content-type-options": "nosniff"
}

Response body

{}

Request headers

{
  "accept": "*/*",
  "user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}

Machine contract

Schemas.

InputJSON
{
  "method": "GET",
  "queryParams": {
    "url": "https://api.example.com/paid-endpoint"
  },
  "type": "http"
}
OutputJSON
{
  "example": {
    "bazaar": {
      "has_metadata": false
    },
    "checks": [
      {
        "id": "returns_402",
        "label": "Endpoint returns HTTP 402 for unpaid requests",
        "status": "pass"
      }
    ],
    "discovery": {
      "discovery_resources": "missing",
      "llms_txt": "missing",
      "openapi_json": "present",
      "well_known_x402": "missing"
    },
    "payment": {
      "asset_name": "USDC (Base mainnet)",
      "is_x402": true,
      "network": "eip155:8453",
      "x402_version": 2
    },
    "recommended_fixes": [
      "Declare Bazaar discovery metadata on the route - without it, settlements will NOT list you in the Coinbase Bazaar."
    ],
    "score": 72,
    "status": "warn",
    "target_url": "https://api.example.com/paid-endpoint"
  },
  "type": "json"
}