# BlockVectra as an Alchemy Alternative: Method Prices and Free Log Queries

> Original page: https://docs.blockvectra.com/en/guides/alchemy-alternative/

Choose BlockVectra for lower per-call list prices on supported EVM reads and a wider authenticated log-query span on the free account.

## Comparison

Competitor figures verified on **2026-10-08**. Current BlockVectra figures are shown by the API-backed tables below.

| Metric                                 | Alchemy                    | BlockVectra                                                             | Sources                                                                                                                                                                                                                         |
| -------------------------------------- | -------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `eth_call`, per million calls          | 26 Alchemy CU/call; $13.65 | Current `eth_call` USD price in the method table below                  | [Pricing](https://www.alchemy.com/pricing), [method weights](https://www.alchemy.com/docs/reference/compute-unit-costs), [plans](https://console-api.blockvectra.com/v1/plans), [chains](https://api.blockvectra.com/v1/chains) |
| `eth_getLogs`, per million calls       | 60 Alchemy CU/call; $31.50 | Current `eth_getLogs` USD price below                                   | [Pricing](https://www.alchemy.com/pricing), [method weights](https://www.alchemy.com/docs/reference/compute-unit-costs), [plans](https://console-api.blockvectra.com/v1/plans), [chains](https://api.blockvectra.com/v1/chains) |
| `eth_blockNumber`, per million calls   | 10 Alchemy CU/call; $5.25  | Current `eth_blockNumber` USD price below                               | [Pricing](https://www.alchemy.com/pricing), [method weights](https://www.alchemy.com/docs/reference/compute-unit-costs), [plans](https://console-api.blockvectra.com/v1/plans), [chains](https://api.blockvectra.com/v1/chains) |
| Free-account HyperEVM Mainnet log span | 10 blocks/query            | 1,000 blocks/query, authenticated | [Log ranges](https://www.alchemy.com/docs/chains/ethereum/ethereum-api-endpoints/eth-get-logs), [plans](https://console-api.blockvectra.com/v1/plans), [chains](https://api.blockvectra.com/v1/chains)                          |

Alchemy prices use `$0.525 per million CU × method CU per call`, before free credits and throughput add-ons. Its free allowance is 30M Alchemy CU/month. Provider CU are different units; compare USD per identical completed request. The log-span row compares free accounts only; response size and event density still affect query completion.

## Why choose BlockVectra

### Method prices and free-account budget

Method weights, USD conversion and the free-account budget below come from [GET /v1/plans](https://console-api.blockvectra.com/v1/plans). Chain limits come from [GET /v1/chains](https://api.blockvectra.com/v1/chains). Compare the same chain, method, block and complete result; splitting and retries change the number of calls.

**Active Conversion Parameters**

1 USD = 10,000 billing units, 1 billing unit = 1,000 CU (1 USD = 10,000,000 CU).

**Formula**: CU weight × 1,000,000 ÷ (10,000 × 1,000) USD.

| Method | CU per call | Price per 1M calls (USD) |
| --- | --- | --- |
| `eth_blockNumber` | 1 | $0.10 |
| `eth_call` | 15 | $1.50 |
| `eth_getLogs` | 30 | $3.00 |
| `debug_traceTransaction` | 100 | $10.00 |
| `data.block` | 5 | $0.50 |

The Free Plan requires registering an account and using an API key; all keys under an account share an average of 25 calls per second (short bursts allowed). At the end of each 30-day cycle, balances below 30,000,000 CU are refilled to 30,000,000 CU.

| Method | CU Weight | Approx Calls / Cycle | Approx / Day | List Price / 1M Calls |
| --- | --- | --- | --- | --- |
| `eth_blockNumber` | 1 | 30,000,000 | 1,000,000 | $0.10 |
| `eth_getBlockByNumber` | 5 | 6,000,000 | 200,000 | $0.50 |
| `eth_getBalance` | 10 | 3,000,000 | 100,000 | $1.00 |
| `eth_call` | 15 | 2,000,000 | 66,666 | $1.50 |
| `eth_getLogs` | 30 | 1,000,000 | 33,333 | $3.00 |
| `debug_traceTransaction` | 100 | 300,000 | 10,000 | $10.00 |
| `data.block` | 5 | 6,000,000 | 200,000 | $0.50 |
| `data.address_balances` | 25 | 1,200,000 | 40,000 | $2.50 |
| `data.dex_prices` | 15 | 2,000,000 | 66,666 | $1.50 |
| `data.transaction_trace` | 200 | 150,000 | 5,000 | $20.00 |

Free-account cap: up to 25 calls per second, shared across all keys in the account, all chains, and the Data API. Per-key `key_defaults.cu_per_sec` and `burst_cu` also apply. Eligible cycle refills top the free balance up to the target rather than adding a full grant. The first paid top-up stops cycle refills while preserving remaining free CU. See [free plan rules](https://docs.blockvectra.com/en/guides/free-plan/).

### Free-account log queries

Use the authenticated HyperEVM span above to query more blocks per request within your available free CU. Save the last completed block and split dense intervals when necessary. Check [log range and recovery](https://docs.blockvectra.com/en/guides/getlogs-block-range/) for chunking and deduplication.

### Keyless trials and programmatic Agent funding

Try a listed `public.methods` method at the chain catalog's `public.url` before creating a key. For authenticated access, [programmatic sign-up](https://docs.blockvectra.com/en/guides/programmatic-signup/) lets an Agent create an account and key with a wallet signature. [Agent top-ups](https://docs.blockvectra.com/en/guides/agent-topup/) fund the same usage balance with stablecoins; read networks, tokens and minimums from [top-up status](https://api.blockvectra.com/v1/topup/status). Developers and AI Agents use the same prices and limits.

### Multi-chain address Push

Watch the same address set across several supported chains in one subscription, with one HTTPS receiver. This suits wallet activity and payment notifications without maintaining a socket per chain. See [self-service and enterprise address capacity](https://docs.blockvectra.com/en/guides/webhook-push/#address-capacity); [contact us](https://blockvectra.com/en/contact/) to enable enterprise capacity. Address-day and delivered-event charges are separate from RPC calls and are listed in [Push pricing](https://docs.blockvectra.com/en/guides/webhook-push/#billing-and-example).

RPC on Robinhood Chain and HyperEVM is listed in the [chain catalog](https://api.blockvectra.com/v1/chains). Check methods and Push support per network; use the [chain-specific starter guide](https://docs.blockvectra.com/en/guides/robinhood-chain/) and [HyperEVM backfill guide](https://docs.blockvectra.com/en/guides/hyperevm-backfill/) for the relevant workflow.

## Migration steps

1. **Inventory and coverage:** list chains, methods, fixed blocks, log spans and subscription dependencies. Check `methods.allow`, `methods.deny`, `public.methods`, `state_window_blocks` and `ws` in the [catalog](https://api.blockvectra.com/v1/chains). A null history window is unspecified, not archive coverage. A keyless `public.url` smoke test validates only its listed public methods.
2. **Key and authentication:** obtain a BlockVectra key through the [console](https://console.blockvectra.com/keys/) or [programmatic sign-up](https://docs.blockvectra.com/en/guides/programmatic-signup/). Keep it in your server environment. RPC accepts `POST /v1/{chain}/{api_key}` or `POST /v1/{chain}` with `x-api-key`; Data API uses `x-api-key`. This Ethereum WETH `decimals()` example uses the header:

```bash
if [ -z "$BLOCKVECTRA_API_KEY" ]; then
  echo "Set BLOCKVECTRA_API_KEY in your server environment"
  exit 1
fi

curl --fail-with-body -sS --max-time 15 https://api.blockvectra.com/v1/eth_mainnet \
  -H 'Content-Type: application/json' \
  -H 'User-Agent: curl BlockVectraQA/1' \
  -H "x-api-key: $BLOCKVECTRA_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"to":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","data":"0x313ce567"},"latest"]}'
```

3. **Replay before switching:** replace `latest` with the same supported fixed block on both providers and record the block hash. Compare returned values and JSON-RPC `error`, even after HTTP 200. Test representative log queries, bounded retries, rate-limit recovery and cursor resume. Migrate proprietary APIs and subscriptions separately; move traffic after the required results match.

## FAQ

### Does a lower method price mean a lower total task cost?

Calculate `max(0, sum(calls × method CU) − available_free_cu) / (pricing.units_per_usd × pricing.cu_per_unit)`. Include splitting, retries and any services your task uses. Existing included credits change incremental costs; compare the complete result rather than billing-unit names.

### Can I migrate by changing the endpoint?

For supported standard RPC methods, update the endpoint and path key or `x-api-key` header, then replay fixed-block requests. Check historical state and method coverage first. Proprietary APIs, WebSocket subscriptions and Push receivers need their own migration tests; see [historical state](https://docs.blockvectra.com/en/guides/evm-historical-state/) and [Webhook versus WebSocket](https://docs.blockvectra.com/en/guides/webhook-vs-websocket/).

Use [How to choose an RPC provider](https://docs.blockvectra.com/en/guides/choose-rpc-provider/) for a workload checklist and self-tests.
