Base NFT owner
Owner of an NFT on Base: 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 base_nft_balance, for the token's metadata base_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/base/nft-owner?contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1&tokenId=1"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/base/nft-owner?contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1&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": "Base",
"chainId": 8453,
"contract": "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",
"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 base_nft_owner, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp