# Ethereum NFT Token Metadata

> Ethereum NFT Token Metadata 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 on-chain and off-chain metadata for an ERC-721 or ERC-1155 token on Ethereum mainnet, including collection name, owner, token URI, and fully resolved metadata JSON with a browser-loadable image URL.

## Facts

- Endpoint: GET https://ca-tax-api-mainnet.lxtap.workers.dev/eth/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/ethereum-nft-token-metadata-75e48c66
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_2Ph2KPRj2ZO7WIi7v3hrN

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 ethereum-nft-token-metadata-75e48c66
```

Example prompt: Can you pull the full metadata and image for token ID 1234 from the CryptoPunks contract at 0xb47e3cd837dDF8e4c57F05d70Ab865de6e193BBB on Ethereum mainnet?

## When to prefer this

Use this endpoint when you need fully resolved NFT metadata on Ethereum mainnet — including off-chain content fetched from IPFS, Arweave, or HTTPS — in a single call. Prefer it over raw RPC calls when you need the decoded metadata JSON and a browser-ready image URL without implementing gateway resolution yourself. Choose the Base equivalent for Base-chain NFTs or the Solana endpoint for SPL tokens.

## Known failure modes

- Invalid contract address format returns a validation error
- Non-existent or burned token ID returns a not-found or revert error
- IPFS/Arweave gateway timeout may delay or fail metadata resolution
- Contracts without standard tokenURI method may return incomplete data
- Malformed or unparseable metadata JSON at the token URI returns partial results
- Non-NFT contract address returns an error or empty response

## 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 a JSON object containing the collection name, current owner address (for ERC-721), token URI, and fully decoded metadata JSON fetched from IPFS, Arweave, HTTPS, or an inline data URI — including a browser-loadable image URL and any token attributes or description fields present in 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 Ethereum"
      }
     },
     "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": "eth",
  "owner": "0x46EFbAedc92067E6d60E84ED6395099723252496",
  "tokenId": "1",
  "contract": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D",
  "imageUrl": "https://nft2-cdn.alchemy.com/eth-mainnet/65558a4d0c5b0c56fbc50bf03f55e3fa",
  "metadata": {
   "image": "ipfs://QmPbxeGcXhYQQNgsC6a36dDyYUcHgMLnGKnF8pVFmGsvqi",
   "attributes": [
    {
     "value": "Grin",
     "trait_type": "Mouth"
    },
    {
     "value": "Vietnam Jacket",
     "trait_type": "Clothes"
    },
    {
     "value": "Orange",
     "trait_type": "Background"
    },
    {
     "value": "Blue Beams",
     "trait_type": "Eyes"
    },
    {
     "value": "Robot",
     "trait_type": "Fur"
    }
   ]
  },
  "standard": "ERC-721",
  "tokenUri": "ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/1",
  "collection": "BoredApeYachtClub",
  "fetchedFrom": "Alchemy NFT API cache (token URI host unavailable)"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ethereum-nft-token-metadata-75e48c66/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)
