FundamentalsIntermediate

What is an RPC Provider? How Apps Talk to Blockchains

What an RPC endpoint does, public vs private providers, why wallets show stale balances or fail to send, and how to choose a reliable provider.

ChainBridge ResearchUpdated 5 min read

On this page6 sections

Key takeaways

  • An RPC endpoint is the door between an app or wallet and a blockchain node: every balance, quote check and transaction goes through one.
  • Public endpoints are free but rate-limited and shared; paid providers such as Alchemy, Infura and QuickNode add capacity and extra APIs.
  • Most "wallet is broken" moments, like stale balances or stuck transactions, are RPC problems that switching endpoint fixes.
  • Whoever runs your RPC sees your IP address and which addresses you query, so choose it as carefully as you choose a wallet.

What is an RPC endpoint?

RPC stands for remote procedure call: one program asking another, on a different machine, to do something and return the result. On Ethereum and every compatible network, apps talk to nodes using a standard called JSON-RPC, sent over HTTPS or WebSocket.

An RPC endpoint is the URL of a node that answers those requests. Your wallet needs one per network to show balances and send transactions. Without a working endpoint, the wallet is blind, even though your funds are safe on-chain.

POST https://<rpc-endpoint>
{ "jsonrpc": "2.0", "id": 1, "method": "eth_getBalance",
  "params": ["0xYourAddress", "latest"] }

{ "jsonrpc": "2.0", "id": 1, "result": "0x2386f26fc10000" }   // 0.01 ETH in wei

How a request travels

App or walletbuilds requestRPC endpointpublic or providerNodereads its stateNetwork peersgossip new txseth_call, eth_sendRawTransactionresult, or a transaction hash for a writewrites only
An app or wallet sends a JSON-RPC request to an endpoint; the node answers from its copy of the chain or relays a signed transaction to the network.

Reads are answered straight from the node's copy of the chain. A write is a transaction your wallet has already signed: the node checks it and passes it to its peers, and it is mined like any other. The RPC cannot change a signed transaction, but it can delay or drop it.

JSON-RPC methods a wallet uses constantly
MethodWhat it does
eth_getBalanceNative balance of an address (ETH, POL, BNB...)
eth_callRead a contract without a transaction, e.g. an ERC-20 balance or a quote
eth_estimateGasHow much gas a transaction would use
eth_sendRawTransactionBroadcast a transaction your wallet has signed
eth_getTransactionReceiptWhether a transaction was mined, and whether it succeeded

Public vs private endpoints

Public endpoints are run by the network's foundation, a community or an infrastructure company as a free service. Private endpoints come from providers that sell capacity and add their own APIs on top.

Public and private RPC endpoints compared
AspectPublic endpointPrivate provider
CostFreeFree tier, then paid by usage
Rate limitsLow and shared with everyoneHigher, tied to your key
ReliabilityCan throttle or fail at busy timesMonitored, usually with an uptime commitment
ExtrasStandard methods onlyArchive data, traces, webhooks, enhanced APIs
PrivacyThe operator sees your IP and requestsThe provider sees them too, under its privacy policy

Well-known providers include Alchemy, Infura (MetaMask's default), QuickNode, Ankr and dRPC. Plans and free tiers change often; compare them on their own sites. Some services, such as Flashbots Protect on Ethereum, are RPC endpoints that send transactions privately to block builders instead of the public mempool. See MEV protection.

How ChainBridge uses RPCs

Your wallet sends the transaction

When you sign a swap, your wallet broadcasts it through its own RPC. Changing your wallet's endpoint changes where your transactions go.

The app reads balances

The interface reads balances and receipts from a public endpoint for each of the eight supported networks, independently of your wallet's connection.

Aggregators run their own nodes

0x, KyberSwap and ParaSwap price routes from their own infrastructure. ChainBridge calls their APIs, so it does not need to run a node per chain to quote.

Simulation and checks on the server

Before you sign, the swap is simulated with Tenderly against current state, and server-side checks query several endpoints with fallback.

When an RPC fails

Common RPC failures and fixes
SymptomLikely causeWhat to do
Balance or nonce looks wrongThe node is a few blocks behindCheck the address on a block explorer. Switch RPC if the gap persists.
Transaction stuck as pendingThe RPC accepted it but did not propagate it, or the gas price is too lowLook up the hash on an explorer. If it is unknown, resend through another RPC; if it is known, speed it up from your wallet.
Requests fail with 429 or 5xx errorsRate limit or provider outageAdd a second RPC for that network in your wallet and switch.
A call reverts that should succeedStale state, often right after a new block or a reorgWait a few seconds and refresh the quote.

Choosing an RPC

  • Occasional use: the wallet's default is fine. Note one backup endpoint per network you use, from the network's official docs or a site like chainlist.org, and check the chain ID matches.
  • Active trading: a free account with a major provider gives you your own key and higher limits.
  • Privacy: spread activity across providers, use a private transaction RPC on mainnet, or run your own node.
  • Building an app: use at least two providers with automatic fallback, and never ship a provider key in browser code if it has paid quota.

Developers can query ChainBridge quotes without a node or a key: see the API developer guide.

Put it into practice

Compare 0x, KyberSwap and ParaSwap in one quote, with every route checked before you sign.

Start swapping