Identity & Enrichment · x402

Threat IP lookup: supply a single IPv4/IPv6 address and receive a sanitized dossier whe…

Threat IP lookup: supply a single IPv4/IPv6 address and receive a sanitized dossier when the address is in our ledger, or a negative match with network flags when it is not. Billing uses the x402 `upto` scheme — buyers authorize up to $0.02; settled charge is…

by war-tracker.com · discovered, not yet claimed by its owner · updated 2026-09-08

Mirrored from Coinbase's public x402 Bazaar. The description is the provider's own text and has not been reviewed here; the payment requirements are copied as published.

What it does

Threat IP lookup: supply a single IPv4/IPv6 address and receive a sanitized dossier when the address is in our ledger, or a negative match with network flags when it is not. Billing uses the x402 `upto` scheme — buyers authorize up to $0.02; settled charge is $0.02 on ledger match, $0.001 on miss or invalid input. EVM `upto` facilitators only (Permit2 + facilitatorAddress). Responses expose opaque threat class labels, coarse confidence, timing/counts, and ip-api mobile/proxy/hosting flags —…

Tags: bazaar

Use with an agent

  1. Discover. Agents find this listing with GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP tool search_resources, or /discovery/resources.
  2. Inspect. Fetch /resources/8243.json for the price and payment options.
  3. Pay. Call GET https://war-tracker.com/api/v1/threat-ips/lookup. The provider answers 402 with its payment requirements. An x402 client signs one of the options below and retries with PAYMENT-SIGNATURE.
  4. Execute. The provider returns 200 with the data. Agent Bazaar is not in the request path and never sees your payment.

For humans

You don't need an account or an API key; you need a wallet holding a small amount of USDC on Base, Polygon, and an x402-capable client (see the examples below). Call the endpoint unpaid first to see exactly what it asks for.

Pricing & payment

Price
$0.021 / request
Protocol
x402 v2
Auth
No account or API key. Pay per request.
Networks
Base, Polygon
Uptime
1 of the last 1 checks answered
Calls (30d)
1 · 1 unique payers (third-party data from the public x402 Bazaar)

x402 payment requirements

SchemeNetworkAssetAmountPay toTimeout
uptoBase
eip155:8453
USDC$0.0210x2633ba64e28A6F6989c343Cb98d43Ea06Bd9bd8960s
uptoPolygon
eip155:137
USDC$0.0210x2633ba64e28A6F6989c343Cb98d43Ea06Bd9bd8960s
uptoBase
eip155:8453
USDC$0.020x9FfDCaEAf9ef166b4fA16f8707923CB89F2A09fe60s
accepts[] (raw JSON)
[
  {
    "scheme": "upto",
    "network": "eip155:8453",
    "payTo": "0x2633ba64e28A6F6989c343Cb98d43Ea06Bd9bd89",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "21000",
    "amountUsd": 0.021,
    "maxTimeoutSeconds": 60
  },
  {
    "scheme": "upto",
    "network": "eip155:137",
    "payTo": "0x2633ba64e28A6F6989c343Cb98d43Ea06Bd9bd89",
    "asset": "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
    "amount": "21000",
    "amountUsd": 0.021,
    "maxTimeoutSeconds": 60
  },
  {
    "scheme": "upto",
    "network": "eip155:8453",
    "payTo": "0x9FfDCaEAf9ef166b4fA16f8707923CB89F2A09fe",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "20000",
    "amountUsd": 0.02,
    "maxTimeoutSeconds": 60
  }
]

Schemas

Output schema (JSON Schema)
{
  "bazaar": {
    "info": {
      "input": {
        "method": "GET",
        "queryParams": {
          "ip": "8.8.8.8"
        },
        "type": "http"
      },
      "output": {
        "example": {
          "hosting": true,
          "ip": "8.8.8.8",
          "licensing": "By purchasing this data you agree not to share it with third parties without express written consent from war-tracker.com. If this data is shared with third parties, you accept a penalty of $1 USDC per infraction.",
          "matched": false,
          "mobile": false,
          "proxy": false
        },
        "type": "json"
      }
    },
    "routeTemplate": "/api/v1/threat-ips/lookup",
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "input": {
          "additionalProperties": false,
          "properties": {
            "method": {
              "enum": [
                "GET"
              ],
              "type": "string"
            },
            "queryParams": {
              "properties": {
                "ip": {
                  "description": "IPv4 or IPv6 address to look up.",
                  "type": "string"
                }
              },
              "required": [
                "ip"
              ],
              "type": "object"
            },
            "type": {
              "const": "http",
              "type": "string"
            }
          },
          "required": [
            "type",
            "method"
          ],
          "type": "object"
        },
        "output": {
          "properties": {
            "example": {
              "properties": {
                "classes": {
                  "description": "Opaque buyer-facing class labels (hit only).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "confidence": {
                  "enum": [
                    "high",
                    "medium",
                    "low"
                  ],
                  "type": "string"
                },
                "country": {
                  "type": "string"
                },
                "error": {
                  "enum": [
                    "invalid_ip"
                  ],
                  "type": "string"
                },
                "first_seen": {
                  "format": "date-time",
                  "type": "string"
                },
                "hit_count": {
                  "minimum": 0,
                  "type": "integer"
                },
                "hosting": {
                  "type": "boolean"
                },
                "invalid": {
                  "type": "boolean"
                },
                "ip": {
                  "type": "string"
                },
                "last_seen": {
                  "format": "date-time",
                  "type": "string"
                },
                "licensing": {
                  "type": "string"
                },
                "matched": {
                  "type": "boolean"
                },
                "mobile": {
                  "type": "boolean"
                },
                "proxy": {
                  "type": "boolean"
                }
              },
              "required": [
                "matched",
                "licensing"
              ],
              "type": "object"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}
Example shape — generated from the schema, not a captured live response
null

Examples

curl
curl "https://war-tracker.com/api/v1/threat-ips/lookup"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://war-tracker.com/api/v1/threat-ips/lookup");
if (res.status === 402) {
  const { accepts } = await res.json();
  // pay one of accepts[] via an x402 client, then retry with the payment header
}
Python
import httpx
res = httpx.get("https://war-tracker.com/api/v1/threat-ips/lookup")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Details

Provider
war-tracker.com
Endpoint
https://war-tracker.com/api/v1/threat-ips/lookup
Machine-readable
/resources/8243.json