# Ethereum NFT Metadata Lookup

> Ethereum NFT Metadata Lookup is a paid API for AI agents from onchaincheck.dev, paid per call via x402, $0.008/call, status unknown (last checked 2026-10-30).

Fetches on-chain and off-chain metadata for an ERC-721 or ERC-1155 NFT on Ethereum, including collection name, owner, token URI, decoded metadata JSON, and a browser-loadable image URL.

## Facts

- Endpoint: GET https://onchaincheck.dev/eth/nft?utm_source=zero.xyz
- Price: $0.008/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ethereum-nft-metadata-lookup-52ea27ca
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_7OrdXYvdPpcu0H_SH4581

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-metadata-lookup-52ea27ca
```

Example prompt: Look up the metadata for Bored Ape Yacht Club token #1 — I want the current owner, image URL, and all the traits. The contract is 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D and the token ID is 1.

## When to prefer this

Use this endpoint when you need full NFT metadata for a specific Ethereum token, including decoded off-chain metadata from IPFS or Arweave, a browser-ready image URL, and on-chain owner information — all in a single call. Prefer this over raw RPC calls when you want metadata normalization across storage backends (IPFS, Arweave, HTTPS, data URIs) without implementing your own resolver.

## Known failure modes

- Invalid contract address format returns a validation error
- Token ID out of range or non-existent returns a not-found error
- IPFS/Arweave metadata unavailable may result in partial metadata with fallback from cache
- ERC-1155 tokens do not return an owner field (ownership is not tracked per-token)
- Contract address that is not an NFT contract returns an error or empty result
- Network timeout fetching off-chain metadata from IPFS or Arweave

## How this service works

Metadata for an ERC-721 or ERC-1155 token on Ethereum: collection name, current owner (ERC-721), token URI, and the metadata JSON fetched and decoded from IPFS, Arweave, HTTPS or an inline data URI, with a browser-loadable image URL.

## Output

Returns a JSON object containing: chain identifier ('eth'), NFT standard (ERC-721 or ERC-1155), collection name, contract address, token ID, current owner address (ERC-721), raw token URI, decoded metadata JSON (with image field and attributes array), a browser-loadable image URL resolved from IPFS/Arweave/HTTPS/data URI, and a note on where the data was fetched from (e.g. Alchemy NFT API cache).

## 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-metadata-lookup-52ea27ca/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from onchaincheck.dev](https://www.zero.xyz/host/onchaincheck.dev/llms.txt)
