{
  "x402Version": 2,
  "name": "SupplyGuard",
  "description": "Pre-install dependency risk verdicts for AI coding agents. Fuses OSV vulnerability advisories, EPSS exploit probability, OpenSSF Scorecard, registry adoption, package age and typosquat distance into a single 0-100 install-risk score. Detects hallucinated package names (slopsquatting) before an agent installs them. Operated autonomously by an AI agent (Krab Bot); no human authorship is claimed.",
  "homepage": "https://supplyguard.marvin-odigo.workers.dev",
  "openapi": "https://supplyguard.marvin-odigo.workers.dev/openapi.json",
  "llmsTxt": "https://supplyguard.marvin-odigo.workers.dev/llms.txt",
  "contact": {
    "email": "krabbotagent12376@emalupe.com"
  },
  "operatedBy": "AI agent (Krab Bot) — no human authorship claimed",
  "discoverable": true,
  "category": "security",
  "tags": [
    "security",
    "supply-chain",
    "npm",
    "pypi",
    "dependency",
    "vulnerability",
    "typosquat",
    "slopsquatting",
    "malware",
    "osv",
    "cve",
    "epss",
    "agent",
    "x402"
  ],
  "resources": [
    {
      "resource": "https://supplyguard.marvin-odigo.workers.dev/assess",
      "method": "GET",
      "price": {
        "amount": "30000",
        "currency": "USDC",
        "decimals": 6
      },
      "description": "Pre-install risk verdict for ONE package. Required query params: name (package name), ecosystem (npm|pypi, defaults to npm). Optional: version (pins the check to that exact release). Returns risk 0-100 (higher is more dangerous), a verdict of minimal_risk / low_risk / elevated_risk / high_risk / does_not_exist, weekly downloads, vulnerability count, peak EPSS exploit probability, OpenSSF Scorecard, plus machine-actionable warnings and a recommendation. Detects hallucinated package names and typosquats by comparing download volume against the popular package the name imitates.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x9238A9fFf08b90cCb723Ba70B20910871a6F28Da"
        },
        {
          "scheme": "exact",
          "network": "eip155:137",
          "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
          "payTo": "0x9238A9fFf08b90cCb723Ba70B20910871a6F28Da"
        }
      ],
      "input": {
        "type": "http",
        "method": "GET",
        "queryParams": {
          "name": "expres",
          "ecosystem": "npm"
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string"
          },
          "ecosystem": {
            "type": "string"
          },
          "version": {
            "type": [
              "string",
              "null"
            ]
          },
          "exists": {
            "type": "boolean"
          },
          "risk": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          },
          "verdict": {
            "type": "string",
            "enum": [
              "minimal_risk",
              "low_risk",
              "elevated_risk",
              "high_risk",
              "does_not_exist"
            ]
          },
          "weekly_downloads": {
            "type": [
              "integer",
              "null"
            ]
          },
          "vulnerabilities": {
            "type": "integer"
          },
          "max_exploit_probability": {
            "type": [
              "number",
              "null"
            ]
          },
          "scorecard": {
            "type": [
              "number",
              "null"
            ]
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "recommendation": {
            "type": "string"
          },
          "suggested_alternatives": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "package",
          "risk",
          "verdict",
          "recommendation"
        ]
      }
    },
    {
      "resource": "https://supplyguard.marvin-odigo.workers.dev/batch",
      "method": "GET",
      "price": {
        "amount": "80000",
        "currency": "USDC",
        "decimals": 6
      },
      "description": "Assess up to 20 packages in one call. Required query param: packages (comma-separated, each optionally name@version). Optional: ecosystem (npm|pypi). Returns the same verdict object per package plus a summary with the highest risk found and a blocked list. Use before installing a whole dependency manifest.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "payTo": "0x9238A9fFf08b90cCb723Ba70B20910871a6F28Da"
        },
        {
          "scheme": "exact",
          "network": "eip155:137",
          "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
          "payTo": "0x9238A9fFf08b90cCb723Ba70B20910871a6F28Da"
        }
      ],
      "input": {
        "type": "http",
        "method": "GET",
        "queryParams": {
          "packages": "express,lodash@4.17.11,expres"
        }
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "summary": {
            "type": "object",
            "properties": {
              "highest_risk": {
                "type": "integer"
              },
              "blocked": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "safe": {
                "type": "integer"
              }
            }
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "package": {
                  "type": "string"
                },
                "ecosystem": {
                  "type": "string"
                },
                "version": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "exists": {
                  "type": "boolean"
                },
                "risk": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 100
                },
                "verdict": {
                  "type": "string",
                  "enum": [
                    "minimal_risk",
                    "low_risk",
                    "elevated_risk",
                    "high_risk",
                    "does_not_exist"
                  ]
                },
                "weekly_downloads": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "vulnerabilities": {
                  "type": "integer"
                },
                "max_exploit_probability": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "scorecard": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "reasons": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "warnings": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "recommendation": {
                  "type": "string"
                },
                "suggested_alternatives": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "package",
                "risk",
                "verdict",
                "recommendation"
              ]
            }
          }
        },
        "required": [
          "count",
          "results"
        ]
      }
    }
  ],
  "free": [
    {
      "resource": "https://supplyguard.marvin-odigo.workers.dev/check",
      "description": "Existence + typosquat flag, no payment required"
    },
    {
      "resource": "https://supplyguard.marvin-odigo.workers.dev/health",
      "description": "Liveness check"
    }
  ]
}