Compute Units (CUs)
An explanation for Compute Unite and how it works
Compute Unit is a way to measure your RPC request usage on MegaNode. We provide each MegaNode user a monthly quota of usage, and each method will consume a cost based on the resource required for execution. You can think of this as you have a balance in your account and each method has its own price. This will be deducted from your account upon submission of RPC requests. The price of each RPC method is called Compute Unit. Based on this calculation, we enable our users to utilize the monthly request quota more efficiently. In short, you only pay for what you use.
For different subscription tiers, there may have different monthly usage quotas.
CUs of RPC Method
Below are the CUs for each method. We define the CUs based on the resource required for execution.
Supported Method
BSC, Ethereum, Polygon, Optimism, Arbitrum & Fantom
Method | CUs |
---|---|
eth_accounts | 5 |
eth_blockNumber | 5 |
eth_chainId | 5 |
eth_syncing | 5 |
net_listening | 5 |
net_version | 5 |
web3_clientVersion | 5 |
eth_subscribe | 10 |
eth_uninstallFilter | 10 |
eth_unsubscribe | 10 |
web3_sha3 | 10 |
eth_signTransaction | 10 |
net_peerCount | 10 |
eth_gasPrice | 15 |
eth_getBalance | 15 |
eth_getBlockByNumber | 15 |
eth_getCode | 15 |
eth_getStorageAt | 15 |
eth_getTransactionByBlockHashAndIndex | 15 |
eth_getTransactionByBlockNumberAndIndex | 15 |
eth_getTransactionByHash | 15 |
eth_getTransactionReceipt | 15 |
eth_getBlockByHash | 18 |
eth_getBlockTransactionCountByHash | 18 |
eth_getBlockTransactionCountByNumber | 18 |
eth_getFilterChanges | 18 |
eth_newBlockFilter | 18 |
eth_newFilter | 18 |
eth_newPendingTransactionFilter | 18 |
eth_call | 20 |
eth_getTransactionCount | 25 |
eth_getFilterLogs | 50 |
eth_getLogs | 50 |
eth_estimateGas | 75 |
eth_sendRawTransaction | 150 |
debug_traceTransaction | 280 |
debug_traceCall | 280 |
debug_traceBlockByNumber | 1800 |
debug_traceBlockByHash | 1800 |
Ethereum only
Method | CUs |
---|---|
eth_protocolVersion | 5 |
eth_createAccessList | 10 |
eth_feeHistory | 10 |
eth_maxPriorityFeePerGas | 10 |
eth_getUncleByBlockHashAndIndex | 15 |
eth_getUncleByBlockNumberAndIndex | 15 |
eth_getUncleCountByBlockHash | 15 |
eth_getUncleCountByBlockNumber | 15 |
Polygon API
Method | CUs |
---|---|
bor_getAuthor | 15 |
bor_getCurrentProposer | 15 |
bor_getCurrentValidators | 15 |
bor_getRootHash | 15 |
bor_getSignersAtHash | 15 |
eth_getTransactionReceiptsByBlock | 250 |
Optimism API
Method | CUs |
---|---|
eth_getBlockRange | 25 |
rollup_getInfo | 15 |
rollup_gasPrices | 15 |
Enhanced API
Method | CUs |
---|---|
trace_block | 2000 |
trace_call | 300 |
trace_filter | 10000 |
trace_get | 280 |
trace_replayBlockTransactions | 2500 |
trace_replayTransaction | 2500 |
trace_transaction | 300 |
debug_traceTransaction | 280 |
debug_traceCall | 280 |
debug_traceBlockByNumber | 1800 |
debug_traceBlockByHash | 1800 |
debug_jstraceTransaction | 2800 |
debug_jstraceCall | 2800 |
debug_jstraceBlockByNumber | 18000 |
debug_jstraceBlockByHash | 18000 |
eth_getDiffAccounts | 1000 |
eth_getDiffAccountsWithScope | 1200 |
nr_getTokenBalance1155 | 25 |
nr_getNFTCollectionHolders | 300 |
nr_getNFTCollectionHolderCount | 50 |
nr_getNFTInventory | 200 |
nr_getNFTHolders | 300 |
nr_getNFTHoldersWithBalance | 100 |
nr_getNFTHolderCount | 50 |
nr_getTokenMeta | 80 |
nr_getTotalSupply721 | 25 |
nr_getTotalSupply1155 | 25 |
nr_getNFTHoldings | 300 |
nr_getNFTHoldingCount | 50 |
nr_getTokenBalance721 | 25 |
nr_getSummedSupply1155 | 100 |
nr_getNFTTokenCount | 50 |
nr_getNFTTokens | 100 |
nr_getNFTTokenOwners | 150 |
nr_getNFTMeta | 100 |
nr_getTokenBalance20 | 25 |
nr_getTotalSupply20 | 25 |
nr_getTokenCount | 100 |
nr_getTokenHoldings | 300 |
nr_getTokenHoldingCount | 50 |
nr_getTokenHolders | 300 |
nr_getTokenHolderCount | 50 |
nr_getTransactionReceiptsByBlockHash | 250 |
nr_getTransactionReceiptsByBlockNumber | 250 |
nr_getTransactionDetail | 50 |
nr_getTransactionByAddress | 250 |
nr_getTransactionByAddressCount | 250 |
nr_getTransferByTokenId | 250 |
nr_getContractCreationTransaction | 250 |
nr_getAssetTransfersCount | 150 |
nr_getAssetTransfers | 250 |
txpool_content | 3000 |
txpool_inspect | 20 |
txpool_status | 15 |
Aptos API
Method | CUs |
---|---|
get_account | 25 |
get_account_modules | 25 |
get_account_resources | 25 |
get_account_transaction | 125 |
get_blocks_by_height | 50 |
get_blocks_by_version | 50 |
get_events_by_creation_number | 125 |
get_events_by_event_handle | 125 |
get_ledger_information | 25 |
get_node_health | 25 |
get_specific_account_module | 25 |
get_specific_account_resource | 25 |
get_table_item | 25 |
get_transaction_by_hash | 25 |
get_transaction_by_version | 25 |
get_transactions | 125 |
simulate_transaction | 50 |
submit_batch_transactions | 50 |
submit_transaction | 25 |
encode_submission | 25 |
estimate_gas_price | 25 |
spec | 200 |
PancakeSwap GraphQL
Method | CUs |
---|---|
PancakeSwap GraphQL (Free) | 900CU / Query |
PancakeSwap GraphQL v3 | 900CU / Query |
Unsupported Method
If MegaNode received requests using unsupported RPC method, the CUs are 2 for each request.
How does MegaNode calculate my monthly CU quota?
We accumulate the monthly usage by account. Regardless of how many API Keys you created in your account, we calculate the usage by summing the entire usage across all API Keys.
Websocket subscription
MegaNode charges the websocket subscription (e.g. eth_subscribe) by bandwidth. For every byte, the cost is 0.04 CU.
What happens if I run out of monthly CU quota?
If you keep sending RPC request even though you've reached the monthly CU quota, the request will fail and you will receive http 429 error and an error code: -32005
{
"jsonrpc":"2.0",
"id":1,
"error":{
"code":-32005,
"message":"ran out of cu"
}
}
You may consider a subscription plan upgrade or purchase CU pack https://dashboard.nodereal.io/billing/add-ons add-on with Stripe or PayPal at $1/month for 5M CU (e.g. $20 for 100M).
What happens if I send a request with incorrect payload?
If you're sending a RPC request with an incorrect payload, it will cost:
- If incorrect method: it will cost you 2 usage for incorrect or unsupported RPC method.
- If other parameters are incorrect, or execution failed due to the wrong payload: it will consume the original cost of each method.
How much monthly quota do I have?
We provide MegaNode users different tiers of monthly quota according to their pricing plan. Pleaserefer to our pricing plan.
Updated over 1 year ago