# Ethereum NFT Metadata Resolver

> Ethereum NFT Metadata Resolver is a paid API for AI agents from agentshelf.syntexa.ch, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-21).

Fetches and parses on-chain ERC-721 or ERC-1155 token metadata (name, image, attributes, etc.) for a given Ethereum contract address and token ID, resolving only from IPFS, Arweave, or data URIs.

## Facts

- Endpoint: POST https://agentshelf.syntexa.ch/v1/eth-nft-metadata?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ethereum-nft-metadata-resolver-ab6b94c6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_79xwZLUjERiebUHWoqm0V

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-resolver-ab6b94c6 -d '<json body>'
```

Example prompt: Can you fetch the metadata for token ID 1 of the ERC-721 contract at 0x1111111111111111111111111111111111111111 on Ethereum — I want to see the name, image, and any traits?

## When to prefer this

Use this endpoint when you need to resolve and parse NFT token metadata from Ethereum mainnet for ERC-721 or ERC-1155 tokens, especially when the metadata is stored on IPFS or Arweave. It is preferable to calling the blockchain and IPFS yourself because it handles {id} substitution for ERC-1155, gateway resolution, and JSON parsing in one step. Best for agents that need structured NFT metadata (name, image, attributes) without managing raw RPC calls or IPFS gateway logic.

## Known failure modes

- Invalid or non-existent contract address returns an error
- Token ID does not exist on the contract returns an error
- Token URI points to an unsupported gateway (not IPFS or Arweave) returns an error
- Malformed or unparseable metadata JSON at the resolved URI returns an error
- Missing or incorrect token standard causes wrong ABI call and an error
- Unpaid or underpaid request returns a 402 Payment Required response

## How this service works

Call when an agent needs parsed ERC-721 or ERC-1155 metadata for an Ethereum contract and token id. The URI is fetched only from fixed IPFS and Arweave gateways, or parsed from a data JSON URI. ERC-1155 substitutes {id}. No arbitrary URL. Send JSON {"contract":"0x1111111111111111111111111111111111111111","token_id":"1"}. Exact $0.005 USDC on Base. Try unpaid POST /v1/sandbox/eth-nft-metadata first.

## Output

A parsed JSON object containing the NFT token's metadata fields such as name, description, image URL, animation URL, external URL, and an array of attributes/traits, resolved from IPFS, Arweave, or an inline data URI.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "contract": {
   "type": "string",
   "examples": [
    "0x1111111111111111111111111111111111111111"
   ],
   "description": "NFT contract on Ethereum mainnet. Example: 0x1111111111111111111111111111111111111111. tokenURI or uri is read-only."
  },
  "standard": {
   "enum": [
    "erc721",
    "erc1155"
   ],
   "type": "string",
   "default": "erc721",
   "description": "Token standard. erc721 (default) uses ownerOf or tokenURI. erc1155 uses balanceOf(owner, id) or uri(id) with {id} substitution."
  },
  "token_id": {
   "type": "string",
   "pattern": "^(0|[1-9]\\d*)$",
   "examples": [
    "1"
   ],
   "description": "Token id as a decimal integer. Example: 1. ERC-1155 substitutes this id into {id} in the URI. A missing token errors."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ethereum-nft-metadata-resolver-ab6b94c6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agentshelf.syntexa.ch](https://www.zero.xyz/host/agentshelf.syntexa.ch/llms.txt)
