# Saylor Innovations Data Desk – NFT Metadata Resolver

> Saylor Innovations Data Desk – NFT Metadata Resolver is a paid API for AI agents from saylorinnovations.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-30).

Fetches NFT metadata (name, image, description, traits) for any token ID on 16 EVM chains by resolving token URI from the contract, then fetching from IPFS, Arweave, or inline data.

## Facts

- Endpoint: GET https://saylorinnovations.com/api/chain/nft-metadata?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/saylor-innovations-data-desk-nft-metadata-resolver-a8cc8048
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MXBvTZxfQDyXSoK6z0jRU

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 saylor-innovations-data-desk-nft-metadata-resolver-a8cc8048
```

Example prompt: What's the name, image, and traits for token ID 1234 on the Bored Ape Yacht Club contract (0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D) on Ethereum?

## When to prefer this

Use this endpoint when you need to resolve full NFT metadata (name, image, traits) for a specific token ID on any of 16 supported EVM chains, especially when the token URI points to IPFS or Arweave storage that requires gateway resolution. Prefer this over general blockchain RPC calls when you want structured, ready-to-use metadata without handling URI resolution, IPFS pinning, or Arweave fetching yourself. Covers ERC-721 and ERC-1155 standards.

## Known failure modes

- Contract not found on specified chain — returns error or empty token URI
- Token ID does not exist — contract reverts or returns empty URI
- IPFS or Arweave gateway timeout — metadata_fetched false with fetch_note explaining failure
- Invalid chain name or chain ID — returns error indicating unsupported chain
- Inline data URI malformed — metadata parsing fails with fetch_note
- Rate limiting or payment failure at $0.01 USDC per call — HTTP 402 response

## How this service works

NFT metadata by token id on 16 EVM chains: token URI from the contract, then name, image, description and traits resolved from IPFS, Arweave or inline data.

## Output

A JSON object containing the chain name and chain ID, contract address, token ID, token URI returned by the contract, the URI scheme, whether metadata was fetched, the NFT name, image URL (with IPFS links rewritten to a gateway), description, up to 50 trait/attribute pairs, the ERC standard (ERC-721 or ERC-1155), the data source, and a plain-language note explaining the result. Includes a fetch_note field when metadata could not be retrieved.

## 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": [
      "chain",
      "collection",
      "token_id"
     ],
     "properties": {
      "chain": {
       "type": "string",
       "description": "chain name (ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, gnosis, linea, scroll, mantle, blast, sonic, celo, berachain, unichain) or chain id"
      },
      "token_id": {
       "type": "string",
       "description": "the token id (decimal or 0x hex)"
      },
      "collection": {
       "type": "string",
       "description": "the ERC-721 or ERC-1155 contract"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "required": [
      "chain",
      "chain_id",
      "collection",
      "token_id",
      "token_uri",
      "uri_scheme",
      "metadata_fetched",
      "note",
      "source"
     ],
     "properties": {
      "name": {
       "type": [
        "string",
        "null"
       ],
       "description": "name field of the metadata document"
      },
      "note": {
       "type": "string",
       "description": "plain-language reading of the result"
      },
      "chain": {
       "type": "string",
       "description": "the chain name that was queried"
      },
      "image": {
       "type": [
        "string",
        "null"
       ],
       "description": "image URL with ipfs links rewritten to a gateway"
      },
      "source": {
       "type": "string",
       "description": "where the data was read from"
      },
      "chain_id": {
       "type": "number",
       "description": "EIP-155 chain id of that network"
      },
      "standard": {
       "type": "string",
       "description": "ERC-721 or ERC-1155"
      },
      "token_id": {
       "type": "string",
       "description": "the token id queried, decimal"
      },
      "token_uri": {
       "type": "string",
       "description": "URI returned by the contract"
      },
      "attrib
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/saylor-innovations-data-desk-nft-metadata-resolver-a8cc8048/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from saylorinnovations.com](https://www.zero.xyz/host/saylorinnovations.com/llms.txt)
