# Pricing: every method priced in public, pay as you go

> https://blockvectra.com/en/pricing/

Supported eth_call requests cost $1.50 per million before free credits; calculate the complete workload using current method weights and limits.

1 USD = 10,000,000 CU. Pay as you go with a minimum top-up of $0.01 in USDC / USDT / USDG. No subscriptions, no credit card; every method priced in public. Rejected requests are not billed.

## Plans

- **Get started free**: 30,000,000 CU on sign-up. After your first billed call, each 30-day cycle ends with a top-up to 30,000,000 CU if your balance is below it (no rollover). 25 calls per second on average across all keys in your account. No credit card.
- **Pay as you go**: Minimum top-up $0.01. Your first paid top-up removes the account-wide calls-per-second cap; each key is raised to at least 2,000 CU/s (burst 10,000 CU), and higher custom limits are kept. Remaining free credits stay.

**Common methods (per 1M calls)**

- eth_call $1.50
- eth_getLogs $3.00
- address balances $2.50
- daily DEX prices $1.50

[Read the RPC CU pricing guide →](https://docs.blockvectra.com/en/guides/reading-cu-pricing/)

## Full method weight table

Sorted by CU, lowest first.

| Method | CU |
| --- | ---: |
| `eth_blockNumber` | 1 |
| `eth_chainId` | 1 |
| `eth_getBlockByNumber` | 5 |
| `eth_blobBaseFee` | 10 |
| `eth_feeHistory` | 10 |
| `eth_gasPrice` | 10 |
| `eth_getBalance` | 10 |
| `eth_getBlockByHash` | 10 |
| `eth_getBlockReceipts` | 10 |
| `eth_getBlockTransactionCountByHash` | 10 |
| `eth_getBlockTransactionCountByNumber` | 10 |
| `eth_getCode` | 10 |
| `eth_getHeaderByHash` | 10 |
| `eth_getHeaderByNumber` | 10 |
| `eth_getProof` | 10 |
| `eth_getRawTransactionByBlockHashAndIndex` | 10 |
| `eth_getRawTransactionByBlockNumberAndIndex` | 10 |
| `eth_getRawTransactionByHash` | 10 |
| `eth_getStorageAt` | 10 |
| `eth_getTransactionByBlockHashAndIndex` | 10 |
| `eth_getTransactionByBlockNumberAndIndex` | 10 |
| `eth_getTransactionByHash` | 10 |
| `eth_getTransactionCount` | 10 |
| `eth_getTransactionReceipt` | 10 |
| `eth_getUncleByBlockHashAndIndex` | 10 |
| `eth_getUncleByBlockNumberAndIndex` | 10 |
| `eth_getUncleCountByBlockHash` | 10 |
| `eth_getUncleCountByBlockNumber` | 10 |
| `eth_maxPriorityFeePerGas` | 10 |
| `eth_syncing` | 10 |
| `net_version` | 10 |
| `web3_clientVersion` | 10 |
| `web3_sha3` | 10 |
| `eth_call` | 15 |
| `eth_createAccessList` | 20 |
| `eth_estimateGas` | 20 |
| `eth_simulateV1` | 20 |
| `eth_getLogs` | 30 |
| `eth_sendRawTransaction` | 30 |
| `debug_traceBlockByHash` | 100 |
| `debug_traceBlockByNumber` | 100 |
| `debug_traceCall` | 100 |
| `debug_traceTransaction` | 100 |
| `trace_block` | 100 |
| `trace_call` | 100 |
| `trace_get` | 100 |
| `trace_replayTransaction` | 100 |
| `trace_transaction` | 100 |

### Data API operations

| Method | CU |
| --- | ---: |
| `data.chains` | 1 |
| `data.status_freshness` | 1 |
| `data.block` | 5 |
| `data.block_by_hash` | 5 |
| `data.nft` | 5 |
| `data.token` | 5 |
| `data.transaction` | 5 |
| `data.block_transactions` | 10 |
| `data.tokens_batch` | 10 |
| `data.dex_prices` | 15 |
| `data.stock` | 15 |
| `data.stocks` | 15 |
| `data.address_balances` | 25 |
| `data.address_transactions` | 25 |
| `data.address_transfers` | 25 |
| `data.dex_swaps` | 25 |
| `data.nfts_by_owner` | 25 |
| `data.token_holders` | 25 |
| `data.token_transfers` | 25 |
| `data.block_traces` | 200 |
| `data.transaction_trace` | 200 |

### Webhook push

CU weights from GET /v1/plans. Automatic retries are free.

Free addresses per account per UTC day: 1000 Free address allowance per account per UTC day, shared by all subscription groups regardless of plan. For each group, count its maximum address count while online during that day; allocate the allowance in ascending group ID order. The same address in two groups counts twice; the number of chains in a group does not multiply its address count. A group offline or deleted for the entire day contributes nothing. For each group, the remaining count after its share of the allowance is multiplied by the `push.address_day` CU weight in `method_weights`. The current configured allowance comes from the same pricing policy used for the address-day charge; it is not an account capacity limit or a separate allowance per group.

| Method | Billing unit | CU |
| --- | --- | ---: |
| `push.address_day` | Billable address-day | 33 |
| `push.history` | Successful history request | 25 |
| `push.log` | Delivered data event | 150 |
| `push.native_transfer` | Delivered data event | 150 |
| `push.token_transfer` | Delivered data event | 150 |

Chain-specific operations that are unavailable (e.g. unsupported chain or outside trace coverage) return HTTP 422 and are not billed.

These weights are also available as JSON from [GET /v1/plans](https://console-api.blockvectra.com/v1/plans).

## Allowed & denied methods

[For per-chain method availability and policies, see the JSON-RPC Method Policy in the documentation →](https://docs.blockvectra.com/en/api/json-rpc/#method-policy)

## Billing details (settlement, rounding and carry-over, balance checks)

Usage is metered in CUs (Compute Units): each JSON-RPC method consumes a set number of CUs based on its weight. Usage is totaled across all chains, JSON-RPC and Data API combined. Testnet requests use the same CU weights as mainnet and draw from the same balance and free credits.

JSON-RPC methods not listed in the weight table are billed at 10 CU.

Every 1,000 CU settles as 1 billing unit.

**Settlement**: Usage is charged per account per hourly period, rounded down to whole billing units (1 unit = 1,000 CU), with the remainder carrying over to the next period (across periods the total charged is floor(total CU / 1,000)); settlement runs about 15 minutes after the period ends. For example: 508 CU carried over + 2557 CU consumed = 3065 CU charges 3 billing units, with 65 CU carried over.

**Balance & admission**: Each request is checked against your balance in real time, including usage not yet billed. Once your balance runs out, new requests are rejected with HTTP 402.

## Free plan

Includes 30,000,000 CU sign-up credits. Each 30-day cycle starts on first billed usage and automatically refills up to 30,000,000 CU at the end of the period (no accumulation). All keys share an average of 25 calls per second, and short bursts are allowed; each key keeps its default 100 CU/s limit (burst 400 CU).

No credit card required — sign up instantly with GitHub, Google, or your wallet.

## Pay with USDC / USDT / USDG

Minimum top-up is $0.01. Each account has a dedicated deposit address; humans and AI agents follow the same workflow.

**Supported networks & tokens**: Ethereum (USDC, USDT), BNB Smart Chain (USDT, USDC), Polygon (USDC, USDT), HyperEVM (USDC, USDT), Robinhood Chain (USDG), Base (USDC), Arbitrum One (USDC, USDT)

Real-time availability is subject to GET https://api.blockvectra.com/v1/topup/status.

Sign in, open Billing, and use the deposit address and token details shown for your account.

Once the first paid top-up is credited, free cycle refills stop, unused free credits remain available, and the account-level call-rate cap is removed; each non-revoked key is raised to at least the paid-account floor (a lower bound, not a cap), and higher custom limits are kept.

- [Open Billing to get your deposit address](https://console.blockvectra.com/login/?next=%2Fbilling%2F)
- [Top up over HTTP — developers and AI agents](https://docs.blockvectra.com/en/guides/agent-topup/)

We will never ask for your private key or seed phrase; deposit addresses are only provided within your account.

## FAQ

### Can one API key be used on all chains?

Yes. One API key works for JSON-RPC on every supported chain and for the Data API on chains that offer it; a key belongs to the account, not to a specific chain.

[Read the one key, many chains guide →](https://docs.blockvectra.com/en/guides/one-key-many-chains/)

### Are rejected requests billed?

No. Section 8 (Metering and billing) of the Terms of Service says: requests the Service rejects, for example for insufficient Credits, exceeded rate limits, a temporarily unavailable network or a malformed request, are not billed. Requests outside our data coverage are not billed but may count toward rate limits.

[Read Section 8 of the Terms →](/en/terms/#section-8)

### How do I pay?

Pay-as-you-go: 1 USD = 10,000,000 CU, minimum top-up $0.01. Supported networks and minimum amounts are in the [Pay with USDC / USDT / USDG section](/en/pricing/#pay-with-usdt).

[View the JSON-RPC reference →](https://docs.blockvectra.com/en/api/json-rpc/)
