How an RPC endpoint works
Your wallet sends a JSON-RPC request such as eth_getBalance or eth_sendRawTransaction to the endpoint URL. The node behind it answers from its copy of the chain or passes the signed transaction to the network.[1]
Requests follow JSON-RPC 2.0. Numbers come back as hex strings with a 0x prefix in the most compact form, so 65 is returned as 0x41. Many methods take a block tag: latest, earliest, pending, safe or finalized.[1]
Example: a balance request
Illustrative example from the Ethereum JSON-RPC docs: a wallet asks for a balance by sending {"jsonrpc":"2.0","method":"eth_getBalance","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1","latest"],"id":1}. The node answers with {"id":1,"jsonrpc":"2.0","result":"0x0234c8a3397aab58"}, a balance in wei written in hex.[1]
The wallet then converts it for display: 1 ETH equals 10^18 wei.[2]
The docs' curl examples send requests to a node at 127.0.0.1:8545, the address a locally run node commonly uses.[1]
eth_chainId returns the chain ID used for replay protection. Mainnet is chain ID 1 under EIP-155, so a wallet can check that an endpoint labeled Ethereum really serves mainnet before it signs anything.[3]
A second example from the same docs: eth_blockNumber with empty params returns a result such as 0x4b7, which is block 1,207 in decimal. Byte data such as addresses is written with two hex digits per byte, so a 20-byte address is 40 hex characters after 0x.[1]
Public vs private endpoints
Public endpoints are free and shared by many users, and they are usually rate-limited. Node providers sell private endpoints with API keys and higher limits.
Whichever endpoint you use, it only relays what you already signed. eth_sendRawTransaction takes signed transaction data, so switching providers never requires a seed phrase or private key.[1]
ethereum.org says no legitimate service, support agent or website will ever ask for your recovery phrase or private key, so a network form that asks for one is a scam.[5]
Privacy and risks
An endpoint cannot move your funds, but it sees your IP address and which addresses you query. A dishonest endpoint could also return wrong data, which is why many wallets let you switch endpoints.
Block tags matter for what an endpoint returns. latest is the most recent proposed block, safe is the latest safe head and finalized is the latest finalized block. An app that shows a deposit as settled should read it at finalized, not latest.[1]
Every signed transaction carries a chain ID under EIP-155, with v set to chain ID times 2 plus 35 or 36. A malicious endpoint on the wrong chain cannot reuse your mainnet signature there.[3]
How to add or change an endpoint
In the MetaMask extension, open the menu in the top right, choose Networks, then Add a custom network, and fill in the network's details. On mobile the option sits under the Custom tab of the networks dropdown.[4]
MetaMask notes that adding a custom RPC URL for Ethereum, Linea, Base, Arbitrum or BNB Smart Chain turns off Smart Transactions features such as MEV protection until you switch back to the default URL.[4]
Custom networks are not synced between devices. After uninstalling MetaMask or moving to a new phone, you have to add them again.[4]
For a local test chain, EIP-155 lists 1337 as the default chain ID for Geth private chains.[3]
Common mistakes
Copying network details from an unverified list. MetaMask says it does not maintain the network information on Chainlist and asks users to make sure the details are accurate before adding them.[4]
One quick check: the chain ID you enter should match what the endpoint returns for eth_chainId.[1]
Treating an eth_call result as final. eth_call runs a contract function without sending a transaction, so it shows the result at a given block, not what will happen when your signed transaction is included later.[1]
Assuming a pending balance is final. The pending tag includes transactions not yet in a block, so a wallet reading pending can show funds that later disappear if the transaction is dropped.[1]
The Bottom Line
An RPC endpoint is your wallet’s connection to the chain. For everyday use a public one is fine; for apps, use a dedicated endpoint.
Educational content, not financial advice.