Get NFT balances and estimated values for any wallet address across 60+ chains via x402 micropayment.
What it does
The Zapper NFT Balances endpoint returns individual NFT holdings and their estimated USD values for one or more wallet addresses. It is part of the Zapper API suite, which provides onchain data across 60+ chains. You send a POST request with an array of 0x wallet addresses and receive a paginated list of NFTs owned, including token IDs, names, collection info, media references, and estimated values in USD. Results can be sorted by USD_WORTH, NETWORK, or COLLECTION, and optionally filtered by chain ID.
The endpoint is pay-per-call via the x402 protocol. Each request costs 1125 base units of USDC on Base (chain 8453), which equals $0.001125 per call. Payment is made via the X-Payment header using Base USDC. The endpoint also supports MPP (Tempo) as an alternative payment rail. The response schema includes totalBalanceUSD, totalTokensOwned, and a paginated byToken edge list where each node contains the NFT's tokenId, name, estimatedValue (in USD), collection metadata (name, address), and media references (mediasV3).
This endpoint is one of 16+ tools in the Zapper x402 API family, which also covers token prices, DeFi balances, transaction history, NFT collection metadata, token rankings, account identity resolution, and social swap feeds. All tools share the same POST /x402/{tool} pattern and x402/MPP payment model.
Capabilities
Use cases
- —Retrieve all NFTs held by a wallet address with estimated USD values
- —Build a portfolio dashboard showing NFT holdings across multiple chains
- —Monitor NFT accumulation or liquidation for a set of addresses
- —Sort a user's NFT collection by value to identify highest-worth items
- —Filter NFT balances to a specific chain (e.g., Base or Ethereum mainnet)
Fit
Best for
- —Agents or apps that need wallet-level NFT inventory with valuations
- —Multi-chain NFT portfolio aggregation
- —Programmatic access to NFT balance data without API keys (pay-per-call)
Not for
- —Fetching detailed NFT metadata or traits (use nft-token-metadata instead)
- —Collection-level analytics like floor price or holder count (use nft-collection-metadata instead)
- —Free/unlimited-volume NFT data needs
Quick start
curl -X POST https://public.zapper.xyz/x402/nft-balances \
-H "Content-Type: application/json" \
-H "X-Payment: <x402-payment-token>" \
-d '{"addresses":["0xd8da6bf26964af9d7eed9e03e53415d37aa96045"],"first":5}'Example
Request
{
"first": 10,
"sortBy": "USD_WORTH",
"addresses": [
"0xd8da6bf26964af9d7eed9e03e53415d37aa96045"
]
}Response
{
"data": {
"portfolioV2": {
"nftBalances": {
"byToken": {
"edges": [
{
"node": {
"token": {
"name": "CryptoPunk #1234",
"tokenId": "1234",
"mediasV3": {},
"collection": {
"name": "CryptoPunks",
"address": "0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"
},
"estimatedValue": {
"valueUsd": 5000
}
}
}
}
]
},
"totalBalanceUSD": 12345.67,
"totalTokensOwned": 42
}
}
}
}Endpoint
Quality
Full OpenAPI schema with input/output examples, live 402 challenge captured, clear pricing ($0.001125 USDC per call on Base). Response schema is documented via output examples in the Bazaar extension. Docs pages (e.g. /docs, /pricing) return 404, so no additional documentation beyond the OpenAPI spec is available.
Warnings
- —Provider docs pages (/docs, /pricing, /README) all return 404; the legacy API at /api is marked as deprecated in favor of build.zapper.xyz
- —Example response JSON is inferred from the output schema structure, not from an actual 200 response
Citations
- —Endpoint costs 1125 base units of USDC on Base (chain 8453) per call, i.e. $0.001125https://public.zapper.xyz/x402/nft-balances
- —Zapper API provides onchain data across 60+ chainshttps://public.zapper.xyz/x402/nft-balances
- —The legacy Zapper API at /api is deprecated in favor of build.zapper.xyzhttps://public.zapper.xyz/api
- —Supports both x402 and MPP payment protocolshttps://public.zapper.xyz/x402/nft-balances
- —16+ tools available at POST /x402/{tool} patternhttps://public.zapper.xyz/x402/nft-balances