NFT API
Transfers API
Transact
Debug API
Trace API
EVM API
Solana API
Notify & Subscription APIs
Error Codes
We want builders to be able to use as much of the NFT API as they need without worrying about throughput. Because of that, we have discounted how NFT API requests count towards your applications’ guaranteed throughput by 6-10x. This means you can make more concurrent NFT API requests, and use the “Throughput CU” below to calculate how much you can use!
Method | CU | Throughput CU |
---|
getNFTMetadata | 100 | 10 |
getContractMetadata | 250 | 10 |
getNFTs | 600 | 100 |
getContractsForOwner | 350 | 100 |
getNFTsForCollection | 600 | 50 |
getOwnersForToken | 100 | 10 |
getOwnersForCollection | 600 | 20 |
getFloorPrice | 100 | 10 |
getNFTSales | 180 | 10 |
computeRarity | 100 | 10 |
summarizeNFTAttributes | 100 | 10 |
isHolderOfCollection | 100 | 10 |
searchContractMetadata | 500 | 50 |
getNFTMetadataBatch | 600 | 100 |
getContractMetadataBatch | 600 | 100 |
getSpamContracts | 600 | 10 |
isSpamContract | 100 | 10 |
isAirdrop | 100 | 10 |
Method | CU |
---|
alchemy_getAssetTransfers | 150 |
Method | CU |
---|
alchemy_getTokenBalances | 26 |
alchemy_getTokenMetadata | 16 |
alchemy_getTokenAllowance | 19 |
Method | CU |
---|
alchemy_sendGasOptimizedTransaction | 2500* |
alchemy_getGasOptimizedTransactionStatus | 25* |
eth_sendPrivateTransaction | 250 |
eth_cancelPrivateTransaction | 250 |
alchemy_simulateAssetChanges | 2500 |
alchemy_simulateExecution | 2500 |
Reinforced Transactions | $999/month |
*requires Reinforced Transactions enabled on app
Method | CU |
---|
debug_traceTransaction | 309 |
debug_traceCall | 309 |
debug_traceBlockByHash | 497 |
debug_traceBlockByNumber | 497 |
Method | CU |
---|
trace_get | 17 |
trace_block | 24 |
trace_transaction | 26 |
trace_call | 75 |
trace_rawTransaction | 75 |
trace_filter | 75 |
trace_replayTransaction | 2983 |
trace_replayBlockTransactions | 2983 |
Method | CU |
---|
net_version | 0 |
eth_chainId | 0 |
eth_syncing | 0 |
eth_protocolVersion | 0 |
net_listening | 0 |
eth_uninstallFilter | 10 |
eth_accounts | 10 |
eth_blockNumber | 10 |
eth_subscribe | 10 |
eth_unsubscribe | 10 |
eth_feeHistory | 10 |
eth_maxPriorityFeePerGas | 10 |
eth_createAccessList | 10 |
eth_getTransactionReceipt | 15 |
eth_getUncleByBlockHashAndIndex | 15 |
eth_getUncleByBlockNumberAndIndex | 15 |
eth_getTransactionByBlockHashAndIndex | 15 |
eth_getTransactionByBlockNumberAndIndex | 15 |
eth_getUncleCountByBlockHash | 15 |
eth_getUncleCountByBlockNumber | 15 |
web3_clientVersion | 15 |
web3_sha3 | 15 |
eth_getBlockByNumber | 16 |
eth_getStorageAt | 17 |
eth_getTransactionByHash | 17 |
eth_gasPrice | 19 |
eth_getBalance | 19 |
eth_getCode | 19 |
eth_getFilterChanges | 20 |
eth_newBlockFilter | 20 |
eth_newFilter | 20 |
eth_newPendingTransactionFilter | 20 |
eth_getBlockTransactionCountByHash | 20 |
eth_getBlockTransactionCountByNumber | 20 |
eth_getProof | 21 |
eth_getBlockByHash | 21 |
erigon_forks | 24 |
erigon_getHeaderByHash | 24 |
erigon_getHeaderByNumber | 24 |
erigon_getLogsByHash | 24 |
erigon_issuance | 24 |
eth_getTransactionCount | 26 |
eth_call | 26 |
eth_getFilterLogs | 75 |
eth_getLogs | 75 |
eth_estimateGas | 87 |
alchemy_getTransactionReceipts | 250 |
eth_sendRawTransaction | 250 |
eth_getBlockReceipts | 500 |
batch* | CU of method * # of times the method is called |
*To view the batch request breakdown in the dashboard click on "raw request"
Method | CU |
---|
bor_getAuthor | 10 |
bor_getCurrentProposer | 10 |
bor_getCurrentValidators | 10 |
bor_getRootHash | 10 |
bor_getSignersAtHash | 10 |
Method | CU |
---|
zkevm_batchNumber | |
zkevm_batchNumberByBlockNumber | |
zkevm_consolidatedBlockNumber | |
zkevm_getBatchByNumber | |
zkevm_getBroadcastURI | |
zkevm_isBlockConsolidated | |
zkevm_isBlockVirtualized | |
zkevm_verifiedBatchNumber | |
zkevm_virtualBatchNumber | |
Method | CU |
---|
getLeaderSchedule | 5 |
requestAirdrop | 5 |
getVoteAccounts | 5 |
getBlockCommitment | 5 |
getBlocksWithLimit | 5 |
getHealth | 5 |
getIdentity | 5 |
getLatestBlockhash | 7 |
getSlot | 7 |
getInflationRate | 8 |
getMaxRetransmitSlot | 8 |
getRecentPerformanceSamples | 8 |
getEpochInfo | 9 |
getTokenAccountBalance | 9 |
getBlockTime | 9 |
getHighestSnapshotSlot | 9 |
sendTransaction | 10 |
getEpochSchedule | 10 |
getStakeActivation | 10 |
getMaxShredInsertSlot | 10 |
getVersion | 10 |
isBlockhashValid | 10 |
getAccountInfo | 10 |
getFeeForMessage | 10 |
getFees | 10 |
getConfirmedBlocks | 10 |
getTokenLargestAccounts | 10 |
getTokenOwnersByDelegate | 10 |
getInflationGovernor | 10 |
getSlotLeader | 11 |
getMultipleAccounts | 11 |
minimumLedgerSlot | 11 |
getBlockHeight | 11 |
simulateTransaction | 11 |
getFeeCalculatorForBlockhash | 11 |
getSignatureStatuses | 11 |
getRecentBlockhash | 12 |
getBlocks | 12 |
getTokenAccountsByOwner | 12 |
getMinimumBalanceForRentExemption | 12 |
getBalance | 12 |
getGenesisHash | 13 |
getBlockProduction | 13 |
getTokenSupply | 14 |
getTransactionCount | 16 |
getSlotLeaders | 16 |
getClusterNodes | 23 |
getSignaturesForAddress | 28 |
getFirstAvailableBlock | 33 |
getConfirmedSignaturesForAddress2 | 35 |
getConfirmedTransaction | 38 |
getTransaction | 59 |
getBlock | 66 |
getProgramAccounts | 117 |
getConfirmedBlock | 151 |
getInflationReward | 341 |
getSupply | 822 |
getLargestAccounts | 3000 |
batch* | CU of method * # of times the method is called |
*To view the batch request breakdown in the dashboard click on "raw request"
Webhook (Notify API) and WebSocket WebSocket Subscriptions on Alchemy are priced based on bandwidth: the amount of data delivered as part of the subscription.
Each subscription type is priced identically, per byte:
On average, a typical webhook or WebSocket subscription event is about 1000 bytes, so would consume 40 compute units. Note that this can vary significantly based on the specific event delivered Subscription API Quickstart
Error | Compute Units |
---|
Non-existing methods | 2 |
429 | 0 |
Other 4xx or 5xx | CU value of specific endpoint |