Migrating Fungible Token Data from SimpleHash to Alchemy
Author: Ram Bhaskar
SimpleHash is sunsetting its services on March 27, 2025, and this guide provides a straightforward path for you to migrate Fungible Token Data from SimpleHash to Alchemy.
Please reach out to [email protected] with any questions!
Use Case 1: Token Balances & Metadata
Our token APIs are a perfect replacement for SimpleHash’s fungible token endpoints.
Our fungible token APIs provide:
✅ Real-time balances for ERC-20 and other tokens
✅ Token metadata (name, symbol, decimals, contract address)
✅ Multi-chain support for all major blockchains
Docs: https://docs.alchemy.com/reference/alchemy-gettokenbalances
📌 Example Wallet: 0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7
Fetching Token Balances
SimpleHash Request (Old)
curl -X GET "<https://api.simplehash.com/api/v0/fungibles/balances?wallet_address=0x...&chain=ethereum>" \\
-H "Authorization: Bearer YOUR_SIMPLEHASH_KEY"Alchemy Request (New)
Try it out here!
curl --request POST \\
--url <https://eth-mainnet.g.alchemy.com/v2/{apiKey}> \\
--header 'accept: application/json' \\
--header 'content-type: application/json' \\
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "alchemy_getTokenBalances",
"params": [
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
]
}
'Example Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"tokenBalances": [
{
"contractAddress": "0x000000000000e63d2c9c29d3edf6efb99071f92c",
"tokenBalance": "0x00000000000000000000000000000000000000000000001b1ae4d6e2ef500000"
},
{
"contractAddress": "0x00000000002514bf58ae82408e1e217f16a1dfa0",
"tokenBalance": "0x000000000000000000000000000000000000000000002a5a058fc295ed000000"
},
...
]
}
}Fetching Token Metadata
Docs: https://docs.alchemy.com/reference/alchemy-gettokenmetadata
SimpleHash Request (Old)
curl -X GET "<https://api.simplehash.com/api/v0/token/metadata?contract_address=0x...&chain=ethereum>" \\
-H "Authorization: Bearer YOUR_SIMPLEHASH_KEY"Alchemy Request (New - JSON-RPC)
Try it out here!
curl --request POST \\
--url <https://eth-mainnet.g.alchemy.com/v2/docs-demo> \\
--header 'accept: application/json' \\
--header 'content-type: application/json' \\
--data '
{
"id": 1,
"jsonrpc": "2.0",
"method": "alchemy_getTokenMetadata",
"params": [
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
]
}Example Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"decimals": 6,
"logo": "<https://static.alchemyapi.io/images/assets/3408.png>",
"name": "USDC",
"symbol": "USDC"
}
}Use Case 2: Token Prices (Prices API)
Our Prices API enables seamless migration from SimpleHash’s DEX price endpoint.
Understand the Differences

📌 Key Update: Alchemy aggregates data from various reputable sources, providing a holistic view of token prices. If you specifically need DEX-sourced prices, reach out! We’re actively exploring how to support this and would love your feedback.
Fetching Real-Time Prices for Multiple Tokens
SimpleHash Request (Old)
curl -X GET "<https://api.simplehash.com/api/v0/prices/fungible?token_ids=ethereum:0x>...,ethereum:0x..." \\
-H "Authorization: Bearer YOUR_SIMPLEHASH_KEY"Alchemy Request (New)
curl --request GET \\
--url '<https://api.g.alchemy.com/prices/v1/{api-key}/tokens/by-symbol?symbols=ETH&symbols=BTC>' \\
--header 'accept: application/json'Example Response:
{
"data": [
{
"symbol": "ETH",
"prices": [
{
"currency": "usd",
"value": "2304.5082988224",
"lastUpdatedAt": "2025-02-26T19:16:14Z"
}
]
},
{
"symbol": "BTC",
"prices": [
{
"currency": "usd",
"value": "84614.0666993729",
"lastUpdatedAt": "2025-02-26T19:16:21Z"
}
]
}
]
}Fetching Historical Prices (🚀 New in Alchemy!)
Docs: https://docs.alchemy.com/reference/get-historical-token-prices
📌 Alchemy supports historical price data (not available in SimpleHash).
Alchemy Request:
curl --request POST \\
--url <https://api.g.alchemy.com/prices/v1/{api-key}/tokens/historical> \\
--header 'accept: application/json' \\
--header 'content-type: application/json' \\
--data '
{
"symbol": "ETH",
"startTime": "2024-01-01T00:00:00Z",
"endTime": "2024-01-31T23:59:59Z",
"interval": "1d"
}
'Example Response:
{
"symbol": "ETH",
"currency": "usd",
"data": [
{
"value": "2279.941008569",
"timestamp": "2024-01-01T00:00:00Z"
},
{
"value": "2350.0262860085",
"timestamp": "2024-01-02T00:00:00Z"
},
{
"value": "2360.7821195891",
"timestamp": "2024-01-03T00:00:00Z"
},
...
]
}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.
👋 If there’s a feature you need, let us know! Contact via this email or dm us on telegram @mihiralchemy.
Alchemy Newsletter
Be the first to know about releases
Sign up for our newsletter
Get the latest product updates and resources from Alchemy
By entering your email address, you agree to receive our marketing communications and product updates. You acknowledge that Alchemy processes the information we receive in accordance with our Privacy Notice. You can unsubscribe anytime.
Related articles

How to Build an AI Trading Bot: A Complete Developer's Guide (2026)

From One Node to Cortex: Serving Blockchain Data at 100K TPS, Globally

What Is the Ethereum Fusaka Upgrade? Dev Guide to 12 EIPs
A practical breakdown of the Fusaka upgrade, explaining the 12 core EIPs and how they change data availability, cryptography, gas costs, and validator operations across the Ethereum stack.