
Verified on-chain is the most overused phrase in wallet interfaces. What is verified depends on which of three very different things your software is talking to: a light client, a full node, or a remote endpoint run by someone else. Two of those check the chain. The third asks a server.
Three machines, three questions
A full node downloads and executes blocks itself. It checks that each transaction follows the rules, that balances add up, and that the block’s state root matches the state it computed. When it reports a balance, that balance is a fact the node established rather than one it was told.
A light client does not execute everything. It follows block headers and requests proofs about specific pieces of state, checking each proof against a root it trusts. It stores far less than a full node.
An RPC endpoint answers queries. Behind it may sit a full node, an archive node, an indexer or a cache, and the operator may be entirely honest. The structural point is that the answer arrives as a response, not as a proof your software checked.
What a hosted endpoint really gives you
A hosted RPC is an indexer with an API. It stores decoded state, answers balance and nonce questions from its own tables, and serves historical queries from a database it built by replaying the chain.
That design is why it is fast and why it is useful. It is also why the answers are not self-certifying. When your wallet asks for a balance it receives a number with no accompanying proof, and the wallet cannot tell a fresh reading from a stale one.
Most of the time this is invisible: the endpoint is accurate and the stakes are small. Ethereum.org’s L2 directory, in its 1 to 6 October 2026 snapshot, put fees as low as $0.001 to $0.002 per transaction on Base, with Arbitrum One at $0.004 to $0.005 and Linea near $0.024. At those prices nobody audits the source of a balance.
How to tell which one you are on
The interface rarely says. Three habits settle it.
Look for a sync indicator. A full node reports block height and peers, and its height advances with the chain. A hosted endpoint may show a height too, but the vendor supplied it.
Look for a proof. Light clients verify state proofs, and some wallets say they did. If nothing in the flow mentions a proof or a header chain, you are reading an answer.
Look at the URL. A localhost or LAN address is your machine. A vendor domain with an API key is someone else’s, and that is custody of information rather than of funds.
| Question | Who can answer it verifiably | What fails quietly on a hosted endpoint |
|---|---|---|
| What is my balance | A full node, or a light client with a state proof | A cache that has not refreshed |
| What is my nonce | A full node | An indexer lagging the tip |
| Did my transaction land | A full node following the canonical chain | An endpoint on a different fork tip |
| What did this address do years ago | An archive node you run | Pruned history replaced by a vendor database |
| What is my token balance | A node plus the token contract’s own state | The indexer’s own accounting of transfers |
When it matters
It matters most where an answer decides whether a transaction is valid. A balance and a nonce are inputs to signing. If either is wrong, the transaction fails, gets replaced, or gets built on state that does not exist.
It matters least for historical queries, where the cost of being wrong is a wrong chart rather than a wrong signature, and where almost nobody runs the archive node to check.
In between sits everything that touches money at the margin: whether a withdrawal has settled, whether a contract call reverted, whether an allowance is still live. Those answers are checkable, and they are the ones a hosted endpoint is most likely to serve from a cache.
Withdrawal costs make the same point from the other side. FeeEdge’s survey of 17 August 2026 put L1 ERC-20 withdrawals at $2 to $10, and above $50 under congestion, while exchange withdrawal fees ran about 0.5 to 1 USDT for Solana SPL and about 0.3 USDT for BEP-20. The expensive leg is the one people check twice. The cheap leg is the one they trust.
What to do next
Decide which questions you are outsourcing, then stop outsourcing the two that decide validity.
If you run nothing, prefer a wallet that verifies proofs for balance and nonce, and treat every other number as a vendor’s opinion. If you move size, run a node for the chain you settle on, or use an endpoint whose operator you could name in a dispute.
Read the limits of account abstraction for where the signature layer stops helping, and the wallets section for how different clients handle state. An endpoint is a convenience. A node is a position, and the difference shows up on the day the two disagree.
0 comments
No comments yet — ask a question and we will answer it here.