Side-by-side comparison of 7 blockchain data APIs. Free tiers, chain support, indexed vs raw data, and real code examples to help you choose.
Last updated: March 2026
Blockchain data APIs let you read on-chain data (balances, transactions, token transfers, smart contract events) without running your own node. There are two types: RPC providers give raw node access, while indexed data APIs provide parsed, enriched, and queryable data.
Aggregate wallet balances, token holdings, and transaction history across multiple chains for portfolio dashboards.
Build custom block explorers with transaction details, contract verification, and address analytics.
Monitor token prices, DEX liquidity, and on-chain events to execute automated trading strategies.
Send real-time alerts when addresses receive tokens, interact with contracts, or hit balance thresholds.
Track protocol TVL, yield rates, liquidity pool data, and governance activity across DeFi protocols.
Query NFT metadata, ownership history, collection stats, and in-game asset balances on-chain.
Key differences between blockchain data APIs at a glance.
| Provider | Free Tier | Chains | Data Type | Token API | NFT API | Webhooks | GraphQL | API Key |
|---|---|---|---|---|---|---|---|---|
| Etherscan | 5 req/sec | 60+ | Indexed | Yes | Basic | No | No | Required |
| Alchemy | 30M CU/mo | 80+ | Both | Yes | Yes | Yes | No | Required |
| Infura | 100K req/day | 20+ | RPC | No | No | No | No | Required |
| The Graph | Free queries | 80+ | Indexed | Yes | Yes | No | Yes | Optional |
| Moralis | 40K CU/mo | 30+ | Indexed | Yes | Yes | Yes | No | Required |
| Covalent | Free tier | 200+ | Indexed | Yes | Yes | No | No | Required |
| Frostbyte | 200 credits | 9 | Indexed | Yes | No | No | No | Optional |
Which chains are supported by which provider.
| Chain | Etherscan | Alchemy | Infura | The Graph | Moralis | Covalent | Frostbyte |
|---|---|---|---|---|---|---|---|
| Ethereum | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Polygon | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Arbitrum | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Base | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Optimism | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| BSC | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Avalanche | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Solana | No | Yes | Yes | Yes | Yes | Yes | Yes |
| Bitcoin | No | No | No | No | No | Yes | Yes |
| zkSync | Yes | Yes | Yes | Yes | No | Yes | No |
Understanding the difference helps you pick the right tool.
| Feature | RPC Node (Infura, QuickNode) | Indexed API (Etherscan, Moralis) |
|---|---|---|
| Data Format | Raw hex, requires decoding | Parsed JSON, human-readable |
| Token Balances | Manual ERC-20 calls per token | Single API call, all tokens |
| Transaction History | Block-by-block scanning | Pre-indexed, instant query |
| Historical Data | Archive node required | Always available |
| Smart Contract Events | eth_getLogs + ABI decoding | Pre-decoded with labels |
| Latency | ~100ms (direct node) | ~200-500ms (indexed) |
| Best For | Sending transactions, real-time state | Reading data, analytics, dashboards |
Detailed look at each blockchain data API.
Get an ETH balance with each provider.
# Etherscan — get ETH balance curl "https://api.etherscan.io/v2/api\ ?chainid=1\ &module=account\ &action=balance\ &address=0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe\ &apikey=YOUR_KEY" # Response (balance in wei) { "status": "1", "result": "670456215218885498951364" }
# Alchemy — get all token balances curl -X POST "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "alchemy_getTokenBalances", "params": ["0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe"], "id": 1 }' # Returns all ERC-20 token balances in one call
# Moralis — get wallet portfolio curl "https://deep-index.moralis.io/api/v2.2/\ 0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe/balance" \ -H "X-API-Key: YOUR_KEY" # Returns decoded balance with USD value { "balance": "670456215218885498951364", "balance_formatted": "670456.21", "usd_value": 1250000000.00 }
# Frostbyte — get wallet balance (no key needed) curl "https://agent-gateway-kappa.vercel.app/v1/agent-wallet/\ wallets/balance?chain=ethereum\ &address=0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe" # Simple JSON response { "chain": "ethereum", "address": "0xde0B...7BAe", "balance": "670456.21", "unit": "ETH" }
# CoinGecko — token prices (rate limited) curl "https://api.coingecko.com/api/v3/simple/price\ ?ids=ethereum,bitcoin,solana\ &vs_currencies=usd" { "ethereum": { "usd": 2450.67 }, "bitcoin": { "usd": 87234.50 }, "solana": { "usd": 142.30 } }
# Moralis — token price by contract address curl "https://deep-index.moralis.io/api/v2.2/erc20/\ 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/price" \ -H "X-API-Key: YOUR_KEY" # Returns price with exchange data { "usdPrice": 1.0001, "exchangeName": "Uniswap V3" }
# Frostbyte — real-time prices (no key needed) curl "https://agent-gateway-kappa.vercel.app/api/prices" # 527+ tokens, instant response { "BTC": { "usd": 87234.50 }, "ETH": { "usd": 2450.67 }, "SOL": { "usd": 142.30 }, ... }
# Etherscan — transaction list curl "https://api.etherscan.io/v2/api\ ?chainid=1\ &module=account\ &action=txlist\ &address=0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe\ &startblock=0&endblock=99999999\ &sort=desc\ &apikey=YOUR_KEY"
# Alchemy — asset transfers (decoded) curl -X POST "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "alchemy_getAssetTransfers", "params": [{ "fromAddress": "0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe", "category": ["external","erc20","erc721"], "maxCount": "0x14" }], "id": 1 }'
# Covalent (GoldRush) — unified format across 200+ chains curl "https://api.covalenthq.com/v1/eth-mainnet/address/\ 0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe/\ transactions_v3/" \ -H "Authorization: Bearer YOUR_KEY" # Same endpoint works for any chain — just change "eth-mainnet" # to "matic-mainnet", "arbitrum-mainnet", "solana-mainnet", etc.
Try the Frostbyte price API — no signup or API key required.
What it costs when you outgrow the free tier.
| Provider | 100K Calls | Notes |
|---|---|---|
| Etherscan | $0 | Well within 5 req/sec limit |
| Alchemy | $0 | ~1-10M CU depending on methods (within free tier) |
| Infura | $0 | ~3.3K/day (within 100K/day free limit) |
| The Graph | $0 - $5 | Free hosted or pennies on decentralized |
| Moralis | $49 - $250 | Depends on CU per endpoint (1-25 CU each) |
| Covalent | $0 - $49 | Free tier may suffice; Premium for production |
| Frostbyte | $200 | 1 credit per call, $1 = 500 credits |
Choose based on your specific use case.
Purpose-built for explorer data. Transaction details, contract verification, address labels. Industry standard.
RPC + indexed data + webhooks + smart wallets in one platform. Most complete developer experience.
Build custom GraphQL subgraphs for specific smart contracts. Perfect for DEX, lending, and yield data.
200+ chains with unified API. One endpoint format for every chain. Best for cross-chain aggregation.
Pre-decoded transactions, wallet net worth, DeFi positions. Fastest time-to-value for wallet apps.
No signup, no API key, instant access. Price feeds + wallet generation in one API. MCP server for AI agents.
200 free credits. No signup. No API key required for price data. Start building in seconds.
View API Docs Live Price Demo