A trader holding Ethereum tokens has a straightforward task: check the current balance before executing a large trade. The wallet interface shows a balance, but it may be stale by several minutes—or it may fail to load at all. The block explorer returns a timeout. A second wallet app shows a different total. This is not a display bug or a synchronization quirk. It is a direct consequence of how blockchain wallets communicate with network nodes during periods of high demand. When trading volume spikes, the infrastructure layer that wallet applications depend on becomes congested, and balance queries begin to fail or queue indefinitely.
Understanding why this happens requires examining the relationship between wallet software, remote procedure call (RPC) nodes, and network load. A crypto wallet relies on nodes to answer questions about account state: what is the current balance, what is the transaction history, and is this transaction valid? During normal periods, these queries return in milliseconds. During market rallies, when thousands of traders and bots attempt balance checks and transaction submissions simultaneously, nodes hit hard limits on concurrent connections and request queues. Some wallets handle this gracefully by maintaining redundant connections or queuing requests. Others fail silently or return incomplete data. The practical result is that users cannot reliably confirm holdings during the moments when confirmation matters most.

Every blockchain wallet performs a simple operation: it queries a remote node for account information. The node is a computer running the blockchain protocol, maintaining a copy of the ledger, and responding to requests. The wallet sends an RPC request—a standardized message asking for data—and the node responds. These nodes have finite capacity. A single server can typically handle between 100 and 10,000 concurrent connections depending on hardware, configuration, and the complexity of the queries. During normal market conditions, a major network node might see a few thousand requests per second. During a sharp price movement or a significant event, that number can surge to tens of thousands per second.
When demand exceeds a node’s capacity, it begins rejecting new connections and queueing requests. The node may also implement rate limiting: after a client makes N requests in a time window, subsequent requests are denied. This is a protective mechanism—without it, a single bot or contract could consume all available resources—but from the user’s perspective, it means that balance checks may be refused. Some wallets and services operate their own private nodes to avoid these limits. Others use shared public endpoints provided by infrastructure companies. The choice determines whether a user experiences reliable service during congestion.
The rate limit itself is typically measured in requests per second per IP address or per API key. Ethereum nodes may enforce limits of 10–100 requests per second, while Bitcoin network nodes have different architectural constraints that affect connection handling. A wallet that batches multiple queries into one request, or that maintains a persistent connection, can operate more efficiently within these constraints. A wallet that makes separate requests for each piece of information—current balance, transaction history, pending transactions—uses quota faster and may hit limits more quickly.
The problem compounds when multiple wallets are installed on the same device and connected to the same node or service. Each wallet makes its own queries independently. If a user has MetaMask, Trust Wallet, and Phantom all open simultaneously, they may be hitting the same shared RPC endpoint three times for the same information. The wallet software cannot see what other wallets are doing, so it cannot coordinate or consolidate requests. The user experiences failures that appear to be wallet-specific but are actually caused by node-level saturation.
A balance query appears simple: the user opens the wallet, and the balance appears on screen. What actually happens is more layered. The wallet requests the account balance from an RPC node. The node must look up the account state in its local database, calculate any pending changes from recent transactions, and return the result. The wallet then displays the number. If the RPC request fails—because the node is overloaded, the connection times out, or the rate limit is exceeded—the wallet can respond in several ways.
Some wallets display a cached value: the balance from the last successful query, potentially minutes or hours old. Others display a loading spinner indefinitely. Some return a partial error message that most users do not understand. A few wallets silently return zero or an error value that appears to mean “no balance.” These different behaviors create a layer of unreliability that a crypto wallet user must account for. The balance shown may be stale, the displayed balance may be incorrect, or the balance may not be queryable at all.
Transaction submission compounds the problem. Before broadcasting a transaction, a wallet typically queries the node for the current nonce (a counter that prevents double-spending) and for gas price estimates. If these queries fail or return stale data, the submitted transaction may be rejected as invalid, or it may pay far more in fees than necessary because the gas price estimate was from an hour earlier. A trader trying to execute a time-sensitive trade may unknowingly broadcast a transaction with an incorrect nonce because the node that responded to the previous query is now unreachable. The transaction will fail silently or take hours to be rejected.
During extreme market volatility, the situation becomes worse. Price movements cause a surge in trading volume, which causes a surge in balance queries and transaction submissions, which causes node overload, which causes queries to fail, which causes users to retry their queries more aggressively, which causes node overload to intensify. The feedback loop is self-reinforcing. A wallet that implements exponential backoff—waiting longer between retries—helps dampen the effect. A wallet that retries immediately on every failure contributes to the surge.
A crypto wallet that maintains connections to multiple RPC endpoints can survive when one node becomes congested or fails. This is the redundancy approach: instead of relying on a single node operated by Infura, Alchemy, or the blockchain protocol itself, the wallet connects to three or five nodes simultaneously. If one fails or hits a rate limit, the wallet falls back to another. This sounds simple, but implementation matters.
Some wallets hardcode a list of public nodes. If all five happen to be hosted on the same infrastructure company’s network, a single outage or rate-limit event at that company affects all of them simultaneously. Other wallets allow users to configure custom node endpoints, but most users lack the knowledge or tools to operate their own node, so they accept the default. Hardware wallets such as Ledger have built-in connectivity to multiple blockchain interfaces and do not expose individual node failures to the user. Software wallets vary more: some implement failover logic; others do not.
Another strategy is to use a service that aggregates multiple nodes on the user’s behalf. Rather than querying Infura directly, the wallet connects to a load balancer that distributes requests across multiple data centers and node operators. During a single node’s congestion event, the traffic automatically shifts to others. This improves availability but introduces another party between the user and the blockchain. The service could theoretically modify responses, return stale data, or track which addresses are queried. Transparent, distributed RPC services are emerging to address this, but they are not yet universal.
The most resilient approach is to run a personal node, but this requires significant computational resources, storage space—a full Ethereum node requires multiple terabytes—and network bandwidth. Most users cannot or will not do this. The practical result is that most wallets depend on shared public or semi-public nodes. During congestion, most wallets fail together. The wallet comparison metrics that matter most during high-volume periods—reliability, response time, and fallback behavior—are often not disclosed by wallet developers.
Hardware wallets and mobile wallets respond differently to node congestion because their architectures differ. A hardware wallet such as Trezor or Ledger signs transactions offline on the device but still needs to communicate with the blockchain to submit transactions and check balances. These devices typically delegate RPC calls to a mobile or desktop app, which handles the actual node connection. If the app hits a rate limit, the hardware wallet’s transaction broadcast fails—but the user knows quickly because the device will display an error. The flow is explicit: send transaction, wait for result, receive response or failure message.
Mobile wallets such as Trust Wallet or Phantom integrate the node communication directly into the app. They cache balances aggressively to reduce queries and implement local state updates when the user makes a transaction. This reduces node pressure but can create confusion if the cached balance diverges from the actual balance due to external transactions or failed transaction submissions. The user sees a balance of one thousand tokens, but if they attempt to send everything and a transaction fails, the wallet may still show the old balance until the cache refreshes.
Trezor’s open-source approach to node integration allows third-party services to operate compatible endpoints, creating potential for distributed redundancy. Proprietary wallets create the opposite effect: users cannot easily switch to an alternative node provider without switching wallets entirely. This lock-in effect means that users of wallets without configurable node settings are entirely dependent on that wallet’s infrastructure choices during congestion periods.
DeFi-focused wallets such as MetaMask face unique node pressure because DeFi interactions require not just balance checks but also gas price estimation, contract state queries, and token allowance checks. A single interaction with a decentralized exchange may require five separate RPC calls. When volume is high, these wallets hit rate limits much faster than simple payment wallets. MetaMask’s built-in selection of public RPC endpoints provides some redundancy, but switching endpoints during a transaction can cause the transaction to fail if the nodes have slightly different state views.
Wallet interfaces imply reliability that the underlying network cannot guarantee. A balance displayed with no error message suggests that the number is current and correct. A transaction button implies that pressing it will broadcast a transaction. In reality, both operations can silently fail or return stale results. This gap between expectation and reality creates user error. A trader sees a balance of 10 tokens, initiates a transaction for 8 tokens, and the transaction fails because the actual balance is 5 tokens—the cached value was stale. The wallet’s interface appeared to work correctly; the failure was silent until the transaction was submitted.
Several wallet incidents in the past decade have resulted directly from node congestion and fallback failures. During periods of extreme network congestion—such as the 2021 DeFi boom or flash crash events—wallets have returned incorrect balances, failed to submit transactions, or submitted transactions with incorrect gas prices because the node they contacted was overloaded and returning stale data. These incidents are not security vulnerabilities in the cryptographic sense. They are infrastructure failures that the wallet’s design did not account for or did not communicate transparently to the user.
The most reliable wallets explicitly display node status, distinguish between confirmed and unconfirmed balance, show when data is cached, and provide clear errors when node communication fails. These wallets are less convenient—they require the user to understand that a cached balance might be stale—but they reflect network reality. Less reliable wallets hide these details to simplify the interface, which improves appearance at the cost of honesty.
The most straightforward approach is to avoid high-congestion periods when possible. Check balances and plan transactions outside of major news events or market spikes. Use a block explorer as a secondary verification method: if a wallet shows a different balance than a block explorer, the block explorer is more likely to be correct because explorers typically use multiple independent nodes and can query at different block heights. However, block explorers themselves become unreliable during extreme congestion, so this is not an absolute safeguard.
Configure custom RPC endpoints if the wallet allows it. Many wallets support manual node entry. A user can operate a light client—a node that stores only transaction information relevant to a specific account rather than the entire blockchain—or use a public node operated by a different provider than the default. This reduces dependence on any single infrastructure company. However, this requires technical knowledge and ongoing maintenance. Most users will not do this.
Use hardware wallets for high-value transactions. Because hardware wallets isolate signing from the connectivity layer, a user can verify transaction details and sign with confidence even if the app’s node connection is unreliable. The broadcast may fail, but at least the user knows whether they approved the transaction. Software wallets should display explicit confirmation screens for all significant transactions, showing the exact amount and destination before the user approves, rather than relying on pre-filled forms that may be based on stale data.
For critical operations—large transfers, margin positions, or time-sensitive trades—use multiple wallets or verification methods. Check the balance in a second wallet app. Verify the transaction on a block explorer after broadcasting. Wait for explicit confirmation rather than assuming that a transaction succeeded because the wallet’s interface appeared to process it. These practices add friction, but they prevent the silent failures that occur when a wallet’s RPC connection is degraded.
The blockchain industry is aware of the RPC bottleneck problem. The Ethereum Foundation has published specifications for stateless clients and light clients that reduce the data a node must store or compute, which could allow more nodes to operate and distribute load. Ethereum’s roadmap includes improvements to node infrastructure that could reduce RPC pressure. Bitcoin’s protocol design inherently limits the transaction throughput per block, which affects how node congestion scales. These protocol-level changes are years in progress and will not immediately solve user-facing issues.
In the nearer term, wallet developers are improving failover logic, implementing RPC aggregation services, and adding transparent status displays. Some wallets now show when a balance is cached, when a query failed, or when multiple nodes disagree. These honest interfaces improve usability during congestion by telling users what they actually know rather than displaying a misleading single value. Layer 2 blockchains such as Arbitrum and Optimism reduce on-chain load by batching transactions, which also reduces RPC pressure for applications built on these chains.
The most practical improvement is a cultural shift: wallet developers should test and publicly disclose how their applications behave during node congestion. Does the balance update time increase, does it return stale data, does it error clearly, or does it fail silently? Users and wallet comparison tools should evaluate wallets on this dimension as seriously as they evaluate security features. A wallet that handles node failure gracefully is more valuable than a wallet that crashes or shows inconsistent state. Until this becomes a standard evaluation criterion, most wallets will prioritize appearance over robustness during network stress.
The wallet and block explorer may be querying different RPC nodes, which can have slightly different state views during periods of congestion or network reorganization. The block explorer is often more reliable because it uses multiple independent nodes. The wallet’s balance may also be cached from several minutes earlier. If the difference is significant, wait a few minutes and refresh both tools. If it persists, the cached balance in your wallet is likely stale and the block explorer is correct.
Do not repeatedly click send. This creates multiple queued attempts that may all eventually broadcast. Instead, wait 30–60 seconds and check a block explorer to see if your transaction was submitted. If it was not, change the RPC endpoint if your wallet allows it, or switch to a different wallet app. Only retry if you are certain the first attempt failed. Gas price and nonce data become stale during congestion, so a delayed submission may fail with a “nonce too low” error, requiring a higher nonce value to try again.
Check whether the wallet allows custom RPC endpoint configuration, whether it discloses which nodes it uses by default, and whether it shows node status or connection errors to the user. Test the wallet during high-volume periods and observe how it handles delays and failures. Read the wallet’s documentation or source code if available. Wallets that explicitly handle redundancy and display node status are generally more reliable than wallets that hide infrastructure details behind a simple interface.
