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.
Quick Start
Get your first response in under 60 seconds.
Get your API key
Sign up at trial.boltrpc.io - free 2-week trial, instant key delivery. Copy your API key from the dashboard.
Get free API key →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
curl -s -X POST \
"https://eu.endpoints.matrixed.link/rpc/ethereum?auth=YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' Response
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x14a5f3b"
} 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.
https://eu.endpoints.matrixed.link/rpc/{network}?auth=YOUR_API_KEY
wss://eu.endpoints.matrixed.link/ws/{network}?auth=YOUR_API_KEY 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.
BOLTRPC_URL=https://eu.endpoints.matrixed.link/rpc/ethereum?auth=YOUR_API_KEY Supported Networks
All networks below are available via both HTTPS and WebSocket unless noted.
| Network | Slug | Chain ID | HTTPS | WebSocket |
|---|---|---|---|---|
| Ethereum Mainnet | ethereum | 1 | ✓ | ✓ |
| Ethereum Sepolia Testnet | ethereum-sepolia | 11155111 | ✓ | ✓ |
| Ethereum Hoodi Testnet | ethereum-hoodi | 560048 | ✓ | ✓ |
| Ethereum Beacon Chain | ethereum-beacon | — | ✓ | ✗ |
| Ethereum Sepolia Beacon | ethereum-sepolia-beacon | — | ✓ | ✗ |
| Ethereum Hoodi Beacon | ethereum-hoodi-beacon | — | ✓ | ✗ |
| Arbitrum One | arbitrum | 42161 | ✓ | ✓ |
| Base Mainnet | base | 8453 | ✓ | ✓ |
| Optimism Mainnet | optimism | 10 | ✓ | ✓ |
| Polygon Mainnet | polygon | 137 | ✓ | ✓ |
| Polygon Amoy (Testnet) | polygon-amoy | 80002 | ✓ | ✓ |
| BNB Chain | bsc | 56 | ✓ | ✓ |
| Avalanche C-Chain | avax | 43114 | ✓ | ✓ |
| zkSync Era | zksync | 324 | ✓ | ✓ |
| Scroll Mainnet | scroll | 534352 | ✓ | ✓ |
| Linea | linea | 59144 | ✓ | ✓ |
| ApeChain | ape | 33139 | ✓ | ✓ |
| Sonic | sonic | 146 | ✓ | ✓ |
| XLayer | xlayer | 196 | ✓ | ✓ |
| Moonbeam | moonbeam | 1284 | ✓ | ✓ |
| Moonriver | moonriver | 1285 | ✓ | ✓ |
| Starknet Mainnet | starknet | — | ✓ | ✓ |
| Solana Mainnet | solana | — | on request | on request |
| Enjin Matrix Chain | — | — | public | public |
| Enjin Relay Chain | — | — | public | public |
Hyperliquid support coming soon.
Connecting
EVM Networks
All EVM chains share the same URL pattern. Only the network slug changes.
HTTPS endpoint
https://eu.endpoints.matrixed.link/rpc/{network}?auth=YOUR_API_KEY WebSocket endpoint
wss://eu.endpoints.matrixed.link/ws/{network}?auth=YOUR_API_KEY One request that works across every EVM chain
# Set your target network
BOLTRPC_URL="https://eu.endpoints.matrixed.link/rpc/base?auth=YOUR_API_KEY"
curl -s -X POST "$BOLTRPC_URL" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' Ethereum testnets
# Sepolia — dApp development & smart contract testing
https://eu.endpoints.matrixed.link/rpc/ethereum-sepolia?auth=YOUR_API_KEY
# Hoodi — validator infrastructure & staking
https://eu.endpoints.matrixed.link/rpc/ethereum-hoodi?auth=YOUR_API_KEY 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 use Authorization: Bearer YOUR_API_KEY in the request header — not the ?auth= query parameter used by EVM endpoints.
| Network | Base URL |
|---|---|
| Mainnet Beacon | ...matrixed.link/rpc/ethereum-beacon |
| Sepolia Beacon | ...matrixed.link/rpc/ethereum-sepolia-beacon |
| Hoodi Beacon | ...matrixed.link/rpc/ethereum-hoodi-beacon |
WebSocket: not available. Beacon Chain API is REST only.
Check sync status
curl "https://eu.endpoints.matrixed.link/rpc/ethereum-beacon/eth/v1/node/syncing" \
-H "Authorization: Bearer YOUR_API_KEY" Get finality checkpoints
curl "https://eu.endpoints.matrixed.link/rpc/ethereum-beacon/eth/v1/beacon/states/finalized/finality_checkpoints" \
-H "Authorization: Bearer YOUR_API_KEY" Common Beacon API paths
| Path | Description |
|---|---|
GET /eth/v1/node/syncing | Node sync status and head slot |
GET /eth/v1/beacon/headers/head | Latest beacon block header |
GET /eth/v2/beacon/blocks/{block_id} | Full beacon block including execution payload |
GET /eth/v1/beacon/states/{state_id}/finality_checkpoints | Justified 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_ongoing | Filtered validator set |
Starknet
Environment HTTPS WebSocket Mainnet ...matrixed.link/rpc/starknet?auth=YOUR_KEY ...matrixed.link/ws/starknet?auth=YOUR_KEY
Example: get block number
bash curl -X POST "https://eu.endpoints.matrixed.link/rpc/starknet?auth=YOUR_API_KEY" \
-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 required
Both Enjin endpoints are public. No API key required.
Chain HTTPS WebSocket Matrix Chain https://enjin-matrix-chain.matrixed.link wss://enjin-matrix-chain.matrixed.link Relay Chain https://enjin-relay-chain.matrixed.link wss://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
const BOLTRPC_URL = "https://eu.endpoints.matrixed.link/rpc/ethereum?auth=YOUR_API_KEY";
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
| Method | Description | RU |
|---|---|---|
web3_clientVersion | Returns the current client version | 3 |
web3_sha3 | Returns Keccak-256 hash of the given data | 3 |
net_version | Returns the network/chain ID | 3 |
net_listening | Whether the client is listening for peers | 3 |
net_peerCount | Number of connected peers | 3 |
txpool_status | Pending/queued tx counts (Geth only) | 6 |
txpool_inspect | Text summary of txpool (Geth only) | 6 |
txpool_content | All pending/queued txs (Geth only, heavy) | 12 |
txpool_contentFrom | Pending/queued txs for an address | 6 |
Ethereum Core
| Method | Description | RU | Notes |
|---|---|---|---|
eth_protocolVersion | Ethereum protocol version | 3 | |
eth_syncing | Node sync status | 3 | |
eth_chainId | Current chain ID | 3 | Preferred over net_version for EIP-155 |
eth_gasPrice | Current gas price in wei | 3 | Consider EIP-1559 fields instead |
eth_maxPriorityFeePerGas | Suggested tip (wei) | 3 | EIP-1559 |
eth_blockNumber | Latest block number | 3 | |
eth_getBalance | Balance of an address | 3 | |
eth_getCode | Contract bytecode at address | 3 | |
eth_getStorageAt | Value at a storage slot | 3 | Archive required for historical blocks |
eth_getTransactionCount | Nonce / tx count for address | 3 | |
eth_call | Read-only call (no state change) | 3 | |
eth_estimateGas | Gas estimate for a call/tx | 3 | |
eth_sendRawTransaction | Broadcast a signed transaction | 5 | Recommended for production |
eth_getTransactionByHash | Transaction by hash | 3 | |
eth_getTransactionReceipt | Transaction receipt | 3 | |
eth_getBlockByNumber | Block by number | 3 | |
eth_getBlockByHash | Block by hash | 3 | |
eth_getLogs | Logs matching filter criteria | 4 | |
eth_newFilter | Create a log filter | 3 | |
eth_newBlockFilter | Filter for new blocks | 3 | |
eth_newPendingTransactionFilter | Filter for pending txs | 3 | |
eth_getFilterChanges | Poll filter deltas | 3 | |
eth_getFilterLogs | All logs for a filter | 3 | |
eth_uninstallFilter | Remove a filter | 3 | |
eth_subscribe | Subscribe to event stream | 3 | WebSocket only |
eth_unsubscribe | Cancel a subscription | 3 | WebSocket only |
eth_getProof | Account/storage Merkle proof | 3 |
Debug & Trace (Business & Enterprise)
These methods require a Business or Enterprise plan and archive node access. Contact us to enable.
| Method | Description | RU |
|---|---|---|
debug_traceTransaction | Opcode-level trace for a tx | 6 |
debug_traceBlockByHash | Trace all txs in a block (by hash) | 6 |
debug_traceBlockByNumber | Trace all txs in a block (by number) | 6 |
debug_traceCall | Trace a simulated call | 6 |
debug_storageRangeAt | Partial state trie slice | 6 |
trace_call | Trace a call at a given block | 6 |
trace_transaction | Full trace of a transaction | 6 |
trace_block | Trace all txs in a block | 6 |
trace_replayTransaction | Replay and trace a transaction | 12 |
trace_replayBlockTransactions | Replay block with traces | 12 |
trace_filter | Trace logs by filter criteria | 6 |
trace_callMany | Batch call traces | 6 |
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 Weight | Methods |
|---|---|
| 3 | Standard reads: eth_blockNumber, eth_getBalance, eth_call, eth_chainId and most standard methods |
| 4 | eth_getLogs: log queries |
| 5 | eth_sendRawTransaction: transaction broadcast |
| 6 | debug_*, trace_*, txpool_status, txpool_inspect, txpool_contentFrom |
| 12 | txpool_content, trace_replayTransaction, trace_replayBlockTransactions, personal_sign |
| 20 | personal_sendTransaction, parity_listStorageKeys |
WebSocket Subscriptions
WebSocket connections enable real-time event streaming without polling. Available on all paid plans.
Connect
wscat -c "wss://eu.endpoints.matrixed.link/ws/ethereum?auth=YOUR_API_KEY" Subscribe to new block headers
{"jsonrpc":"2.0","id":1,"method":"eth_subscribe","params":["newHeads"]} Subscribe to logs (e.g. ERC-20 Transfer events)
{
"jsonrpc": "2.0",
"id": 2,
"method": "eth_subscribe",
"params": [
"logs",
{
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]
}
]
} Subscribe to pending transactions
{"jsonrpc":"2.0","id":3,"method":"eth_subscribe","params":["newPendingTransactions"]} Unsubscribe
{"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).
| Network | Chain ID (decimal) | Chain ID (hex) |
|---|---|---|
| Ethereum Mainnet | 1 | 0x1 |
| Ethereum Sepolia Testnet | 11155111 | 0xaa36a7 |
| Ethereum Hoodi Testnet | 560048 | 0x88bb0 |
| Arbitrum One | 42161 | 0xa4b1 |
| Base Mainnet | 8453 | 0x2105 |
| Optimism Mainnet | 10 | 0xa |
| Polygon Mainnet | 137 | 0x89 |
| BNB Chain | 56 | 0x38 |
| Avalanche C-Chain | 43114 | 0xa86a |
| zkSync Era | 324 | 0x144 |
| Scroll Mainnet | 534352 | 0x82750 |
| Linea | 59144 | 0xe708 |
| ApeChain | 33139 | 0x814b |
| Sonic | 146 | 0x92 |
| XLayer | 196 | 0xc4 |
| Moonbeam | 1284 | 0x504 |
| Moonriver | 1285 | 0x505 |
| Polygon Amoy (Testnet) | 80002 | 0x13882 |
Plans & Request Units
| Plan | Price | RUs / Month | Archive | Trace/Debug | Support |
|---|---|---|---|---|---|
| Builder | $49/mo | 30M RUs | — | — | Community |
| Pro | $199/mo | 150M RUs | — | — | Business hours |
| Business Popular | $699/mo | 500M RUs | — | — | 24/7 monitoring |
| Enterprise | $1,499/mo | 1B RUs | ✓ | ✓ | Dedicated 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.