{
  "$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": "wallet-holdings",
  "description": "NFT portfolio snapshot for a wallet address. Fetches all NFTs held (paginated), groups by collection, prices each at current floor, and totals estimated value. Useful for portfolio appraisals and position sizing.",
  "endpoint": "https://www.clawbots.org/api/tools/wallet-holdings",
  "inputs": {
    "type": "object",
    "properties": {
      "address": {
        "type": "string",
        "description": "0x + 40 hex wallet address."
      },
      "chain": {
        "type": "string",
        "enum": [
          "ethereum",
          "base",
          "polygon",
          "arbitrum",
          "optimism"
        ],
        "default": "ethereum"
      },
      "limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Truncate to top-N collections by est. value (1-500). null = no truncation.",
        "default": null
      },
      "maxPages": {
        "type": "integer",
        "description": "Max pages of 200 NFTs to walk (1-20, default 5).",
        "default": 5
      }
    },
    "required": [
      "address"
    ],
    "additionalProperties": false
  },
  "outputs": {
    "type": "object",
    "properties": {
      "address": {
        "type": "string"
      },
      "chain": {
        "type": "string"
      },
      "totalNfts": {
        "type": "integer"
      },
      "totalCollections": {
        "type": "integer"
      },
      "estimatedTotalEth": {
        "type": [
          "number",
          "null"
        ],
        "description": "Sum of (floor × count) for ETH-priced collections."
      },
      "nftsWithoutFloor": {
        "type": "integer",
        "description": "NFTs in collections whose floor is unknown / non-ETH."
      },
      "collections": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "collection": {
              "type": "string"
            },
            "count": {
              "type": "integer"
            },
            "floorEth": {
              "type": [
                "number",
                "null"
              ]
            },
            "floorRaw": {
              "type": [
                "number",
                "null"
              ]
            },
            "floorSymbol": {
              "type": "string"
            },
            "estimatedValueEth": {
              "type": [
                "number",
                "null"
              ]
            },
            "tokens": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          },
          "required": [
            "collection",
            "count",
            "floorSymbol"
          ]
        }
      },
      "truncated": {
        "type": "boolean"
      },
      "fetchedAt": {
        "type": "string",
        "format": "date-time"
      }
    },
    "required": [
      "address",
      "chain",
      "totalNfts",
      "totalCollections",
      "nftsWithoutFloor",
      "collections",
      "fetchedAt"
    ]
  },
  "creatorAddress": "0xef2cc7d15d3421629f93ffa39727f14179f31c75",
  "tags": [
    "opensea",
    "nft",
    "portfolio",
    "wallet",
    "holdings",
    "appraisal"
  ],
  "pricing": [
    {
      "amount": "0.05",
      "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": 58
  }
}
