---
slug: "nft-metadata-token-image-attributes-collection-info"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/Br0ski777/nft-metadata-x402@master/README.md"
repo: "https://github.com/Br0ski777/nft-metadata-x402"
source_file: "README.md"
branch: "master"
---
# NFT Metadata API

[![MCP Server](https://img.shields.io/badge/MCP-server-blue)](https://nft-metadata.api.klymax402.com/mcp)
[![x402](https://img.shields.io/badge/payments-x402-6E56CF)](https://x402.org)
[![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)

NFT metadata lookup -- name, image, attributes, collection info from contract + token ID. Ethereum and Base. Pay-per-call via [x402](https://x402.org) (USDC on Base L2) -- no API key, no signup, no rate-limit wall.

Part of the [klymax402](https://klymax402.com) marketplace -- 100 x402 micropayment APIs for AI agents, one wallet, USDC on Base.

## Quickstart -- MCP

Add to your MCP client config (Claude Desktop, Cursor, ElizaOS, etc.):

```json
{
  "mcpServers": {
    "nft-metadata": {
      "url": "https://nft-metadata.api.klymax402.com/mcp"
    }
  }
}
```

## Quickstart -- HTTP (x402)

```bash
curl -X POST "https://nft-metadata.api.klymax402.com/api/metadata" \
  -H "Content-Type: application/json" \
  -d '{"contract":"...","tokenId":"..."}'
# -> 402 Payment Required, with an x402 payment challenge in the response body
```

Any x402-aware client ([`@x402/fetch`](https://www.npmjs.com/package/@x402/fetch), [`x402-agent-tools`](https://www.npmjs.com/package/x402-agent-tools), ATXP) handles the 402 -> sign -> retry cycle automatically.

## Tools

| Tool | Method | Path | Price | Description |
|---|---|---|---|---|
| `crypto_get_nft_metadata` | POST | `/api/metadata` | $0.008 | Fetch NFT metadata from contract and token ID |

### `crypto_get_nft_metadata`

Use this when you need to fetch metadata for a specific NFT by contract address and token ID. Returns full NFT details in JSON.

**Parameters**

| Name | Type | Required | Description |
|---|---|---|---|
| `contract` | string | yes | NFT contract address (e.g. 0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D) |
| `tokenId` | string | yes | Token ID within the contract |
| `chain` | string | no | Blockchain: 'ethereum' or 'base' (default: ethereum) |

**Returns**

- `name` -- NFT token name
- `description` -- token description text
- `imageUrl` -- URL to the NFT image/media
- `attributes` -- array of trait objects with trait_type and value
- `collection` -- collection name and contract info
- `tokenStandard` -- ERC-721 or ERC-1155
- `chain` -- which blockchain the NFT is on

Example response:

```json
{"name":"Bored Ape #1234","description":"A unique digital collectible...","imageUrl":"ipfs://Qm...","attributes":[{"trait_type":"Background","value":"Blue"},{"trait_type":"Fur","value":"Gold"}],"collection":"BoredApeYachtClub","tokenStandard":"ERC-721","chain":"ethereum"}
```

**When to use**: NFT verification, display, and trait analysis. Essential for NFT marketplace agents and collection tools.

**Not for**: wallet balances (use `wallet_get_portfolio`), ENS resolution (use `crypto_resolve_ens`), token safety (use `token_check_safety`).

## Example agent prompts

- "Fetch metadata for a specific NFT by contract address and token ID"

## Payment

- Protocol: [x402](https://x402.org) -- HTTP-native pay-per-call, no signup, no API key
- Network: Base L2 (`eip155:8453`)
- Asset: USDC
- Facilitator: Coinbase CDP (primary), PayAI (fallback)
- Also reachable via [ATXP](https://atxp.ai) (OAuth-wrapped x402, RFC 9728 protected-resource metadata)

## Part of klymax402

100 x402 micropayment APIs for AI agents -- one wallet, USDC on Base, zero signup.

- Catalog: https://klymax402.com/llms.txt
- Full API reference: https://klymax402.com/llms-full.txt
- Live stats: https://klymax402.com/stats

## License

MIT
