etox.io RPC documentation
This reference tracks the production gateway on gateway-01: OpenResty terminates TLS, Lua validates API keys against Redis, and upstream execution clients sit on a private 10.0.0.0/24 network. The customer dashboard for key management lives on dashboard.etox.io — separate from these static marketing pages for cache efficiency.
HTTPS endpoints (authenticated)
Replace YOUR_KEY with the secret from the dashboard. The first path segment is always the key.
| Chain | Host | Example URL |
|---|---|---|
| Ethereum | eth.etox.io |
https://eth.etox.io/YOUR_KEY |
| Arbitrum One | arb.etox.io |
https://arb.etox.io/YOUR_KEY |
| Base | base.etox.io |
https://base.etox.io/YOUR_KEY |
| Polygon | polygon.etox.io |
https://polygon.etox.io/YOUR_KEY (when live) |
WebSocket endpoints
Use wss:// with /ws/ before the key, for example:
wss://eth.etox.io/ws/YOUR_KEY
Health checks
GET /health on each chain host bypasses API key logic so uptime monitors and load balancers can
probe without secrets.
curl example (Ethereum)
curl -sS https://eth.etox.io/YOUR_KEY \
-H 'content-type: application/json' \
-d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_blockNumber\",\"params\":[]}'
ethers.js v6 (browser or Node)
import { JsonRpcProvider } from "ethers";
const provider = new JsonRpcProvider("https://eth.etox.io/YOUR_KEY");
const block = await provider.getBlockNumber();
viem
import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
const client = createPublicClient({
chain: mainnet,
transport: http("https://eth.etox.io/YOUR_KEY"),
});
Compute unit weights (Ethereum reference)
The gateway loads per-chain hashes such as rpc:cu:weights:ethereum. Representative weights
below match the internal spec — tune campaigns using these anchors.
| Method | CU (Ethereum) | Notes |
|---|---|---|
eth_blockNumber |
10 | Light heartbeat |
eth_getBalance |
19 | State read |
eth_getBlockByNumber |
33 | Block payload |
eth_getLogs |
75 | 150 on Polygon |
eth_call |
26 | Simulation |
eth_estimateGas |
87 | Heavier simulation |
eth_sendRawTransaction |
250 | Submission |
debug_traceTransaction |
309 | Trace family |
trace_block |
524 | Expensive |
Arbitrum extras
Additional methods such as arb_getL1BlockNumber (10 CU) and arb_getL2ToL1Proof (75 CU)
are tracked separately in rpc:cu:weights:arbitrum.
Base extras
Methods beyond the shared Ethereum JSON-RPC surface (OP Stack helpers the node exposes) are tracked separately in
rpc:cu:weights:base.
Rate limits & errors
- Missing key →
401 - Unknown or revoked key →
403 - Rate limit →
429with JSON error body
Public tier (rpcfree.com)
Ethereum JSON-RPC is exposed on a dedicated path without keys; responses include CU cost and daily remaining headers. Read /free for quotas and upgrade guidance.