Base NFT balance
How many NFTs of one ERC-721 collection a wallet holds on Base (balanceOf), with the collection's name and symbol. Use to check a holder before a token-gated action or to see whether a wallet still holds a collection; for who holds one token id use base_nft_owner. Both inputs are 0x addresses; a missing contract is 404, a contract that is not ERC-721 422, both uncharged.
Inputs
| Name | Type | Description |
|---|---|---|
contract (required) | string | 0x ERC-721 collection contract address |
address (required) | string | 0x wallet address |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/base/nft-balance?contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/base/nft-balance?contract=0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1&address=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045&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",
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"balance": "2",
"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_balance, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp