> For the complete documentation index, see [llms.txt](https://docs.luganodes.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.luganodes.com/rpc/compute-units/how-compute-units-work.md).

# How compute units work

What each request costs and why

A compute unit (CU) is the unit of usage on Luganodes RPC. Every method has a CU weight that reflects what it costs to serve. A light read like fetching a block number costs little, while a heavy scan or trace costs more. Your plan includes a monthly CU allowance, and every request draws from it.

### How cost is calculated

The CU charged for a request is the chain's base rate multiplied by the method's weight multiplier:

```
CU charged = chain base rate x method multiplier
```

Each chain has a base rate that reflects the cost of running its nodes:

<table><thead><tr><th width="284.50390625">Chain</th><th>Base CU per method</th></tr></thead><tbody><tr><td>Bitcoin</td><td>5</td></tr><tr><td>Ethereum Mainnet</td><td>20</td></tr><tr><td>Ethereum Beacon</td><td>20</td></tr><tr><td>Tron</td><td>30</td></tr></tbody></table>

### Weight multipliers <a href="#weight-multipliers" id="weight-multipliers"></a>

Most methods are Standard and cost the base rate. Heavier methods cost a multiple of it:

<table><thead><tr><th width="100.046875">Multiplier</th><th width="244.4765625">Applies to</th><th>Examples</th></tr></thead><tbody><tr><td>1x</td><td>Standard reads and writes on every chain</td><td><code>eth_getBalance</code>, <code>getblockcount</code>, <code>/wallet/getnowblock</code></td></tr><tr><td>2x</td><td>Log queries, transaction broadcast and assembly, fuller block reads, and the trace, debug and txpool namespaces</td><td><code>eth_getLogs</code>, <code>eth_sendRawTransaction</code>, <code>trace_block</code>, <code>debug_traceTransaction</code>, <code>getblock</code>, <code>sendrawtransaction</code></td></tr><tr><td>4x</td><td>Methods that return very large responses or scan wide state</td><td><code>trace_replayBlockTransactions</code>, <code>trace_replayTransaction</code>, <code>getrawmempool</code>, <code>getrawtransaction</code></td></tr></tbody></table>

Example: `eth_getBalance` on Ethereum Mainnet is 1x, so it costs 20 CU. `eth_getLogs` is 2x, so it costs 40 CU. `trace_replayTransaction` is 4x, so it costs 80 CU. The full per method weights are in the [Ethereum Mainnet](/rpc/compute-units/ethereum-mainnet-cu-table.md), [Ethereum Beacon](/rpc/compute-units/ethereum-beacon-cu-table.md), [Bitcoin](/rpc/compute-units/bitcoin-cu-table.md) and [Tron](/rpc/compute-units/tron-cu-table.md) CU tables.

### Method access by plan

Which buckets you can call depends on your plan:

<table><thead><tr><th width="102.85546875">Plan</th><th>Method access</th></tr></thead><tbody><tr><td>Free</td><td>Standard reads and writes on all chains</td></tr><tr><td>Growth</td><td>Adds logs and filters, heavier reads, transaction broadcast on Ethereum Mainnet, and the Beacon API</td></tr><tr><td>Pro</td><td>Adds trace, debug and txpool</td></tr></tbody></table>

The Plan column on each CU table shows the minimum plan for every method. Calling a method outside your plan returns HTTP 402 with the code `plan_upgrade_required`. See [rate limits and errors](/rpc/rate-limits-and-errors.md).

### Batch requests

A batch request costs the sum of its sub calls. A batch of ten Standard Ethereum calls costs 200 CU, the same as sending them individually.\
A single batch can contain up to 100 calls. Batches above this limit are rejected.

### Allowances and overage

* Your CU allowance resets at the start of each billing cycle. Unused compute units do not roll over.
* On Free, usage stops at the monthly cap until the next cycle.
* On Growth and Pro, usage beyond the allowance is billed as overage at the end of the cycle. [See plan changes and overage.](/rpc/billing-and-plans/plan-changes-and-overage.md)

{% hint style="info" %}
Methods not listed in the CU tables are billed at the chain's base rate.
{% endhint %}
