{
  "tool": {
    "slug": "x402-bazaar-metadata-lint",
    "title": "x402 Bazaar Metadata Lint",
    "category": "Agentic Web",
    "description": "Validate an x402 v2 payment requirement and Bazaar-facing resource metadata before agents discover or buy it.",
    "buyerIntent": "Use before publishing a paid endpoint to Bazaar-style x402 discovery so the offer has a clean resource, scheme, network, amount, schemas, and buyer hints.",
    "tokenValue": "Avoids a long agent retry loop by turning malformed x402 metadata into exact missing fields and normalized hints.",
    "method": "POST",
    "rawBlueprintSlug": "the-ai-readable-website-stack",
    "priceUSDC": 0.005,
    "latencyTargetMs": 260,
    "status": "live-preview",
    "tags": [
      "x402",
      "bazaar",
      "payment-required",
      "metadata",
      "discovery"
    ],
    "requestSchema": {
      "type": "object",
      "required": [
        "paymentRequired"
      ],
      "properties": {
        "paymentRequired": {
          "type": "object",
          "description": "Decoded PAYMENT-REQUIRED or x402 payment requirement JSON."
        },
        "resourceUrl": {
          "type": "string",
          "description": "Canonical resource URL when not embedded in paymentRequired.resource.url."
        },
        "inputSchema": {
          "type": "object"
        },
        "outputSchema": {
          "type": "object"
        }
      }
    },
    "responseSchema": {
      "type": "object",
      "properties": {
        "score": {
          "type": "integer"
        },
        "status": {
          "type": "string"
        },
        "findings": {
          "type": "array",
          "items": {
            "type": "object"
          }
        },
        "missingFields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "normalizedBazaarHints": {
          "type": "object"
        }
      }
    },
    "sampleRequest": {
      "paymentRequired": {
        "x402Version": 2,
        "resource": {
          "url": "https://example.com/api/v1/agent-tools/audit/"
        },
        "accepts": [
          {
            "scheme": "exact",
            "network": "eip155:8453",
            "amount": "5000",
            "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
            "payTo": "0xd9d6ae1d5a2128fea511460fac8e4dea58baf153"
          }
        ],
        "extensions": {
          "bazaar": {
            "description": "Agent web readiness audit",
            "inputSchema": {
              "type": "object"
            },
            "outputSchema": {
              "type": "object"
            }
          }
        }
      }
    },
    "sampleResponse": {
      "score": 92,
      "status": "ready",
      "findings": [
        {
          "id": "x402-version",
          "status": "pass",
          "message": "x402 v2 signal is present."
        }
      ],
      "missingFields": [],
      "normalizedBazaarHints": {
        "resource": "https://example.com/api/v1/agent-tools/audit/",
        "network": "eip155:8453",
        "amountAtomic": "5000",
        "priceUSDC": 0.005,
        "requiredHeaders": [
          "PAYMENT-SIGNATURE",
          "X-PAYMENT"
        ]
      }
    },
    "endpoint": "/api/v1/agent-tools/x402-bazaar-metadata-lint/",
    "absoluteEndpoint": "https://elpa.space/api/v1/agent-tools/x402-bazaar-metadata-lint/",
    "pageUrl": "https://elpa.space/agent-tools/#x402-bazaar-metadata-lint",
    "rawBlueprintUrl": "https://elpa.space/raw/the-ai-readable-website-stack",
    "priceLabel": "0.005 USDC"
  },
  "payment": {
    "protocol": "x402",
    "implementation": "x402 v2 exact EVM facilitator with legacy Base USDC transaction-hash fallback",
    "network": "Base",
    "networkCaip2": "eip155:8453",
    "currency": "USDC",
    "tokenContract": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "recipientAddress": "0xd9d6ae1d5a2128fea511460fac8e4dea58baf153",
    "paymentHeaders": [
      "PAYMENT-SIGNATURE",
      "X-PAYMENT",
      "x402-tx-hash (legacy)"
    ],
    "challengeHeader": "PAYMENT-REQUIRED",
    "responseHeader": "PAYMENT-RESPONSE",
    "facilitatorEnv": [
      "X402_FACILITATOR_URL",
      "X402_FACILITATOR_AUTHORIZATION"
    ],
    "maxTimeoutSeconds": 120,
    "priceUSDC": 0.005,
    "x402": {
      "x402Version": 2,
      "resource": {
        "url": "https://elpa.space/api/v1/agent-tools/x402-bazaar-metadata-lint/",
        "description": "Validate an x402 v2 payment requirement and Bazaar-facing resource metadata before agents discover or buy it.",
        "mimeType": "application/json",
        "serviceName": "ELPA Agent Tools",
        "tags": [
          "x402",
          "bazaar",
          "payment-required",
          "metadata",
          "discovery"
        ],
        "iconUrl": "https://elpa.space/logo.svg"
      },
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "amount": "5000",
          "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
          "payTo": "0xd9d6ae1d5a2128fea511460fac8e4dea58baf153",
          "maxTimeoutSeconds": 120,
          "extra": {
            "name": "USDC",
            "version": "2",
            "decimals": 6
          }
        }
      ],
      "paymentRequired": {
        "x402Version": 2,
        "error": "PAYMENT-SIGNATURE header is required",
        "resource": {
          "url": "https://elpa.space/api/v1/agent-tools/x402-bazaar-metadata-lint/",
          "description": "Validate an x402 v2 payment requirement and Bazaar-facing resource metadata before agents discover or buy it.",
          "mimeType": "application/json",
          "serviceName": "ELPA Agent Tools",
          "tags": [
            "x402",
            "bazaar",
            "payment-required",
            "metadata",
            "discovery"
          ],
          "iconUrl": "https://elpa.space/logo.svg"
        },
        "accepts": [
          {
            "scheme": "exact",
            "network": "eip155:8453",
            "amount": "5000",
            "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
            "payTo": "0xd9d6ae1d5a2128fea511460fac8e4dea58baf153",
            "maxTimeoutSeconds": 120,
            "extra": {
              "name": "USDC",
              "version": "2",
              "decimals": 6
            }
          }
        ],
        "extensions": {
          "bazaar": {
            "info": {
              "discoverable": true,
              "category": "Agentic Web",
              "tags": [
                "x402",
                "bazaar",
                "payment-required",
                "metadata",
                "discovery"
              ],
              "input": {
                "paymentRequired": {
                  "x402Version": 2,
                  "resource": {
                    "url": "https://example.com/api/v1/agent-tools/audit/"
                  },
                  "accepts": [
                    {
                      "scheme": "exact",
                      "network": "eip155:8453",
                      "amount": "5000",
                      "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
                      "payTo": "0xd9d6ae1d5a2128fea511460fac8e4dea58baf153"
                    }
                  ],
                  "extensions": {
                    "bazaar": {
                      "description": "Agent web readiness audit",
                      "inputSchema": {
                        "type": "object"
                      },
                      "outputSchema": {
                        "type": "object"
                      }
                    }
                  }
                }
              },
              "output": {
                "score": 92,
                "status": "ready",
                "findings": [
                  {
                    "id": "x402-version",
                    "status": "pass",
                    "message": "x402 v2 signal is present."
                  }
                ],
                "missingFields": [],
                "normalizedBazaarHints": {
                  "resource": "https://example.com/api/v1/agent-tools/audit/",
                  "network": "eip155:8453",
                  "amountAtomic": "5000",
                  "priceUSDC": 0.005,
                  "requiredHeaders": [
                    "PAYMENT-SIGNATURE",
                    "X-PAYMENT"
                  ]
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "discoverable": {
                  "type": "boolean"
                },
                "category": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "input": {
                  "type": "object",
                  "required": [
                    "paymentRequired"
                  ],
                  "properties": {
                    "paymentRequired": {
                      "type": "object",
                      "description": "Decoded PAYMENT-REQUIRED or x402 payment requirement JSON."
                    },
                    "resourceUrl": {
                      "type": "string",
                      "description": "Canonical resource URL when not embedded in paymentRequired.resource.url."
                    },
                    "inputSchema": {
                      "type": "object"
                    },
                    "outputSchema": {
                      "type": "object"
                    }
                  }
                },
                "output": {
                  "type": "object",
                  "properties": {
                    "score": {
                      "type": "integer"
                    },
                    "status": {
                      "type": "string"
                    },
                    "findings": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "missingFields": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "normalizedBazaarHints": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "paymentRequiredBase64": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQQVlNRU5ULVNJR05BVFVSRSBoZWFkZXIgaXMgcmVxdWlyZWQiLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovL2VscGEuc3BhY2UvYXBpL3YxL2FnZW50LXRvb2xzL3g0MDItYmF6YWFyLW1ldGFkYXRhLWxpbnQvIiwiZGVzY3JpcHRpb24iOiJWYWxpZGF0ZSBhbiB4NDAyIHYyIHBheW1lbnQgcmVxdWlyZW1lbnQgYW5kIEJhemFhci1mYWNpbmcgcmVzb3VyY2UgbWV0YWRhdGEgYmVmb3JlIGFnZW50cyBkaXNjb3ZlciBvciBidXkgaXQuIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwic2VydmljZU5hbWUiOiJFTFBBIEFnZW50IFRvb2xzIiwidGFncyI6WyJ4NDAyIiwiYmF6YWFyIiwicGF5bWVudC1yZXF1aXJlZCIsIm1ldGFkYXRhIiwiZGlzY292ZXJ5Il0sImljb25VcmwiOiJodHRwczovL2VscGEuc3BhY2UvbG9nby5zdmcifSwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiI1MDAwIiwiYXNzZXQiOiIweDgzMzU4OWZjZDZlZGI2ZTA4ZjRjN2MzMmQ0ZjcxYjU0YmRhMDI5MTMiLCJwYXlUbyI6IjB4ZDlkNmFlMWQ1YTIxMjhmZWE1MTE0NjBmYWM4ZTRkZWE1OGJhZjE1MyIsIm1heFRpbWVvdXRTZWNvbmRzIjoxMjAsImV4dHJhIjp7Im5hbWUiOiJVU0RDIiwidmVyc2lvbiI6IjIiLCJkZWNpbWFscyI6Nn19XSwiZXh0ZW5zaW9ucyI6eyJiYXphYXIiOnsiaW5mbyI6eyJkaXNjb3ZlcmFibGUiOnRydWUsImNhdGVnb3J5IjoiQWdlbnRpYyBXZWIiLCJ0YWdzIjpbIng0MDIiLCJiYXphYXIiLCJwYXltZW50LXJlcXVpcmVkIiwibWV0YWRhdGEiLCJkaXNjb3ZlcnkiXSwiaW5wdXQiOnsicGF5bWVudFJlcXVpcmVkIjp7Ing0MDJWZXJzaW9uIjoyLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovL2V4YW1wbGUuY29tL2FwaS92MS9hZ2VudC10b29scy9hdWRpdC8ifSwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiI1MDAwIiwiYXNzZXQiOiIweDgzMzU4OWZjZDZlZGI2ZTA4ZjRjN2MzMmQ0ZjcxYjU0YmRhMDI5MTMiLCJwYXlUbyI6IjB4ZDlkNmFlMWQ1YTIxMjhmZWE1MTE0NjBmYWM4ZTRkZWE1OGJhZjE1MyJ9XSwiZXh0ZW5zaW9ucyI6eyJiYXphYXIiOnsiZGVzY3JpcHRpb24iOiJBZ2VudCB3ZWIgcmVhZGluZXNzIGF1ZGl0IiwiaW5wdXRTY2hlbWEiOnsidHlwZSI6Im9iamVjdCJ9LCJvdXRwdXRTY2hlbWEiOnsidHlwZSI6Im9iamVjdCJ9fX19fSwib3V0cHV0Ijp7InNjb3JlIjo5Miwic3RhdHVzIjoicmVhZHkiLCJmaW5kaW5ncyI6W3siaWQiOiJ4NDAyLXZlcnNpb24iLCJzdGF0dXMiOiJwYXNzIiwibWVzc2FnZSI6Ing0MDIgdjIgc2lnbmFsIGlzIHByZXNlbnQuIn1dLCJtaXNzaW5nRmllbGRzIjpbXSwibm9ybWFsaXplZEJhemFhckhpbnRzIjp7InJlc291cmNlIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9hcGkvdjEvYWdlbnQtdG9vbHMvYXVkaXQvIiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYW1vdW50QXRvbWljIjoiNTAwMCIsInByaWNlVVNEQyI6MC4wMDUsInJlcXVpcmVkSGVhZGVycyI6WyJQQVlNRU5ULVNJR05BVFVSRSIsIlgtUEFZTUVOVCJdfX19LCJzY2hlbWEiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsiZGlzY292ZXJhYmxlIjp7InR5cGUiOiJib29sZWFuIn0sImNhdGVnb3J5Ijp7InR5cGUiOiJzdHJpbmcifSwidGFncyI6eyJ0eXBlIjoiYXJyYXkiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn19LCJpbnB1dCI6eyJ0eXBlIjoib2JqZWN0IiwicmVxdWlyZWQiOlsicGF5bWVudFJlcXVpcmVkIl0sInByb3BlcnRpZXMiOnsicGF5bWVudFJlcXVpcmVkIjp7InR5cGUiOiJvYmplY3QiLCJkZXNjcmlwdGlvbiI6IkRlY29kZWQgUEFZTUVOVC1SRVFVSVJFRCBvciB4NDAyIHBheW1lbnQgcmVxdWlyZW1lbnQgSlNPTi4ifSwicmVzb3VyY2VVcmwiOnsidHlwZSI6InN0cmluZyIsImRlc2NyaXB0aW9uIjoiQ2Fub25pY2FsIHJlc291cmNlIFVSTCB3aGVuIG5vdCBlbWJlZGRlZCBpbiBwYXltZW50UmVxdWlyZWQucmVzb3VyY2UudXJsLiJ9LCJpbnB1dFNjaGVtYSI6eyJ0eXBlIjoib2JqZWN0In0sIm91dHB1dFNjaGVtYSI6eyJ0eXBlIjoib2JqZWN0In19fSwib3V0cHV0Ijp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InNjb3JlIjp7InR5cGUiOiJpbnRlZ2VyIn0sInN0YXR1cyI6eyJ0eXBlIjoic3RyaW5nIn0sImZpbmRpbmdzIjp7InR5cGUiOiJhcnJheSIsIml0ZW1zIjp7InR5cGUiOiJvYmplY3QifX0sIm1pc3NpbmdGaWVsZHMiOnsidHlwZSI6ImFycmF5IiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9fSwibm9ybWFsaXplZEJhemFhckhpbnRzIjp7InR5cGUiOiJvYmplY3QifX19fX19fX0=",
      "facilitator": {
        "url": "https://api.cdp.coinbase.com/platform/v2/x402",
        "verify": "/verify",
        "settle": "/settle"
      },
      "legacy": {
        "enabled": true,
        "header": "x402-tx-hash",
        "note": "Legacy Base USDC transaction-hash receipts remain accepted for manual testing, but PAYMENT-SIGNATURE is the primary x402 path."
      }
    }
  }
}