# NFT Token Lookup — Owner, URI & Metadata by Contract and Token ID

> NFT Token Lookup — Owner, URI & Metadata by Contract and Token ID is a paid API for AI agents from store.agentexchange.work, paid per call via x402, $0.09/call, status unknown (last checked 2026-09-13).

Returns on-chain ownership, token URI, and collection metadata for a specific ERC-721 NFT given a contract address and token ID across multiple EVM chains.

## Facts

- Endpoint: GET https://store.agentexchange.work/chain/nft
- Price: $0.09/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/nft-token-lookup-owner-uri-metadata-by-contract-and-token-id-f6220384
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Tfx7gmJpXpIX3OwMaCQNb

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability nft-token-lookup-owner-uri-metadata-by-contract-and-token-id-f6220384
```

Example prompt: Who owns token ID 1 of the NFT contract 0xd8da6bf26964af9d7eed9e03e53415d37aa96045 on Base, and what's its token URI?

## When to prefer this

Use this endpoint when you need a lightweight, single-call ERC-721 NFT ownership and metadata lookup across EVM chains (Base, Ethereum, Optimism, Arbitrum, Polygon, Gnosis) without setting up a full blockchain node or indexer. Prefer it over general-purpose RPC calls (eth_call) when you want structured NFT output including owner, token URI, and collection info in one response. Best for agents verifying NFT ownership, resolving token metadata, or enriching NFT data in pipelines.

## Known failure modes

- Token does not exist — returns exists: false with no owner or URI
- Invalid contract address format — likely returns an error or empty response
- Unsupported chain parameter — defaults to Base or returns an error
- Token ID in wrong format — may fail if hex/decimal conversion is not handled
- Rate limit or payment failure — x402 payment not accepted or quota exceeded
- Contract is not ERC-721 — may return unexpected or empty data

## How this service works

Machine-payable data APIs for AI agents across web search, on-chain reads, trading data, market judgment, and AI visibility. The canonical x402 catalog currently exposes 85 paid routes. Pay per call in USDC via x402 on Base. No API keys, no signup.

## Output

A JSON object containing: whether the token exists on-chain (exists: boolean), the current owner's wallet address, the token URI (often an IPFS or HTTP URL pointing to metadata), a metadata_hint about how to resolve the URI, and the collection's name and symbol. Also echoes back the queried chain, contract, and token_id for traceability.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "contract",
      "token_id"
     ],
     "properties": {
      "chain": {
       "type": "string",
       "description": "base|ethereum|optimism|arbitrum|polygon|gnosis (default base)"
      },
      "contract": {
       "type": "string",
       "description": "ERC-721 contract address (0x...)"
      },
      "token_id": {
       "type": "string",
       "description": "Token ID (decimal or 0x hex)"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "owner": {
       "type": "string"
      },
      "exists": {
       "type": "boolean"
      },
      "token_uri": {
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "chain": "base",
  "owner": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
  "exists": true,
  "contract": "0x...",
  "token_id": "1",
  "token_uri": "ipfs://Qm...",
  "metadata_hint": "ipfs — resolve via a gateway",
  "collection_name": "Example",
  "collection_symbol": "EXM"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/nft-token-lookup-owner-uri-metadata-by-contract-and-token-id-f6220384/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from store.agentexchange.work](https://www.zero.xyz/host/store.agentexchange.work/llms.txt)
