Every endpoint uses the same shape. Swap the chain slug, keep the apikey — same gateway, same latency budget, no SDK required.
Plain POST with a JSON-RPC body. Same shape across every EVM chain.
curl --request POST \
--url https://gateway-1.speedynodes.net/http/eth-1?apikey=APIKEY \
--header 'Content-Type: application/json' \
--data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'Subscribe to new heads, pending tx, or logs in real time.
wscat -c wss://gateway-1.speedynodes.net/ws/eth-1?apikey=APIKEY
> {"jsonrpc":"2.0","id":1,"method":"eth_subscribe","params":["newHeads"]}
< {"jsonrpc":"2.0","method":"eth_subscription","params":{...}}import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
const client = createPublicClient({
chain: mainnet,
transport: http("https://gateway-1.speedynodes.net/http/eth-1?apikey=APIKEY"),
});
const block = await client.getBlockNumber();Replace eth-1 with the chain slug below.See all 25+ networks →
| Chain | Slug |
|---|---|
| Ethereum | eth-1 |
| BSC | bsc-1 |
| Polygon | pol-1 |
| Base | base-1 |
| Arbitrum | arbitrum-1 |
| Optimism | optimism-1 |
| Avalanche | avax-1 |
| Linea | linea-1 |
Append ?apikey=APIKEY to every request. Rotate keys anytime from the dashboard — no propagation delay.
Plans cap requests-per-second, not monthly volume. Unlimited calls within your RPS budget.See plans →
Method-by-method docs, error codes, archive examples — all on docs.speedynodes.com.
Open full docs