Ethereum RPC endpoint — node URL & WebSocket API
Last updated:
Get API key Read the documentation
Network details
| Network | Ethereum mainnet |
|---|---|
| Chain ID | 1 (0x1) |
| Currency | ETH |
| RPC URL | https://triport.io/eth |
| WebSocket URL | wss://triport.io/ws/eth |
| Keyed URL for wallets | https://triport.io/r/<API_KEY>/eth |
| Authentication | x-token: $TRIPORT_API_KEY (Authorization: Bearer also accepted), scope eth:rpc |
Need the values in a wallet or framework format? The Ethereum chain config generates them for MetaMask, viem, ethers, Hardhat and Foundry.
Try it without a key
https://triport.io/public/eth — 10 req/s reads, 3 req/s transaction sends — one budget shared by every caller. JSON-RPC over HTTPS POST with no key and no account; it is not a plan, and there is no WebSocket.
eth_getProof, debug_*, trace_* and txpool_* need Pro: the answer is tier_insufficient with an upgrade link, not a timeout. Sends work, and historical state answers.
curl https://triport.io/public/eth \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
# -> {"jsonrpc":"2.0","id":1,"result":"0x1"}Checked by a live probe on 2026-11-01. Bodies up to 256 KiB; a batch of 20 calls is answered.
Add it to a wallet from the Ethereum chain config, which has the button and the parameters.
What works today
| Capability | Status | Methods |
|---|---|---|
| JSON-RPC reads | Available | 32 methods |
| Transaction submission | Available | eth_sendRawTransaction |
| Debug | Available | 7 methods |
| eth_getProof | Available | eth_getProof |
| Trace and simulation | Available | 6 methods |
| trace_filter | Available | trace_filter |
| txpool (routed node view) | Available | txpool_content, txpool_inspect, txpool_status |
| WebSocket logs | Available | logs |
| WebSocket subscriptions (free+) | Available | newPendingTransactions |
| WebSocket subscriptions (pro+) | Available | newHeads, syncing |
| Beacon events (SSE) | Available | eth/v1/events |
Reads cover the standard EVM surface — balances, code and storage, calls and gas estimates, blocks and receipts (including eth_getBlockReceipts), transactions, logs, and fee history.
Transaction submission
Send signed, serialized transactions with eth_sendRawTransaction at https://triport.io/eth (available on every plan). A returned hash means the request was routed; the receipt decides inclusion.
Anything that is not in the “What works today” table is not sold on this page — each method's page in the Ethereum JSON-RPC reference documents it in full. We also publish no latency figures: the rate limits below are per-category RPS limits, not measured upstream capacity.
What teams run on it
- Wallet and portfolio backends. eth_getBalance and eth_call at historical blocks, batched, with the read budget as the only limit to plan around.
- Event indexers. eth_getLogs paged by block range, with eth_getBlockReceipts for full blocks.
- Investigation and backtesting. debug_traceTransaction from Pro; below Pro the call is refused, so check the plan before you build on it.
Testnet
Ethereum testnets: Sepolia (chain ID 11155111) and Hoodi (chain ID 560048). Triport serves mainnet only; switch the URL and chain ID for test work — Ethereum testnet connection values.
Terms on this page: Event log · Archive node · Transaction receipt.
Limits and plans
2× burst buffer, included. Finite request-rate limits show sustained RPS and short burst capacity. A full buffer at 20 RPS can absorb up to 40 requests at once and refills at 20 requests per second. There is no quota on the number of bursts and no extra charge for them. Size ongoing traffic to sustained RPS. Categories with no per-category cap have no numeric burst ceiling. How burst capacity works.
| Capability | Free trial (7 days) | Basic | Pro | Business | Enterprise |
|---|---|---|---|---|---|
| Reads (eth_read_rpc) | 10 RPS sustained · up to 20 burst | 20 RPS sustained · up to 40 burst | 100 RPS sustained · up to 200 burst | 250 RPS sustained · up to 500 burst | no per-category cap |
| Submission (eth_send_tx) | 3 RPS sustained · up to 6 burst | 5 RPS sustained · up to 10 burst | 30 RPS sustained · up to 60 burst | 80 RPS sustained · up to 160 burst | no per-category cap |
| Trace / debug (Pro+) | — | — | 5 RPS sustained · up to 10 burst / 5 RPS sustained · up to 10 burst | 15 RPS sustained · up to 30 burst / 15 RPS sustained · up to 30 burst | no per-category cap |
| WebSocket subscriptions | newPendingTransactions | + logs | + newHeads, syncing | same as Pro | all |
Sustained rates carry a 2x burst. Plans: Basic $20, Pro $249, Business $499, Enterprise from $999 per month — a flat monthly price, no credits or overage: only the per-category RPS limits above. Free is a 7-day trial with a single key in the EU region, not a permanent plan. See Ethereum limits.
Every plan with its limits on every network, and what a plan costs at its cap: RPC pricing.
Quickstart
# curl
curl https://triport.io/eth \
-H "x-token: $TRIPORT_API_KEY" -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'
# -> {"jsonrpc":"2.0","id":1,"result":"0x1"}
# viem
import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
const client = createPublicClient({
chain: mainnet,
transport: http("https://triport.io/r/<API_KEY>/eth"),
});
# Hardhat / Foundry
networks: { mainnet: { url: "https://triport.io/r/<API_KEY>/eth", chainId: 1 } }
rpc_endpoints = { mainnet = "https://triport.io/r/<API_KEY>/eth" }FAQ
- What is the Ethereum RPC endpoint?
- https://triport.io/eth for JSON-RPC over HTTPS and wss://triport.io/ws/eth for WebSocket subscriptions. Authenticate with the x-token header, or use the keyed URL https://triport.io/r/<API_KEY>/eth where a wallet cannot send a custom header.
- What is the Ethereum chain ID?
- 1 (0x1 in hex) for Ethereum mainnet. eth_chainId on the Triport endpoint returns 0x1. Standard EVM tooling — viem, ethers, Hardhat, Foundry, MetaMask — works against it.
- Is there a free Ethereum RPC endpoint?
- There is a 7-day free trial with one key in the EU region: 10 read requests per second on Ethereum, plus newPendingTransactions over WebSocket. After it, plans are flat monthly prices starting with Basic at $20.
- Which WebSocket subscriptions work on Ethereum?
- newPendingTransactions from the trial, logs from Basic, newHeads and syncing from Pro, over eth_subscribe at wss://triport.io/ws/eth.
- Does Triport charge credits or compute units for Ethereum calls?
- No. Each plan is a flat monthly price with a requests-per-second budget per category, so an eth_call and an eth_blockNumber cost the same: one request against the read budget.
- Can I send Ethereum transactions through Triport?
- Yes. Send signed, serialized transactions with eth_sendRawTransaction at https://triport.io/eth: 3/5/30/80 requests per second on the Free trial, Basic, Pro and Business. A returned hash means the request was routed — the receipt decides inclusion.
- What are the Ethereum rate limits?
- Reads 10/20/100/250 requests per second on the Free trial, Basic, Pro and Business, with a 2x burst. Enterprise has no per-category cap. These are per-category RPS limits, not measured upstream capacity.
- Is there a free Ethereum RPC?
- Yes, for testing: https://triport.io/public/eth needs no key and allows 10 reads per second, shared by every caller. A key starts with a 7-day trial.
- What happens when the public Ethereum endpoint returns 429?
- The shared budget is spent. The response carries Retry-After; wait that long or use your own key, whose limit is yours alone.
- Does Triport serve Sepolia or Hoodi?
- No. Triport serves Ethereum mainnet only. The testnet chain IDs and official sources are on the chain config page.
Ethereum read methods
- eth_blockNumber
- eth_call
- eth_chainId
- eth_estimateGas
- eth_feeHistory
- eth_gasPrice
- eth_getBalance
- eth_getBlockByHash
- eth_getBlockByNumber
- eth_getBlockReceipts
- eth_getBlockTransactionCountByHash
- eth_getBlockTransactionCountByNumber
- eth_getCode
- eth_getLogs
- eth_getStorageAt
- eth_getTransactionByBlockHashAndIndex
- eth_getTransactionByBlockNumberAndIndex
- eth_getTransactionByHash
- eth_getTransactionCount
- eth_getTransactionReceipt
- eth_getUncleByBlockHashAndIndex
- eth_getUncleByBlockNumberAndIndex
- eth_getUncleCountByBlockHash
- eth_getUncleCountByBlockNumber
- eth_maxPriorityFeePerGas
- eth_protocolVersion
- eth_syncing
- net_listening
- net_peerCount
- net_version
- web3_clientVersion
- web3_sha3