# OpenVerbs NFT Metadata Resolver

> OpenVerbs NFT Metadata Resolver is a paid API for AI agents from chain.openverbs.com, paid per call via x402, $0.006/call, status unknown (last checked 2026-09-13).

Resolves an NFT (contract address + tokenId) on a specified EVM chain into normalized metadata including name, description, image URL, attributes, and token standard (ERC-721 or ERC-1155).

## Facts

- Endpoint: POST https://chain.openverbs.com/v1/nft-metadata
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/openverbs-nft-metadata-resolver-00596192
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_i9nzdU0Gm_PKLKwD4XR4z

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 openverbs-nft-metadata-resolver-00596192 -d '<json body>'
```

Example prompt: Can you look up the metadata for token ID 1234 of the NFT contract 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13d on Ethereum — I want the name, image, and any traits it has.

## When to prefer this

Use this endpoint when you need normalized, ready-to-display NFT metadata for a specific token on a supported EVM chain (Ethereum, Base, Arbitrum, Optimism, Polygon). It handles the full resolution pipeline — on-chain tokenURI read, IPFS/Arweave/HTTP metadata fetch, and image URL normalization — in a single call. Prefer this over raw RPC calls when you want a clean, consistent output format without building your own IPFS gateway or metadata normalization logic.

## Known failure modes

- Non-NFT contract address returns `found: false` instead of metadata
- Invalid contract address format (must be 0x-prefixed 40-char hex) causes validation error
- Token ID not minted or out of range returns an error or `found: false`
- Unsupported chain name causes validation error (must be ethereum, base, arbitrum, optimism, or polygon)
- Unreachable or malformed tokenURI/metadata document may result in partial or failed response
- IPFS or Arweave metadata that is offline may cause fetch failure

## How this service works

Resolve one NFT (contract + tokenId) into normalized metadata: name, description, image, attributes and token standard (ERC-721 or ERC-1155). Reads the on-chain tokenURI/uri, then fetches and normalizes the metadata document (ipfs/ar/http/data), rewriting ipfs image links to a gateway URL. Returns `found:false` for non-NFT contracts. Live reads with automatic endpoint fallback.

## Output

Returns a normalized metadata object including: NFT name, description, image URL (with IPFS links rewritten to a gateway URL), array of attributes/traits, and token standard (ERC-721 or ERC-1155). Returns `found: false` if the contract is not an NFT contract.

## Request schema (JSON Schema)

```json
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "type": "string",
     "enum": [
      "POST"
     ]
    },
    "bodyType": {
     "type": "string",
     "enum": [
      "json",
      "form-data",
      "text"
     ]
    },
    "body": {
     "type": "object",
     "properties": {
      "contract": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "NFT contract address."
      },
      "tokenId": {
       "type": [
        "string",
        "integer"
       ],
       "description": "Token id (decimal or 0x-hex integer)."
      },
      "chain": {
       "type": "string",
       "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "optimism",
        "polygon"
       ],
       "description": "EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."
      }
     },
     "additionalProperties": false
    }
   },
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "additionalProperties": false
  }
 },
 "required": [
  "input"
 ]
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/openverbs-nft-metadata-resolver-00596192/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from chain.openverbs.com](https://www.zero.xyz/host/chain.openverbs.com/llms.txt)
