# Base NFT Token Metadata Lookup

> Base NFT Token Metadata Lookup is a paid API for AI agents from ca-tax-api-mainnet.lxtap.workers.dev, paid per call via x402, $0.008/call, status unknown (last checked 2026-10-23).

Fetches full metadata for an ERC-721 or ERC-1155 token on Base: collection name, owner, token URI, and decoded metadata JSON (including a browser-loadable image URL) from IPFS, Arweave, HTTPS, or inline data URIs.

## Facts

- Endpoint: GET https://ca-tax-api-mainnet.lxtap.workers.dev/base/nft?utm_source=zero.xyz
- Price: $0.008/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-23
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/base-nft-token-metadata-lookup-26897633
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WAhieyqTVZYH42xTnbiCs

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 base-nft-token-metadata-lookup-26897633
```

Example prompt: Look up the full metadata for token ID 1234 in the Base NFT contract at 0xd4e4078ca3495DE5B1d4dB434BEbc5a986197782 — I want the collection name, current owner, and a browser-loadable image URL.

## When to prefer this

Use this endpoint when you need rich, decoded NFT metadata for a specific token on Base — particularly when the metadata is stored on IPFS or Arweave and you need it resolved to a browser-loadable image URL without building your own gateway logic. Prefer this over raw RPC calls when you also need the owner and collection name in one round-trip.

## Known failure modes

- Invalid contract address format returns a validation error
- Token ID does not exist on the contract returns a not-found or revert error
- IPFS or Arweave gateway unavailable causes metadata fetch failure
- Contract is not an ERC-721 or ERC-1155 causes decode failure
- Payment not provided or insufficient USDC results in HTTP 402

## How this service works

Pay-per-call data for AI agents, paid in USDC on Base with x402: token risk checks (rug check) on Base, Ethereum, Arbitrum, Optimism, Polygon and Solana, onchain reads (balances, transactions, gas, contracts, NFTs, whale trades, new pools, ENS and Basenames), ECB exchange rates, and Canadian sales tax and business days.

## Output

Returns the NFT collection name, current owner address (for ERC-721), token URI, and the fully decoded metadata JSON fetched from wherever it is stored (IPFS, Arweave, HTTPS, or inline data URI), including a browser-loadable image URL derived from the metadata.

## 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",
      "tokenId"
     ],
     "properties": {
      "tokenId": {
       "type": "string",
       "pattern": "^\\d{1,78}$",
       "description": "Token id as a decimal string"
      },
      "contract": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "NFT collection contract on Base"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "chain": "base",
  "owner": "0x2211d1D0020DAEA8039E46Cf1367962070d77DA9",
  "tokenId": "20339294690710288616623341905746354430592698944139542544116293784975432873833",
  "contract": "0x03c4738Ee98aE44591e1A4A4F3CaB6641d95DD9a",
  "imageUrl": "https://www.base.org/api/basenames/jesse.base.eth/assets/cardImage.svg",
  "metadata": {
   "name": "jesse.base.eth",
   "image": "https://www.base.org/api/basenames/jesse.base.eth/assets/cardImage.svg",
   "description": "jesse.base.eth, a Basename",
   "nameExpires": 2510960049,
   "external_url": "https://www.base.org/name/jesse"
  },
  "standard": "ERC-721",
  "tokenUri": "https://base.org/api/basenames/metadata/20339294690710288616623341905746354430592698944139542544116293784975432873833",
  "collection": "Basenames",
  "fetchedFrom": "https://base.org/api/basenames/metadata/20339294690710288616623341905746354430592698944139542544116293784975432873833"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/base-nft-token-metadata-lookup-26897633/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ca-tax-api-mainnet.lxtap.workers.dev](https://www.zero.xyz/host/ca-tax-api-mainnet.lxtap.workers.dev/llms.txt)
