GUIDENodes, 7 chapters
What is an RPC node? Real requests, real answers
An RPC node is a blockchain node that answers questions from apps. Your wallet, bot or website sends it a short message like "what is my balance?" or "send this transaction", and the node replies from its own copy of the chain.
Most explanations stop there. We sent real requests to four chains in October 2026 and show you the exact answers, so you can see what your app sees.
Then the parts every developer runs into: the fields of a request, error codes, ports, the kinds of endpoint you can use, and how to keep a node you run yourself safe.
- Updated
- Docs checked
- Read
- 10 min
Where do you want to start?
In this guideThe quick answer
Quick answer
What is an RPC node, in short?
An RPC node is a node that keeps a copy of a blockchain and opens a door for apps to talk to it. RPC means remote procedure call: your app asks the node to run a function and send back the result.
The door has an address, called the RPC endpoint. Apps send requests there, usually as small JSON messages over HTTPS or WebSocket.
It reads and relays. It answers questions about blocks, balances and contracts, and passes your signed transactions to the network. On most chains it does not make blocks itself.
- Same software as other nodes, with the API turned on
- Answers in JSON, one reply per request
- Never needs your private key
CHAPTER 01
What an RPC node does, and what it does not
A node with its API switched on. Nothing more mysterious than that.
An RPC node is a full or archive node that serves an API. It stores the chain, checks every new block, and answers app requests about that data. It also forwards transactions to the rest of the network.
Every wallet and dapp needs one. When MetaMask shows your balance, it asked an RPC node. When you press send, your wallet signs the transaction on your device and an RPC node passes it on.
"RPC node" names a job, not a different kind of software. On Solana the docs say it plainly: the RPC node runs the same software as a validator, but it "does not participate in the consensus process". It spends its power on answering requests.
| Question | RPC node | Validator |
|---|---|---|
| Keeps a copy of the chain | Yes | Yes |
| Answers app requests | Yes, that is its job | Usually closed to apps |
| Makes or votes on blocks | No | Yes |
| Needs stake | No | On proof of stake chains |
| Earns rewards | No | Yes, with risk |
Small or test setups sometimes do both on one machine. Solana's docs advise against it on mainnet, because the node does neither job well.
How much history an RPC node can answer about depends on the node type. A full node answers about recent state; for balances at old blocks you need an archive node. The hardware each chain needs is in the node requirements index.
CHAPTER 02
How an RPC request works, with real answers
Four steps, then five real requests you can copy.
Your app writes a small JSON message naming a method and its inputs, sends it to the endpoint, and the node looks up the answer in its copy of the chain and sends back JSON with the same id.
- Step 1: Your app writes the requestA method name like `eth_blockNumber`, its inputs, and an id to match the reply.
- Step 2: It goes to the endpointOver HTTPS for one question, or over a WebSocket kept open for a stream of them.
- Step 3: The node looks it upIt reads its own database. No other node is asked, which is why a node that falls behind gives stale answers.
- Step 4: The reply comes backEither a `result` or an `error`, never both, with the same id.
Here is what that looks like. We asked public mainnet nodes the same simple question in October 2026: how far along is the chain? Pick a chain to see the request, the exact reply, and what it means.
Notice that each chain speaks its own dialect. Ethereum sends numbers in hex. Solana counts slots. Bitcoin Core uses an older reply format by default. Cosmos takes a plain web address. Libraries like ethers.js or @solana/kit hide these details, but this is what travels under them.
CHAPTER 03
The parts of a request, a reply and an error
Four fields out, three fields back, and five error codes worth knowing.
Most chains use JSON-RPC 2.0. A request has "jsonrpc", "method", "params" and "id". A reply has "jsonrpc", "id" and either "result" or "error". The JSON-RPC 2.0 specification defines the error codes every node uses.
| Field | In | What it holds |
|---|---|---|
jsonrpc | Both | Always the text "2.0" |
method | Request | The function to run, such as eth_getBalance or getSlot |
params | Request | The inputs, as a list or an object. Some methods take none |
id | Both | A number or text you choose. The reply carries it back. Leave it out and the node sends no reply at all |
result | Reply | The answer, when the call worked |
error | Reply | A code and a message, when it did not |
Error codes you will meet
| Code | Message | What went wrong | What to check |
|---|---|---|---|
| -32700 | Parse error | The node could not read your JSON | A missing quote or bracket in the body |
| -32600 | Invalid Request | Valid JSON, but not a proper request | The jsonrpc and method fields |
| -32601 | Method not found | The node does not offer that method | Spelling, or a method your node or plan does not enable |
| -32602 | Invalid params | The inputs are wrong | Number of inputs, hex format, address length |
| -32603 | Internal error | The node failed while answering | Retry; if it repeats, the node needs attention |
| -32000 to -32099 | Server error | Codes each client defines itself | The message text, which says more |
Codes and messages from the JSON-RPC 2.0 specification. Rate limits are not JSON-RPC errors: a busy shared endpoint answers with HTTP status 429 before your request reaches a node.
Which block are you asking about?
Many methods take a block as an input. On Ethereum you can pass a number or a tag: latest (newest block), safe, finalized (cannot be reversed), pending or earliest (block 0), as the Ethereum JSON-RPC docs list them. Solana calls it commitment: processed is newest but can still be rolled back, confirmed has votes from more than two thirds of stake, and finalized is the default.
CHAPTER 04
HTTP, WebSocket and the ports each node uses
Ask once over HTTP, or keep a WebSocket open for live updates.
HTTP is for single questions: send, get one answer, done. WebSocket keeps a connection open so the node can push new blocks, logs or account changes to you as they happen. Each client listens on its own default port, such as 8545 for Geth over HTTP and 8546 for its WebSocket.
Use HTTP for reads and sending transactions. Use WebSocket when you would otherwise ask "anything new?" every second: a trading bot watching blocks, or a wallet waiting for a payment to land. Subscriptions like eth_subscribe or Solana's accountSubscribe only work over WebSocket.
| Client | Chain | HTTP | WebSocket |
|---|---|---|---|
| Geth | Ethereum | 8545 | 8546 |
| Bitcoin Core | Bitcoin | 8332 | None |
| Solana local node | Solana | 8899 | 8900 |
| CometBFT | Cosmos Hub | 26657 | 26657, path /websocket |
Checked October 2026. Geth and CometBFT listen only on the machine itself (127.0.0.1) unless you change it. Bitcoin Core's port is set in its chain parameters code.
On a hosted node you never type these ports. You get a private address, and the provider routes it to the right port behind its firewall.
CHAPTER 05
Public, shared, dedicated or your own RPC node
Four ways to get an endpoint, from free to fully yours.
You can use a free public endpoint, a shared paid plan, a dedicated node someone runs for you, or a node you run yourself. They answer the same calls. They differ in limits, price, and who else uses the node.
| Kind | Who uses it | How you pay | Good for |
|---|---|---|---|
| Public endpoint | Anyone | Free | Trying things out and quick scripts |
| Shared plan | Many paying customers | Per request, in credits or units | Apps with low or uneven traffic, many chains |
| Dedicated node | Only you | Flat monthly price | Steady heavy traffic, bots, indexers |
| Your own node | Only you | Server cost plus your time | Teams with someone to look after it |
Public endpoints are tightly limited. Solana's public mainnet endpoint allows 100 requests every 10 seconds per IP address, and 40 for any one method, and its cluster docs say these endpoints "are not intended for production applications".
Shared plans lift those limits for a fee, but bill per request and cap requests per second. The dedicated vs shared RPC guide finds the traffic where a flat node becomes cheaper, and the RPC pricing index prices six providers for the same traffic.
CHAPTER 06
Running your own RPC node safely
The official docs agree: do not open the RPC port to the internet.
Keep the RPC port closed to the internet and put a proxy with a password or key in front of it. Geth's docs warn that bots constantly scan for open Ethereum nodes, and Bitcoin Core's docs say not to enable RPC over the public internet at all.
The warnings are blunt. Geth: "there are bots that continually scan for http-enabled Ethereum nodes to attack". Bitcoin Core: "Do not enable RPC connections over the public Internet", because its RPC was not hardened for arbitrary internet traffic and, without TLS in front of it, sends logins in clear text.
CHAPTER 07
What an RPC node costs on HeroRPC
A whole node, one flat price, ready within a day.
A dedicated RPC node on HeroRPC costs from $139 a month ($139 on Ethereum), with no per-request billing and no setup fee. Archive nodes start at $289. Your private endpoint is ready within 24 hours of payment.
Each node runs on its own server with a backup node beside it. The RPC port stays on localhost and your app reaches it through a private endpoint that needs your key, so the safety list above is already done. You also get the server logins, and you pay in crypto.
Pick a chain on the dedicated nodes page or compare every chain on node pricing.
QUESTIONS
RPC node questions
What is an RPC node in simple terms?
A blockchain node that answers questions from apps. Your wallet or app sends it a request, like "what is this balance?", and the node replies from its own copy of the chain. It also passes your signed transactions to the network.
What is the difference between an RPC node and an RPC endpoint?
The node is the server running the blockchain software. The endpoint is the address your app sends requests to. One endpoint can lead to one node, or to many nodes behind a load balancer on a shared plan.
Is an RPC node the same as a validator?
No. A validator makes or votes on blocks and usually needs stake. An RPC node answers app requests and does not take part in consensus. They can run the same software.
Does an RPC node need my private key?
No. Your wallet signs the transaction on your device and sends the signed result. The node only passes it on. Never put a private key on a server that answers RPC requests.
What port does an RPC node use?
It depends on the client. Geth uses 8545 for HTTP and 8546 for WebSocket, Bitcoin Core 8332, a local Solana node 8899 and 8900, and CometBFT 26657. These ports should stay closed to the internet, behind a proxy.
Can I use a free public RPC endpoint for my app?
For testing, yes. For a live app, no: public endpoints have tight limits (Solana's allows 100 requests per 10 seconds per IP) and Solana's own docs say they are not meant for production.
What does error -32601 mean?
Method not found. The node does not offer the method you called. Check the spelling, and check that the method is turned on for your node or plan.
ABOUT
How we made this guide
In October 2026 we sent one request to a public mainnet node of Ethereum, Solana, Bitcoin and the Cosmos Hub, plus one request with a misspelled method, and copied the replies as received (the Cosmos reply is shortened to the lines we explain). The endpoint is shown as a placeholder because any node of that chain answers the same way. Ports, error codes and warnings come from each project's own docs or code, checked in October 2026. HeroRPC prices are our own list prices.
Written by
Written and checked by the people who run HeroRPC's builder and node servers. Every figure links to its source.
Published . Last updated .
Get an RPC node that answers only you
A private endpoint on its own server, from $139 a month. Pick the chain, pay in crypto, and it is ready within 24 hours.