A user opens Rabby Wallet on Monday morning and sees a portfolio value that matches their records. By Wednesday, after a transaction on Arbitrum and a liquidity pool interaction on Polygon, the displayed balance has become inconsistent with what they actually hold. The NFT collection shows the right pieces, but the total value calculation appears hours or days behind. This is not a bug in every case; it is a predictable consequence of how a non-custodial Web3 wallet coordinates data across multiple blockchains and external price feeds.
Balance display errors in a blockchain wallet typically stem from three sources: remote procedure call (RPC) lag, cross-chain indexing delays, and local synchronization gaps. Understanding which one is responsible determines whether a refresh button will help, whether changing RPC endpoints is necessary, or whether waiting is the only reliable option. For a trader or investor holding positions across several chains, the distinction matters because a stale balance can prompt unnecessary transactions, missed opportunities, or incorrect portfolio decisions.
Rabby Wallet communicates with blockchain networks through remote procedure calls. An RPC endpoint is a server that responds to queries about account balances, transaction history, and token holdings. When a user opens their wallet or clicks refresh, Rabby sends requests to these endpoints asking for the current state of the account. If the RPC provider is experiencing high load, network issues, or temporary outages, the responses come back incomplete or delayed.
The wallet displays the most recent cached data while waiting for fresh responses. This creates a situation where the balance shown is accurate according to the last successful query, but the actual on-chain state may have changed. A transaction confirmed ten minutes ago may not yet appear because the RPC provider has not indexed it into the block. Alternatively, the endpoint itself may be behind the tip of the chain, serving slightly stale information even when working correctly.
Different RPC providers have different synchronization speeds and reliability. Infura, Alchemy, Chainstack, and other commercial providers maintain multiple nodes and aim for minimal lag. Smaller or free public endpoints may fall further behind during network congestion. Some blockchains such as Arbitrum and Polygon have their own RPC endpoints with variable performance. Switching between providers can sometimes resolve apparent balance discrepancies because one endpoint may be ahead of another by several blocks or several minutes.
Rabby Wallet users can test this by accessing wallet settings, locating the RPC configuration section, and noting which provider is currently selected for each chain. Switching from a slower provider to a faster one—or from a free endpoint to a paid service—often resolves stale balance displays within seconds. The catch is that users must know where to find this setting and be willing to manage it, rather than assuming the wallet automatically selects the best available endpoint.
A blockchain wallet that supports Ethereum, Arbitrum, Polygon, Avalanche, and Fantom must fetch data from five separate networks. The wallet’s display logic then attempts to aggregate this data into a unified portfolio view. The balance for a token that exists on multiple chains depends on querying each chain separately, summing the results, and maintaining that calculation in real time as prices fluctuate.
NFTs complicate this further. Displaying a user’s full collection requires indexing token metadata from multiple chains, retrieving images or metadata URLs, and often filtering for spam or fraudulent assets. Services like OpenSea or Blur do this centrally by crawling blockchains and maintaining their own databases. Rabby Wallet performs this locally or by querying external indexers, but indexers themselves operate on slightly different schedules. A newly minted NFT might appear on one indexer within minutes and on another only after several hours.
If Rabby queries Chain A’s indexer and Chain B’s indexer at slightly different times, or if one indexer has not yet processed a recent transaction, the total NFT count or collection value displayed may be inconsistent with the actual on-chain state. The wallet may show that the user owns 10 NFTs when they own 11, or it may display the wrong floor price for a collection because the price feed was updated before the metadata indexer caught up.
Forcing a manual refresh can help, but only if the refresh triggers a re-query of all indexing services. Some refresh operations only clear the local cache and request data from the same indexers immediately, which does nothing if those indexers are still behind. A true refresh may require changing the RPC endpoint or waiting for the indexer to catch up naturally. Users should not interpret a balance display as definitively accurate until they verify it on a blockchain explorer such as Etherscan or by checking the raw on-chain state.
The Rabby Wallet extension runs locally in a browser, storing wallet state and transaction history in browser storage. This local cache speeds up interactions because the wallet does not need to query the blockchain every single time a user opens a tab. However, if the browser cache becomes corrupted, if the extension is updated while running, or if the user has multiple windows open using different versions of Rabby, the local state can drift from the actual on-chain state.
A common scenario occurs when a user makes a transaction and the wallet shows a pending status in its internal transaction list, but the actual transaction never reaches the network or gets rejected by the RPC provider. The local cache continues to display the pending transaction, potentially marking funds as “in transit” when they are still available. This can mislead a user into thinking they have fewer liquid funds than they actually do.
Another case involves the wallet being open in two browser windows simultaneously. If a transaction is submitted from Window A, Window B may not immediately learn about it because the two instances do not automatically synchronize. When the user switches to Window B, it displays an old balance until a refresh is triggered and the local cache is updated from the blockchain.
Clearing the Rabby Wallet cache or restarting the browser extension often resolves these gaps. Within the extension’s settings, users can find an option to clear cache or reset the wallet state. This forces Rabby to re-fetch all data on the next interaction. Users should note that this does not affect private keys or account credentials stored in encrypted local storage; it only clears temporary data used for display and transaction management.
Users who connect a Ledger or Trezor hardware wallet to Rabby Wallet experience an additional synchronization layer. The hardware device must be queried for the correct account address, and then that address must be queried on the blockchain. If the hardware wallet is using multiple derivation paths or if the user has recently added a new account, Rabby may need to perform address discovery by checking several potential addresses to determine which ones hold funds.
This discovery process can take several seconds to several minutes depending on network conditions and the number of addresses to check. A user who has just added a second or third account to their Ledger may see that account appear as empty in Rabby for a short period, even though the hardware device has the correct credentials. The balance updates once the discovery process completes and the wallet has queried the appropriate blockchain for the new address.
Hardware wallet operations are also subject to RPC lag. If Rabby is querying a slow RPC endpoint, the address discovery will be slow even though the hardware device itself is working correctly. Switching to a faster endpoint can speed up the process. Additionally, some hardware wallet operations require explicit approval on the device itself. If a user initiates a balance refresh while the hardware wallet is locked or not actively connected, the refresh may time out or return outdated cached data.
The most direct way to refresh Rabby Wallet is to click the refresh icon in the interface, typically located near the balance display or portfolio summary. This triggers Rabby to query the current RPC endpoints and external data sources for updated information. The results should appear within a few seconds if the endpoints are responsive.
A more thorough approach involves changing the RPC endpoint for the affected chain. Accessing the wallet settings, selecting the chain from a dropdown, and switching to a different RPC provider often resolves stale data because the new provider may have indexed the latest blocks. This is particularly useful when one provider is experiencing congestion. A user might switch from the free public endpoint to a paid Alchemy or Infura endpoint, or from a centralized provider to a community-run endpoint for the specific chain.
For persistent issues, removing and re-adding the token or NFT collection to the wallet’s tracking list can force a re-index. This is more aggressive and may temporarily hide the asset from the portfolio view, but it ensures that Rabby fetches fresh metadata rather than relying on cached information. The process typically involves accessing the token settings, removing the tracked asset, and then re-adding it.
If a transaction appears stuck in pending status, users should verify its actual state on a blockchain explorer. A pending transaction in Rabby does not necessarily mean it is pending on-chain; it may have already confirmed or been rejected. If confirmed, a refresh or cache clear will update the display. If rejected, Rabby may continue to show it as pending until the local cache is cleared or the extension is restarted. Users can access a blockchain explorer directly to check the transaction hash and then return to Rabby to update the display.
For large transactions or high-value positions, users should not make portfolio decisions based solely on what Rabby displays. Visiting Etherscan, Arbiscan, Polygonscan, or the appropriate blockchain explorer for the chain in question provides the authoritative on-chain state. Entering the wallet address into the explorer shows the actual balance and transaction history as recorded by the network, free from any caching or indexing delays.
The Rabby Wallet extension includes quick links to relevant blockchain explorers, making this verification straightforward. Users should regularly spot-check their balance on-chain, particularly after making large transactions or before initiating new ones. This habit prevents situations where a stale wallet display leads to an incorrect decision about portfolio allocation or available liquidity.
For multi-chain portfolios, this verification step is even more important. A user holding tokens on Ethereum, Arbitrum, Polygon, and Avalanche might see discrepancies across the aggregate displayed balance simply because the indexing services for each chain updated at different times. Checking each chain separately via its explorer provides clarity about the actual position on each network.
If the wallet balance and the blockchain explorer differ substantially, and a refresh or RPC switch does not resolve it, the wallet may have a caching bug or the user’s private key may have been compromised. In the latter case, the transaction history on the explorer will show unauthorized movements. In the former case, waiting or reinstalling the extension is appropriate. Users should never attempt to solve a security problem by making additional transactions; they should first verify the actual on-chain state, then assess whether unauthorized access has occurred.
Establishing good wallet maintenance habits reduces the frequency of balance display problems. First, use a reputable and fast RPC endpoint by default rather than relying on free public endpoints. Many users do not realize they can customize this setting; Rabby allows configuration of custom RPC providers for each chain. Switching to a paid provider like Alchemy or a dedicated service like Quicknode can eliminate lag-related balance discrepancies.
Second, periodically clear the wallet cache or restart the extension to purge stale local data. This does not need to be frequent; once per week or after making several large transactions is reasonable. Restarting the browser also clears the cache automatically and ensures that the extension runs the latest available version.
Third, maintain a habit of verifying large transactions on the blockchain explorer before and after they occur. Before initiating a transaction, check the explorer to confirm current balances and recent activity. After a transaction is broadcast, check the explorer to verify it has been included in a block rather than relying solely on the wallet’s pending status.
Fourth, if using hardware wallets, ensure the device is actively connected and unlocked before performing wallet operations. Disconnect and reconnect it occasionally to reset any communication issues with Rabby. Hardware wallet integration adds security but also adds another layer where synchronization can lag.
The Rabby development team has acknowledged that multi-chain balance aggregation can be a source of confusion. Upcoming versions are expected to include better caching strategies, more granular refresh controls, and clearer indicators of when data is stale or based on cached values rather than fresh queries. The planned mobile and desktop versions of Rabby may also benefit from these improvements, as they will have different storage and connectivity characteristics than the browser extension.
In the meantime, users should treat balance display as one data point rather than the ground truth. A blockchain wallet is a convenient interface for managing cryptocurrency and NFTs, but it remains dependent on external data sources—RPC providers, indexers, price feeds, and metadata services—that do not always synchronize perfectly. The ultimate record of truth is the blockchain itself, and a user with access to a blockchain explorer has the power to verify any transaction or balance independently of what any wallet interface displays.
The most common causes are RPC lag, indexing delays, and local cache staleness. Check your balance on a blockchain explorer to verify the actual on-chain state. If the explorer shows more than Rabby, try clicking refresh, switching to a faster RPC provider, or clearing the wallet cache. If the explorer matches Rabby, the display is correct and the issue may be that you are thinking of funds held elsewhere.
Access the wallet settings, find the chain configuration section, and select a different RPC provider from the dropdown. Rabby allows both switching between pre-configured providers and adding custom RPC endpoints. Switching to a faster or less congested provider often resolves stale balance displays within seconds.
Check the transaction hash on the appropriate blockchain explorer to see its actual status. If it has already confirmed, refresh your wallet or clear the cache to update the local state. If it is genuinely pending and taking longer than expected, you can increase the gas price and resubmit, or wait for the network to confirm it. Never submit the same transaction twice without verifying its status first.