RPC endpoints and API reference for 24 chains.

Endpoint URLs, supported networks, JSON-RPC method weights, WebSocket subscriptions, key restrictions, webhooks and copy-paste examples in JavaScript, Python and Go.

Introduction

BoltRPC is a production-grade RPC node service giving developers instant access to 20+ blockchain networks through a single, unified API. Whether you're building DeFi protocols, NFT platforms, wallets, or indexers - BoltRPC handles the infrastructure so you don't have to.

Globally distributed nodes with automatic failover
Full JSON-RPC method coverage including debug_* and trace_* (Business & Enterprise)
WebSocket support for real-time event subscriptions
Archive data access for historical queries (on request)
Unified endpoint pattern - swap the network slug, keep your code
Operated by Matrixed.Link - ISO/IEC 27001:2022 certified, official Chainlink node operator
New to RPC infrastructure? Read What is JSON-RPC or How to Choose a Blockchain RPC Provider.

Quick Start

Get your first response in under 60 seconds.

1

Get your API key

Sign up at dashboard.boltrpc.io. Free 14-day trial, instant key delivery, no credit card.

Get free API key
2

Make your first request

Replace YOUR_API_KEY in the endpoint URL and send a JSON-RPC request to any supported network.

Step 2: Make your first request

bash
curl -s -X POST \
  "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/ethereum" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Response

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x14a5f3b"
}
That's it. You're live on Ethereum mainnet. Replace ethereum in the URL with any network slug from the Supported Networks table to switch chains instantly.

Authentication

Your API key is embedded directly in the endpoint URL. No extra headers required.

endpoint pattern
https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/{network}
wss://endpoints.boltrpc.io/ws/YOUR_API_KEY/{network}
Keep your key private. Treat it like a password. Do not expose it in client-side code or public repositories. Use environment variables in production.
.env
BOLTRPC_URL=https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/ethereum

Supported Networks

All networks below are available via both HTTPS and WebSocket unless noted.

NetworkSlugChain IDHTTPSWebSocket
Ethereum Mainnetethereum1
Ethereum Sepolia Testnetethereum-sepolia11155111
Ethereum Hoodi Testnetethereum-hoodi560048
Ethereum Beacon Chainethereum-beacon
Ethereum Sepolia Beaconethereum-sepolia-beacon
Ethereum Hoodi Beaconethereum-hoodi-beacon
Arbitrum Onearbitrum42161
Base Mainnetbase8453
Optimism Mainnetoptimism10
Polygon Mainnetpolygon137
Polygon Amoy (Testnet)polygon-amoy80002
BNB Chainbsc56
Avalanche C-Chainavax43114
zkSync Erazksync324
Scroll Mainnetscroll534352
Linealinea59144
ApeChainape33139
Monad Mainnetmonad143
Ink Mainnetink57073
Sonicsonic146
XLayerxlayer196
Starknet MainnetstarknetSN_MAIN
Solana Mainnetsolana101
Enjin Matrix Chainpublicpublic
Enjin Relay Chainpublicpublic

Hyperliquid support coming soon.


Connecting

EVM Networks

All EVM chains share the same URL pattern. Only the network slug changes.

HTTPS endpoint

url
https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/{network}

WebSocket endpoint

url
wss://endpoints.boltrpc.io/ws/YOUR_API_KEY/{network}

One request that works across every EVM chain

bash
# Set your target network
BOLTRPC_URL="https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/base"

curl -s -X POST "$BOLTRPC_URL" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Ethereum testnets

url
# Sepolia — dApp development & smart contract testing
https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/ethereum-sepolia

# Hoodi — validator infrastructure & staking
https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/ethereum-hoodi
Per-chain guides:Ethereum ·Arbitrum ·Base ·Polygon ·Optimism ·Solana

Beacon Chain REST API

The Ethereum Beacon Chain API is a REST API, not a JSON-RPC interface. It exposes consensus layer data: validators, slots, epochs, finality checkpoints, and withdrawal information. It does not support eth_* methods.

Authentication: Beacon endpoints authenticate the same way as EVM endpoints: the API key is embedded in the URL path, with the REST path appended after the network slug.

NetworkBase URL
Mainnet Beacon...boltrpc.io/rpc/YOUR_API_KEY/ethereum-beacon
Sepolia Beacon...boltrpc.io/rpc/YOUR_API_KEY/ethereum-sepolia-beacon
Hoodi Beacon...boltrpc.io/rpc/YOUR_API_KEY/ethereum-hoodi-beacon

WebSocket: not available. Beacon Chain API is REST only.

Check sync status

bash
curl "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/ethereum-beacon/eth/v1/node/syncing"

Get finality checkpoints

bash
curl "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/ethereum-beacon/eth/v1/beacon/states/finalized/finality_checkpoints"

Common Beacon API paths

PathDescription
GET /eth/v1/node/syncingNode sync status and head slot
GET /eth/v1/beacon/headers/headLatest beacon block header
GET /eth/v2/beacon/blocks/{block_id}Full beacon block including execution payload
GET /eth/v1/beacon/states/{state_id}/finality_checkpointsJustified and finalized epochs
GET /eth/v1/beacon/states/head/validators/{index}Single validator status and balance
GET /eth/v1/beacon/states/head/validators?status=active_ongoingFiltered validator set

Starknet

EnvironmentHTTPSWebSocket
Mainnet...boltrpc.io/rpc/YOUR_API_KEY/starknet...boltrpc.io/ws/YOUR_API_KEY/starknet

Example: get block number

bash
curl -X POST "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/starknet" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"starknet_blockNumber","params":[],"id":1}'

WebSocket subscription

json
{"jsonrpc":"2.0","id":1,"method":"starknet_subscribe","params":["newHeads"]}

Enjin public · no key

Both Enjin endpoints are public. No API key required.

ChainHTTPSWebSocket
Matrix Chainhttps://enjin-matrix-chain.matrixed.linkwss://enjin-matrix-chain.matrixed.link
Relay Chainhttps://enjin-relay-chain.matrixed.linkwss://enjin-relay-chain.matrixed.link
bash
# Matrix Chain — HTTPS (node health)
curl -s -X POST "https://enjin-matrix-chain.matrixed.link" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"system_health","params":[],"id":1}'

# Relay Chain — HTTPS (finalized head)
curl -s -X POST "https://enjin-relay-chain.matrixed.link" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"chain_getFinalizedHead","params":[],"id":1}'

# Matrix Chain — WebSocket (subscribe to new heads)
wscat -c wss://enjin-matrix-chain.matrixed.link

Code Examples

javascript
const BOLTRPC_URL = "https://endpoints.boltrpc.io/rpc/YOUR_API_KEY/ethereum";

async function getBlockNumber() {
  const res = await fetch(BOLTRPC_URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ jsonrpc: "2.0", method: "eth_blockNumber", params: [], id: 1 }),
  });
  const data = await res.json();
  console.log("Latest block:", parseInt(data.result, 16));
}

getBlockNumber();

API Reference

Ethereum / EVM Methods

General: Web3, Net, Txpool

MethodDescriptionRU
web3_clientVersionReturns the current client version3
web3_sha3Returns Keccak-256 hash of the given data3
net_versionReturns the network/chain ID3
net_listeningWhether the client is listening for peers3
net_peerCountNumber of connected peers3
txpool_statusPending/queued tx counts (Geth only)6
txpool_inspectText summary of txpool (Geth only)6
txpool_contentAll pending/queued txs (Geth only, heavy)12
txpool_contentFromPending/queued txs for an address6

Ethereum Core

MethodDescriptionRUNotes
eth_syncingNode sync status3
eth_chainIdCurrent chain ID3Preferred over net_version for EIP-155
eth_gasPriceCurrent gas price in wei3Consider EIP-1559 fields instead
eth_maxPriorityFeePerGasSuggested tip (wei)3EIP-1559
eth_blockNumberLatest block number3
eth_getBalanceBalance of an address3
eth_getCodeContract bytecode at address3
eth_getStorageAtValue at a storage slot3Archive required for historical blocks
eth_getTransactionCountNonce / tx count for address3
eth_callRead-only call (no state change)3
eth_estimateGasGas estimate for a call/tx3
eth_sendRawTransactionBroadcast a signed transaction5Recommended for production
eth_getTransactionByHashTransaction by hash3
eth_getTransactionReceiptTransaction receipt3
eth_getBlockByNumberBlock by number3
eth_getBlockByHashBlock by hash3
eth_getLogsLogs matching filter criteria4
eth_newFilterCreate a log filter3
eth_newBlockFilterFilter for new blocks3
eth_newPendingTransactionFilterFilter for pending txs3
eth_getFilterChangesPoll filter deltas3
eth_getFilterLogsAll logs for a filter3
eth_uninstallFilterRemove a filter3
eth_subscribeSubscribe to event stream3WebSocket only
eth_unsubscribeCancel a subscription3WebSocket only
eth_getProofAccount/storage Merkle proof3

Debug & Trace (Business & Enterprise)

These methods require a Business or Enterprise plan and archive node access. Contact us to enable.

MethodDescriptionRU
debug_traceTransactionOpcode-level trace for a tx6
debug_traceBlockByHashTrace all txs in a block (by hash)6
debug_traceBlockByNumberTrace all txs in a block (by number)6
debug_traceCallTrace a simulated call6
debug_storageRangeAtPartial state trie slice6
trace_callTrace a call at a given block6
trace_transactionFull trace of a transaction6
trace_blockTrace all txs in a block6
trace_replayTransactionReplay and trace a transaction12
trace_replayBlockTransactionsReplay block with traces12
trace_filterTrace logs by filter criteria6
trace_callManyBatch call traces6

Method Weighting

BoltRPC uses a request unit (RU) weighting system to fairly account for the varying cost of different RPC methods. RU weights are fixed and published, so you know the exact cost of every call before you build.

RU WeightMethods
3Standard reads: eth_blockNumber, eth_getBalance, eth_call, eth_chainId and most standard methods
4eth_getLogs: log queries
5eth_sendRawTransaction: transaction broadcast
6debug_*, trace_*, txpool_status, txpool_inspect, txpool_contentFrom
12txpool_content, trace_replayTransaction, trace_replayBlockTransactions, personal_sign
20personal_sendTransaction, parity_listStorageKeys

WebSocket Subscriptions

WebSocket connections enable real-time event streaming without polling. Available on all paid plans.

Connect

bash
wscat -c "wss://endpoints.boltrpc.io/ws/YOUR_API_KEY/ethereum"

Subscribe to new block headers

json
{"jsonrpc":"2.0","id":1,"method":"eth_subscribe","params":["newHeads"]}

Subscribe to logs (e.g. ERC-20 Transfer events)

json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "eth_subscribe",
  "params": [
    "logs",
    {
      "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]
    }
  ]
}

Subscribe to pending transactions

json
{"jsonrpc":"2.0","id":3,"method":"eth_subscribe","params":["newPendingTransactions"]}

Unsubscribe

json
{"jsonrpc":"2.0","id":4,"method":"eth_unsubscribe","params":["YOUR_SUBSCRIPTION_ID"]}

Each subscription is tied to the active connection and closes automatically when the socket disconnects.


Chain IDs

Use these when configuring wallets (MetaMask, Rabby) or EVM SDKs (ethers.js, viem, web3.py).

NetworkChain ID (decimal)Chain ID (hex)
Ethereum Mainnet10x1
Ethereum Sepolia Testnet111551110xaa36a7
Ethereum Hoodi Testnet5600480x88bb0
Arbitrum One421610xa4b1
Base Mainnet84530x2105
Optimism Mainnet100xa
Polygon Mainnet1370x89
BNB Chain560x38
Avalanche C-Chain431140xa86a
zkSync Era3240x144
Scroll Mainnet5343520x82750
Linea591440xe708
ApeChain331390x8173
Monad Mainnet1430x8f
Ink Mainnet570730xdef1
Sonic1460x92
XLayer1960xc4
Polygon Amoy (Testnet)800020x13882

Key Restrictions

Every API key can be scoped to exactly one job, self-serve on every plan. Changes are enforced at the edge within about 30 seconds.

RestrictionWhat it does
Chain scopeLimit a key to specific chains, or allow all of them.
IP allowlistOne IP or CIDR range per line. Requests from anywhere else are refused.
Origin allowlistLock a key to browser origins, wildcards included (https://*.example.com). Requests without a matching Origin or Referer are refused.
Method policyAllow or deny individual methods or whole families like debug_*. Applies to HTTP and WebSocket.
Rate limit & daily capA per-key requests-per-second limit with burst budget, plus a hard daily request cap that resets at 00:00 UTC.
ExpiryAn optional expiry date, or never.

Key rotation. Rolling a key issues a new secret immediately while the old one keeps working for a grace period you pick: revoke now, 1 hour, 24 hours or 7 days. Deploys never break mid-rotation.


Webhooks

Receive on-chain events and account events as signed HTTP POSTs. Create webhooks in the dashboard, per chain, with a test ping and a delivery log per attempt.

On-chain events

EventPayloadPrice
new_blockEvery block: number, hash, gas used, transaction count.2 RU / event
tx_statusA mined or dropped verdict for every transaction hash you register.10 RU / event
address_activityNative and ERC-20 transfers from or to your address list, batched per block.10 RU / event

Every event is delivered twice: once when seen (confirmed: false) and again after enough confirmations (confirmed: true). A reorged-out block delivers the same event with removed: true. Each delivery carries a stable id for idempotent processing. Failed deliveries retry after 1, 5 and 30 minutes; after that the webhook pauses and your events stay queued. Only confirmed deliveries cost request units.

Signing. Every delivery carries X-BoltRPC-Signature (sha256=HMAC(secret, timestamp + "." + body)), X-BoltRPC-Timestamp, X-BoltRPC-Event and X-BoltRPC-Delivery.

Account events. The same pipeline delivers quota.threshold_reached, api_key.disabled, api_key.rotated, payment.failed, payment.recovered and team membership events.


Usage, Alerts & Export

The dashboard's Usage & Logs view breaks traffic down by method, network, key and status, with human-readable labels for every JSON-RPC error code. History is retained for 18 months.

Export. Request logs export as CSV or NDJSON (up to 92 days and 1M rows per file); usage summaries export as CSV or JSON.

Alerts. Email alerts fire at 80%, 90% and 100% of your included request units, plus one custom threshold you pick. If you enable on-demand overage, separate alerts fire against the spending limit you set.


Teams

Invite teammates by email or link. Per member you decide:

PolicyEffect
Billing modeThe member rides on your plan, or pays for their own subscription.
Chain allowancePin which chains the member's keys may use.
Usage capA request-unit budget per billing period; requests past it return 429.
Key managementWhether the member creates their own keys, or only you do.

An organization-wide default policy applies to invites without their own. When a member leaves, their keys are disabled automatically.


Management API

Everything the dashboard does with keys is also available programmatically over a documented REST API: create, scope, restrict, rotate and revoke keys from your own tooling. The OpenAPI specification ships with your account; contact us for access details and examples.


Plans & Request Units

PlanPriceRUs / MonthArchiveTrace/DebugSupport
Builder$49/mo30M RUsCommunity
ProPopular$199/mo150M RUsBusiness hours
Business$699/mo500M RUsOn requestOn request24/7 monitoring
EnterpriseCustomCustomDedicated team-member

Pricing is flat and fixed monthly. Accepts credit card and crypto. See full pricing →


Support

© 2026 BoltRPC, operated by Matrixed.Link. ISO/IEC 27001:2022 certified.