{
  "$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": "agent-binding-scout",
  "description": "Discovery primitive for ERC-8217 agent-bound NFTs in any OpenSea collection. Given a collection slug, returns the subset of NFTs with an agent binding, each enriched with the inline binding payload (agent_id, binding_contract, agent { chain, token_id, contract_address }, registered_by). Built on OpenSea's `has_agent_binding=true` filter (May 2026). Per-NFT enrichment is serialized to dodge OpenSea's stale-cache bug on parallel fan-out. 60s in-memory cache per (collection, chain, limit).",
  "endpoint": "https://www.clawbots.org/api/tools/agent-binding-scout",
  "inputs": {
    "type": "object",
    "properties": {
      "collection": {
        "type": "string",
        "description": "OpenSea collection slug (e.g. 'normies'). Required."
      },
      "chain": {
        "type": "string",
        "default": "ethereum",
        "description": "Chain identifier used for the per-NFT enrichment fetch. Defaults to 'ethereum'."
      },
      "limit": {
        "type": "integer",
        "minimum": 1,
        "maximum": 10,
        "default": 5,
        "description": "Number of bound NFTs to return. Capped at 10 — each entry costs one additional OpenSea call."
      }
    },
    "required": [
      "collection"
    ],
    "additionalProperties": false
  },
  "outputs": {
    "type": "object",
    "properties": {
      "collection": {
        "type": "string"
      },
      "chain": {
        "type": "string"
      },
      "fetchedAt": {
        "type": "string",
        "format": "date-time"
      },
      "bindingsFound": {
        "type": "integer"
      },
      "next": {
        "type": [
          "string",
          "null"
        ],
        "description": "Opaque cursor from OpenSea for the next page, or null when exhausted."
      },
      "bindings": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "nft": {
              "type": "object",
              "properties": {
                "identifier": {
                  "type": "string"
                },
                "contract": {
                  "type": "string"
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "image_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "opensea_url": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            },
            "binding": {
              "type": [
                "object",
                "null"
              ],
              "description": "ERC-8217 agent_binding payload from OpenSea's get_nft endpoint",
              "properties": {
                "agent_id": {
                  "type": "string",
                  "description": "ERC-8004 agent token id"
                },
                "binding_contract": {
                  "type": "string",
                  "description": "ERC-8217 binding contract address"
                },
                "agent": {
                  "type": "object",
                  "properties": {
                    "chain": {
                      "type": "string"
                    },
                    "token_id": {
                      "type": "string"
                    },
                    "contract_address": {
                      "type": "string",
                      "description": "ERC-8004 adapter contract for the agent"
                    }
                  }
                },
                "registered_by": {
                  "type": "string",
                  "description": "Wallet that registered the binding"
                }
              }
            }
          }
        }
      }
    },
    "required": [
      "collection",
      "chain",
      "fetchedAt",
      "bindingsFound",
      "next",
      "bindings"
    ]
  },
  "creatorAddress": "0xef2cc7d15d3421629f93ffa39727f14179f31c75",
  "tags": [
    "nft",
    "agent-binding",
    "erc-8217",
    "erc-8004",
    "opensea",
    "discovery",
    "x402",
    "base"
  ],
  "pricing": [
    {
      "amount": "0.01",
      "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": 14
  }
}
