Arbitrum NFT owner
Owner of an NFT on Arbitrum One: the wallet that holds one ERC-721 token id right now (ownerOf), plus the collection's name and symbol. Use to verify who holds an NFT before a trade, a mint gate or an airdrop; for how many a wallet holds use arb_nft_balance, for the token's metadata arb_nft_metadata. A missing contract is 404, a token that does not exist 422, both uncharged.
Inputs
| Name | Type | Description |
|---|---|---|
contract (required) | string | 0x ERC-721 collection contract address |
tokenId (required) | string | Token id, a whole number |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/arb/nft-owner?contract=0xC36442b4a4522E871399CD717aBDD847Ab11FE88&tokenId=1"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/arb/nft-owner?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
{
"chain": "Arbitrum One",
"chainId": 42161,
"contract": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
"tokenId": "1",
"owner": "0x69e67aad5495a48c4ef3f770d93a99935e1dc90d",
"name": "Uniswap V3 Positions NFT-V1",
"symbol": "UNI-V3-POS"
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is arb_nft_owner, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp