# Arbitrum NFT Metadata

> Arbitrum NFT Metadata is a paid API for AI agents from agent-data-tools.revmesh2074.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-24).

Fetches the token URI and resolved JSON metadata (name, description, image, attributes) for a specific ERC-721 NFT on Arbitrum One.

## Facts

- Endpoint: GET https://agent-data-tools.revmesh2074.workers.dev/arb/nft-metadata?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-24
- Activations on Zero: 0
- Provider: agent-data-tools.revmesh2074.workers.dev
- Website: https://agent-data-tools.revmesh2074.workers.dev
- Canonical page: https://www.zero.xyz/c/agent-data-tools-revmesh2074-workers-dev-arbitrum-nft-metadata-94384d7d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_L6nsmwExnZp7iPS3Q-ffq

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 agent-data-tools-revmesh2074-workers-dev-arbitrum-nft-metadata-94384d7d
```

Example prompt: Can you pull up the metadata for token ID 1337 of the Arbitrum NFT collection at contract address 0x93C46aA4DdfD0413d95D0eF3c478982997cE9861 — I want to see its name, image, and any traits?

## When to prefer this

Use this endpoint when you need to display or verify what an ERC-721 NFT on Arbitrum One actually is — its name, image, description, and traits — regardless of whether its metadata lives on-chain (data: URI), on HTTPS, or on IPFS. Prefer this over generic blockchain RPC calls because it handles all three metadata storage patterns transparently, truncates oversized SVGs safely, and reports metadata fetch errors cleanly. For ownership queries, use the companion arb_nft_owner endpoint instead.

## Known failure modes

- Token does not exist on Arbitrum One — returns HTTP 422 (unchained, no charge)
- IPFS or HTTPS metadata URL is unreachable — metadataError field populated but call still succeeds
- Invalid contract address format — likely returns an error response
- Contract is not an ERC-721 or does not implement tokenURI — call may fail or return empty metadata
- Network timeout reaching ipfs.io gateway — reported in metadataError
- Data URI metadata that exceeds 1,000 characters is truncated without warning

## How this service works

NFT metadata on Arbitrum One: the token URI of one ERC-721 token id (tokenURI) and the JSON it points to (name, description, image, attributes), read from data: URIs, https or ipfs:// (through ipfs.io). Strings over 1,000 characters, such as on-chain SVG images, are shortened. Use to show or check what an NFT is; for its owner use arb_nft_owner. A token that does not exist is 422, uncharged; unreachable metadata is reported in metadataError.

## Output

Returns a JSON object containing the chain info (name, chainId), contract address, symbol, token ID, tokenURI string, metadata source type (data URI, HTTPS, or IPFS), and the resolved metadata JSON including name, description, and image URL. Strings exceeding 1,000 characters (e.g. on-chain SVG images) are truncated. If metadata cannot be fetched, a metadataError field describes the problem. A non-existent token returns a 422 error without incurring a charge.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "contract",
  "tokenId"
 ],
 "properties": {
  "tokenId": {
   "type": "string",
   "description": "Token id, a whole number"
  },
  "contract": {
   "type": "string",
   "description": "0x ERC-721 collection contract address"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "name": {
   "type": "string"
  },
  "chain": {
   "type": "string"
  },
  "symbol": {
   "type": "string"
  },
  "chainId": {
   "type": "number"
  },
  "tokenId": {
   "type": "string"
  },
  "contract": {
   "type": "string"
  },
  "metadata": {
   "type": "object",
   "properties": {
    "name": {
     "type": "string"
    },
    "image": {
     "type": "string"
    },
    "description": {
     "type": "string"
    }
   }
  },
  "tokenUri": {
   "type": "string"
  },
  "metadataError": {},
  "metadataSource": {
   "type": "string"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-data-tools-revmesh2074-workers-dev-arbitrum-nft-metadata-94384d7d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-data-tools.revmesh2074.workers.dev](https://www.zero.xyz/host/agent-data-tools.revmesh2074.workers.dev/llms.txt)
