{
  "$comment": "GENERATED FROM api/_tools/<slug>/route.mjs — do not edit by hand",
  "type": "https://eips.ethereum.org/EIPS/eip-8257#tool-manifest-v1",
  "name": "sweep-quote",
  "description": "Quote a real NFT sweep cost on OpenSea. Walks up the best-listing curve for a collection, deduplicates by token ID, and returns how many NFTs fit a given ETH budget — with average, floor, ceiling, slippage, budget utilization, and the token IDs that would be acquired.",
  "endpoint": "https://www.clawbots.org/api/tools/sweep-quote",
  "inputs": {
    "type": "object",
    "properties": {
      "collection": {
        "type": "string",
        "description": "OpenSea collection slug (lowercase a-z, 0-9, dash). Legacy alias: `slug`."
      },
      "budgetEth": {
        "type": "number",
        "description": "ETH budget for the sweep (0 < x ≤ 10000). Legacy alias: `budget`."
      },
      "maxPages": {
        "type": "integer",
        "description": "Max OpenSea pages to walk (default 30, max 60).",
        "default": 30
      }
    },
    "required": [
      "collection",
      "budgetEth"
    ],
    "additionalProperties": false
  },
  "outputs": {
    "type": "object",
    "properties": {
      "slug": {
        "type": "string",
        "description": "Collection slug that was quoted"
      },
      "budgetEth": {
        "type": "number",
        "description": "Echoed input budget in ETH"
      },
      "sweptCount": {
        "type": "integer",
        "description": "Number of NFTs that would be acquired"
      },
      "totalEth": {
        "type": "number",
        "description": "Total ETH spent across the swept set"
      },
      "avgEth": {
        "type": "number",
        "description": "Average price per acquired NFT in ETH"
      },
      "floorEth": {
        "type": "number",
        "description": "Cheapest live listing seen, in ETH"
      },
      "ceilingEth": {
        "type": "number",
        "description": "Price of the last (most expensive) NFT acquired"
      },
      "slippagePct": {
        "type": "number",
        "description": "(ceiling/floor - 1) * 100"
      },
      "budgetUsedPct": {
        "type": "number",
        "description": "(totalEth / budgetEth) * 100"
      },
      "tokenIds": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Token IDs that would be acquired, cheapest-first"
      },
      "contract": {
        "type": [
          "string",
          "null"
        ],
        "description": "NFT contract address (lowercased) inferred from the first listing"
      },
      "pagesScanned": {
        "type": "integer",
        "description": "Pages of OpenSea best-listings walked"
      },
      "listingsSeen": {
        "type": "integer",
        "description": "Raw listings observed across the walk"
      },
      "uniqueTokens": {
        "type": "integer",
        "description": "Distinct token IDs observed (after dedup)"
      },
      "fetchedAt": {
        "type": "string",
        "format": "date-time"
      }
    },
    "required": [
      "slug",
      "budgetEth",
      "sweptCount",
      "totalEth",
      "avgEth",
      "floorEth",
      "ceilingEth",
      "slippagePct",
      "budgetUsedPct",
      "tokenIds",
      "pagesScanned",
      "listingsSeen",
      "uniqueTokens",
      "fetchedAt"
    ]
  },
  "creatorAddress": "0xef2cc7d15d3421629f93ffa39727f14179f31c75",
  "tags": [
    "opensea",
    "nft",
    "sweep",
    "floor",
    "trading",
    "base"
  ],
  "pricing": [
    {
      "amount": "0.03",
      "asset": "USDC",
      "recipient": "0xef2cc7d15d3421629f93ffa39727f14179f31c75",
      "protocol": "x402"
    }
  ],
  "authentication": [
    {
      "type": "siwe",
      "description": "Sign In With Ethereum. Holders of the Axiom Tool Pass NFT get free unlimited access. Sign a SIWE message proving wallet ownership; the server verifies your wallet holds the pass on-chain.",
      "header": "Authorization: SIWE <base64url(message)>.<0xsignature>",
      "passContract": "0xfc9ce3990f85fA1A3a0eE51a710642396a6Cad82",
      "chain": "base",
      "chainId": 8453,
      "collection": "https://opensea.io/collection/axiom-tool-pass"
    },
    {
      "type": "x402",
      "description": "Pay per call in USDC on Base via the x402 protocol. No account or API key needed.",
      "header": "x-payment: <x402 authorization>"
    }
  ],
  "onChain": {
    "registry": "0x265BB2DBFC0A8165C9A1941Eb1372F349baD2cf1",
    "chainId": 8453,
    "toolId": 19
  }
}
