# SimpleHash MCP

> SimpleHash Multi-chain NFT API connects your AI client to real-time data across 50+ major blockchain networks, including Ethereum, Polygon, and Solana. Your agent uses this server to query a wallet's entire NFT portfolio, retrieve deep metadata (traits, image URLs), track transaction history by address or contract, and analyze specific collections—all from one unified API endpoint.

## Overview
- **Category:** developer-tools
- **Price:** Free
- **Tags:** nft, web3, ethereum, solana, blockchain-data

## Description

**SimpleHash Multi-chain NFT API - Your Direct Line to Blockchain Data**

Your agent connects directly to real-time data spanning over 50 major blockchain networks, including Ethereum, Polygon, and Solana. You're not dealing with a bunch of separate APIs; you use one unified endpoint to query everything an NFT owner or analyst needs.

When you wanna check what assets a wallet holds, your agent runs `get_nfts_by_wallet`, giving you an inventory of every single NFT owned by that address across all connected chains. You can also see the full breadth of collections associated with an address using `get_collections_by_wallet`.

If you're digging into a specific token, `get_nft_details` pulls the complete metadata and current ownership status for one particular NFT ID. This includes granular details like unique traits, attribute values, and direct image links for that single token.

To understand the bigger picture of a collection, your agent uses `get_collection_details` to pull general information, associated links, and key metrics for an entire collection based on its contract address. You can also run `get_nfts_by_contract`, which lists every unique NFT that's ever been minted under a specific smart contract ID across the connected chains.

Tracking movement is where this thing shines. To see everything that moved through a particular piece of code, you use `get_nfts_by_contract` to list all NFTs associated with a given smart contract address. If you wanna track an asset's journey by who owned it, `get_nft_transfers_by_wallet` gives you the total transaction history for a specific wallet address—every NFT transfer that ever touched it. Conversely, if you know the exact contract that moved the token, `get_nft_transfers_by_contract` provides a chronological record of all NFTs that passed through that smart contract address.

## Tools

### get_collection_details
Retrieves general information, links, and metrics for a specific NFT collection using its contract address.

### get_collections_by_wallet
Lists all NFT collections that a specific wallet address currently owns assets from.

### get_nft_details
Fetches the full metadata and current ownership status for one specific NFT token ID.

### get_nft_transfers_by_contract
Gets a chronological record of all NFTs that moved through a specified smart contract address.

### get_nft_transfers_by_wallet
Retrieves the complete transaction history, showing every NFT transfer involving a specific wallet address.

### get_nfts_by_contract
Lists all unique NFTs that were minted under a given smart contract ID across connected chains.

### get_nfts_by_wallet
Retrieves an inventory of every NFT owned by one wallet address across multiple supported blockchains.

## Prompt Examples

**Prompt:** 
```
List all NFTs owned by 0x742d35Cc6634C0532925a3b844Bc454e4438f44e on ethereum and polygon.
```

**Response:** 
```
I've found 12 NFTs for that address across Ethereum and Polygon. Notable items include 2 Bored Ape Yacht Club tokens and 5 Polygon-based gaming assets. Would you like the full list or details on a specific one?
```

**Prompt:** 
```
Get the metadata and image for NFT token 123 in contract 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d on ethereum.
```

**Response:** 
```
Fetching details for BAYC #123... I have the metadata: it has 'Robot Eyes' and 'Blue Fur' traits. The high-res image is available at the IPFS gateway. Would you like me to show the full attribute list?
```

**Prompt:** 
```
Show me the recent transfer history for wallet 0x123... on ethereum.
```

**Response:** 
```
I've retrieved the last 10 transfers for this wallet. There were 3 sales on OpenSea and 2 direct transfers in the past 48 hours. Should I break down the prices and timestamps for these events?
```

## Capabilities

### Check Wallet Holdings Across Chains
The server identifies and lists every NFT owned by a given wallet address across multiple connected blockchains.

### Get Detailed NFT Metadata
It retrieves granular details for a single token, including its unique traits, attribute values, and direct image links.

### Track Full Transfer History
The server tracks the complete movement history of an asset, filtering transfers by either a wallet address or a smart contract ID.

### Analyze Entire Collections
It pulls collection-level data, giving insights into associated links and current market floor prices.

### List All Contract NFTs
The server generates a list of every NFT ever minted under a specific smart contract address.

## Use Cases

### Auditing a Client's Portfolio
A portfolio manager needs to audit a client. They ask their agent to use `get_nfts_by_wallet` first to get the total count of assets across all chains. Then, they run `get_nft_transfers_by_wallet` on key tokens to see exactly when and how those items changed hands.

### Analyzing a New Collection
A researcher wants background on 'Project Alpha.' They start by using `get_collection_details` to understand the lore and links. Next, they use `get_nfts_by_contract` to list every mint under that contract ID, building a full roster of assets.

### Identifying Cross-Chain Ownership
A developer needs to build an inventory tool. They use the combination of `get_nfts_by_wallet` and then filter results using `get_collections_by_wallet` to quickly determine which collections are active on multiple chains for a single user.

### Debugging Asset Provenance
Someone finds an NFT with weird attributes. They use `get_nft_details` first, then run `get_nft_transfers_by_contract` against the contract ID to trace the token back through its entire history and find where it came from.

## Benefits

- Get a full portfolio view with `get_nfts_by_wallet`. You don't have to run separate queries for Ethereum, Polygon, and Solana; the server handles the aggregation automatically.
- Deep dive into assets using `get_nft_details`. Instead of just getting an ID, you get the traits, the high-res image URL, and structured metadata fields immediately.
- Track asset movement with `get_nft_transfers_by_wallet`. This tool provides a complete audit log of sales and transfers for any given wallet address over time.
- Understand the scope of a project using `get_nfts_by_contract`. Run this to list every NFT minted by an IP, letting you map out its full history without knowing individual token IDs.
- Build context with `get_collection_details`. This gives you collection-level data—like floor price and social links—which helps interpret the raw asset data coming from other tools.

## How It Works

The bottom line is: Your AI client talks to SimpleHash, gets complex blockchain data back, and you use that data without writing a single query script.

1. You connect your AI client to the SimpleHash MCP Server and input your API key.
2. Your agent executes a tool call (e.g., `get_nfts_by_wallet`) using natural language instructions, specifying the wallet address or contract ID.
3. The server returns structured JSON data containing all requested NFT details, metadata, and transaction records.

## Frequently Asked Questions

**How do I check all my NFTs on different chains using get_nfts_by_wallet?**
You simply ask your agent to run `get_nfts_by_wallet` and provide your wallet address. The server automatically checks multiple connected blockchains for you, giving a single, consolidated list of every token you own.

**What is the difference between get_nft_details and get_collections_by_wallet?**
`get_nft_details` gives deep data on one specific NFT (metadata, traits). `get_collections_by_wallet` only lists which collections a wallet has owned NFTs from—it's a high-level grouping tool.

**Can I track the full history using get_nft_transfers_by_contract?**
Yes. `get_nft_transfers_by_contract` shows every NFT that has moved through a specific smart contract ID, regardless of which wallet owned it. This is useful for tracking project-wide activity.

**Do I need to use get_nfts_by_wallet or get_collections_by_wallet?**
It depends on the goal. Use `get_nfts_by_wallet` if you want a count/list of assets owned by an address. Use `get_collections_by_wallet` if you just want to know which major IP brands (collections) that address has touched.

**When I run `get_nft_details`, what information do I need besides the NFT ID and contract address?**
You must also specify the blockchain network (e.g., Ethereum or Polygon). The tool requires this scope to accurately pull metadata. If you omit the chain, it won't know which version of that NFT data to fetch.

**Are there rate limits when using `get_nfts_by_wallet` across multiple chains?**
Yes, while we optimize for high throughput, aggressive querying can trigger throttling. We suggest implementing a small delay (2-3 seconds) between wallet lookups on different chains to maintain reliability.

**How do I filter the results of `get_nft_transfers_by_wallet` by date?**
You can refine the transfer history using start and end timestamp parameters. Providing a specific date range cuts down the dataset significantly, making it much faster to process large volumes.

**If `get_collection_details` returns an empty list, does that mean the collection is private or non-existent?**
It usually means no assets matching the criteria were found in our index for the requested chain. This doesn't always guarantee the collection isn't real; it just means we couldn't pull data through the API.

**How do I check all NFTs owned by a specific wallet address?**
Use the `get_nfts_by_wallet` tool. You'll need to provide the wallet address and the chains you want to search (e.g., 'ethereum,polygon').

**Can I get the floor price of a specific NFT collection?**
Yes! The `get_collection_details` tool returns comprehensive metadata for a collection, including its current floor price on various marketplaces.

**Is it possible to see the history of an NFT's movement?**
Absolutely. You can use `get_nft_transfers_by_wallet` to see transfers involving a specific user, or `get_nft_transfers_by_contract` to see all transfers within a specific collection or contract.