---
title: "Migrating NFT data from SimpleHash to Alchemy"
description: "This guide provides step-by-step examples for you to migrate NFT Data from SimpleHash to Alchemy."
---

# Migrating NFT data from SimpleHash to Alchemy

<CalloutBlock>

SimpleHash is sunsetting its services on March 27, 2025, and this guide provides a straightforward path for you to migrate NFT Data to Alchemy.

Please reach out to [data-services-product@alchemy.com](mailto:data-services-product@alchemy.com) with any questions!

</CalloutBlock>

We offer a seamless transition from SimpleHash with robust, reliable, and scalable NFT APIs.

Our NFT API provides:

- **Multi-chain support** \(30\+ chains supported\)
- **Ownership & transfer history**
- **Real-time metadata updates**
- **Support for special case NFTs** \(e.g., CryptoPunks and other non-standard ERC-721/1155 implementations\)
- **White-glove support for migration assistance**

If you've been using SimpleHash for NFT metadata, collection data, and ownership tracking, migrating to Alchemy is straightforward.

<CardWithCta
  text="Learn more about NFT API "
  ctaLabel="Documentation"
  ctaHref="https://www.alchemy.com/docs/reference/nft-api-quickstart"
  theme="light"
/>

### Steps to migrate:
1. [Sign up for an Alchemy account](https://alchemy.com/signup?utm_source=blog&utm_medium=blog&utm_campaign=migration) and generate an API key.
1. **Replace SimpleHash endpoints** with Alchemy’s NFT API endpoints.
1. **Update your request formats** \(Alchemy’s documentation provides clear examples\).
1. **Test and validate** data consistency
1. **Reach out to us at** data-services-product@alchemy.com for any feature requests or additional migration assistance.

## Example: fetching NFTs owned by a wallet
Docs: [https://www.alchemy.com/docs/reference/nft-api-endpoints/nft-api-endpoints/nft-ownership-endpoints/get-nf-ts-for-owner-v-3](https://www.alchemy.com/docs/reference/nft-api-endpoints/nft-api-endpoints/nft-ownership-endpoints/get-nf-ts-for-owner-v-3)

📌 **Example Wallet:** `0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7`

### SimpleHash endpoint \(deprecated\)
<CodeSnippet
  language="bash"
  code={`curl -X GET "<https://api.simplehash.com/nfts/owners?wallet=0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7>"`}
/>
### Alchemy equivalent
_Try it out _[here](https://sandbox.alchemy.com/?network=ETH_MAINNET&method=getNFTsForOwner_v3&query.owner=0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7&query.withMetadata=true&query.orderBy&query.spamConfidenceLevel&query.tokenUriTimeoutInMs&query.pageKey=&query.pageSize=100)_!_

<CodeSnippet
  language="bash"
  code={`curl -X GET "<https://eth-mainnet.alchemyapi.io/v2/YOUR_API_KEY/getNFTs?owner=0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7>"`}
/>
### Alchemy API response:
<CodeSnippet
  language="json"
  code={`{
  "ownedNfts": [
		{
      "contract": {
        "address": "0x49D38C87a8D5c8c67C6d84321752D9af0BCB428c",
        "name": "aaveprotocol.net",
        "symbol": "Airdrop",
        "totalSupply": "19990",
        "tokenType": "ERC1155",
        "contractDeployer": "0x1524F7e162ae5136343727b36021E14AcCAd83f2",
        "deployedBlockNumber": 19101952,
        "openSeaMetadata": {
          "floorPrice": 0,
          "collectionName": "Visit aaveprotocol.net to claim rewards",
          "collectionSlug": "visit-aaveprotocol-net-to-claim-rewards-1",
          "safelistRequestStatus": "not_requested",
          "imageUrl": "<https://i.seadn.io/s/raw/files/6c70895d3df6e4ab50546db12eccc74d.png?w=500&auto=format>",
          "description": "Visit aaveprotocol.net to claim rewards",
          "externalUrl": null,
          "twitterUsername": null,
          "discordUrl": null,
          "bannerImageUrl": null,
          "lastIngestedAt": "2025-02-18T04:02:33.000Z"
        },
        "isSpam": null,
        "spamClassifications": []
      },
      "tokenId": "0",
      "tokenType": "ERC1155",
      "name": "Visit aaveprotocol.net to claim rewards",
      "description": "Visit aaveprotocol.net to claim rewards",
      "tokenUri": "<https://ipfs.io/ipfs/QmSqGiLcFK3uxTjwRxMSzqbiNFRCaNiL1ps61gJtaxqB4r/0000000000000000000000000000000000000000000000000000000000000000.json>",
      "image": {
        "cachedUrl": "<https://nft-cdn.alchemy.com/eth-mainnet/bda833c8977f198e0a76185a7c195388>",
        "thumbnailUrl": "<https://res.cloudinary.com/alchemyapi/image/upload/thumbnailv2/eth-mainnet/bda833c8977f198e0a76185a7c195388>",
        "pngUrl": "<https://res.cloudinary.com/alchemyapi/image/upload/convert-png/eth-mainnet/bda833c8977f198e0a76185a7c195388>",
        "contentType": "image/png",
        "size": 171504,
        "originalUrl": "<https://ipfs.io/ipfs/QmWwUwWQQXd3QfZb3ThoGGckTYrUEW2JkPENethzHLVNqw>"
      },
      "raw": {
        "tokenUri": "<https://ipfs.io/ipfs/QmSqGiLcFK3uxTjwRxMSzqbiNFRCaNiL1ps61gJtaxqB4r/{id}.json>",
        "metadata": {
          "name": "Visit aaveprotocol.net to claim rewards",
          "description": "Visit aaveprotocol.net to claim rewards",
          "image": "<https://ipfs.io/ipfs/QmWwUwWQQXd3QfZb3ThoGGckTYrUEW2JkPENethzHLVNqw>"
        },
        "error": null
      },
      "collection": {
        "name": "Visit aaveprotocol.net to claim rewards",
        "slug": "visit-aaveprotocol-net-to-claim-rewards-1",
        "externalUrl": null,
        "bannerImageUrl": null
      },
      "mint": {
        "mintAddress": null,
        "blockNumber": null,
        "timestamp": null,
        "transactionHash": null
      },
      "owners": null,
      "timeLastUpdated": "2025-02-26T11:26:38.942Z",
      "balance": "1",
      "acquiredAt": {
        "blockTimestamp": null,
        "blockNumber": null
      }
    },...
	 ]
 }`}
/>
**Note:** Alchemy supports **special-case NFTs** like CryptoPunks, which do not
adhere to ERC-721 metadata standards. Our API is optimized for performance and
reliability, making it the ideal long-term solution for your NFT data needs.

## More Alchemy NFT features
In addition to fetching NFTs owned by a wallet, we provide:

- **NFT contract ownership** – Contract level NFT data
- **NFT Sales/Floor Prices** – Sales data/price data
- **Token Gating & Utility Tracking** – enhance user experiences with token-gated content
- **NFT Webhooks** — Webhooks to track NFT transfers and metadata updates

## Start your migration to Alchemy
We understand migrating services can be complex, but **we are here to make it easy** with dedicated support, feature parity, and expanded capabilities.

<CardWithCta
  text="Learn more about NFT API "
  ctaLabel="Documentation"
  ctaHref="https://www.alchemy.com/docs/reference/nft-api-quickstart"
  theme="light"
/>

## Frequently asked questions

### Why is migration from SimpleHash necessary?

SimpleHash is sunsetting its services on March 27, 2025, requiring users to migrate their NFT data to an alternative provider.

### What NFT data features do we provide?

Our NFT API offers multi-chain support across 30+ chains, ownership and transfer history, real-time metadata updates, support for special case NFTs like CryptoPunks, and white-glove migration assistance.

### How do I start migrating to our NFT API?

Sign up for an Alchemy account, generate an API key, replace SimpleHash endpoints with our NFT API endpoints, update your request formats using our documentation, and test data consistency.

### Do you support non-standard NFTs like CryptoPunks?

Yes, our API is optimized to support special-case NFTs like CryptoPunks that do not adhere to standard ERC-721 metadata implementations.

### What is the endpoint for fetching NFTs owned by a wallet?

Use the `getNFTs` endpoint: `https://eth-mainnet.alchemyapi.io/v2/YOUR_API_KEY/getNFTs?owner=WALLET_ADDRESS` to retrieve NFTs owned by a specific wallet address.

### What additional NFT features do we offer beyond basic ownership data?

We provide NFT contract ownership data, sales and floor price data, token gating and utility tracking, and NFT webhooks for tracking transfers and metadata updates.

### Where can I get help with my migration?

Contact our team at data-services-product@alchemy.com for feature requests, questions, or additional migration assistance.
