NFT analysis pack: owner, metadata, holdings and collection
One call to analyse an NFT: its current owner, its metadata (name, description, image, traits from data:, https or ipfs), how many NFTs of the collection that owner holds, and the collection contract (name, symbol, whether it is an upgradeable proxy). ERC-721 on Base, Ethereum, Arbitrum, Optimism or Polygon. Cheaper than the tools bought one by one. Use before buying, listing or verifying an NFT.
Inputs
| Name | Type | Description |
|---|---|---|
contract (required) | string | 0x ERC-721 collection contract address |
tokenId (required) | string | Token id, a whole number |
chain | string | Network: eth (default), base, arb, op or polygon |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/pack/nft-analysis?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/pack/nft-analysis?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"pack": "nft-analysis",
"chain": "eth",
"contract": "0xc36442b4a4522e871399cd717abdd847ab11fe88",
"tokenId": "1",
"collection": {
"name": "Uniswap V3 Positions NFT-V1",
"symbol": "UNI-V3-POS"
},
"owner": "0x50ec05ade8280758e2077fcbc08d878d4aef79c3",
"ownerHoldings": "4",
"metadata": {
"name": "Uniswap - 0.3% - UNI/WETH - 39.323<>157.24",
"description": "This NFT represents a liquidity position…"
},
"proxy": {
"isProxy": false,
"kind": "none"
},
"failed": {}
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is pack_nft_analysis, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp