{
  "$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-profile",
  "description": "Comprehensive Base wallet profile for agent-to-agent context. Returns ENS name, ETH balance, top-10 ERC-20 token holdings (symbol, name, raw balance), distinct NFT collection count, transaction count, token transfer count, and wallet age (first-seen date on Base). Powered by Blockscout. 5min cache. $0.02 USDC per call; AXIOM Tool Pass holders get free access.",
  "endpoint": "https://www.clawbots.org/api/tools/wallet-profile",
  "inputs": {
    "type": "object",
    "properties": {
      "address": {
        "type": "string",
        "description": "Base wallet address to profile (0x...)",
        "pattern": "^0x[a-fA-F0-9]{40}$"
      }
    },
    "required": [
      "address"
    ],
    "additionalProperties": false
  },
  "outputs": {
    "type": "object",
    "properties": {
      "address": {
        "type": "string",
        "description": "Normalized wallet address"
      },
      "chain": {
        "type": "string",
        "description": "Always 'base'"
      },
      "fetchedAt": {
        "type": "string",
        "format": "date-time"
      },
      "ens": {
        "type": [
          "string",
          "null"
        ],
        "description": "Primary ENS/Basenames name, or null"
      },
      "label": {
        "type": [
          "string",
          "null"
        ],
        "description": "Blockscout label, or null"
      },
      "isContract": {
        "type": "boolean",
        "description": "True if address is a contract, not EOA"
      },
      "ethBalance": {
        "type": "string",
        "description": "ETH balance formatted to 6 decimal places"
      },
      "txCount": {
        "type": "integer",
        "description": "Total outgoing transaction count on Base"
      },
      "tokenTransferCount": {
        "type": "integer",
        "description": "Total token transfer count on Base"
      },
      "nftCollectionCount": {
        "type": "integer",
        "description": "Distinct ERC-721/ERC-1155 collections held"
      },
      "topTokens": {
        "type": "array",
        "description": "Top-10 ERC-20 token holdings (by Blockscout order)",
        "items": {
          "type": "object",
          "properties": {
            "address": {
              "type": [
                "string",
                "null"
              ]
            },
            "symbol": {
              "type": [
                "string",
                "null"
              ]
            },
            "name": {
              "type": [
                "string",
                "null"
              ]
            },
            "decimals": {
              "type": [
                "integer",
                "null"
              ]
            },
            "rawBalance": {
              "type": "string"
            }
          }
        }
      },
      "walletFirstSeenAt": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "description": "ISO timestamp of first Base tx, or null"
      },
      "walletAgeDays": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Days since first Base tx, or null"
      }
    },
    "required": [
      "address",
      "chain",
      "fetchedAt",
      "ens",
      "label",
      "isContract",
      "ethBalance",
      "txCount",
      "tokenTransferCount",
      "nftCollectionCount",
      "topTokens",
      "walletFirstSeenAt",
      "walletAgeDays"
    ]
  },
  "creatorAddress": "0xef2cc7d15d3421629f93ffa39727f14179f31c75",
  "tags": [
    "wallet",
    "profile",
    "ens",
    "tokens",
    "nft",
    "base",
    "identity"
  ],
  "pricing": [
    {
      "amount": "0.02",
      "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": 59
  }
}
