A user holds USDC in their Rabby wallet and checks the balance. On Polygon, the balance reads 500. On Arbitrum, it shows 1,200. On Optimism, another 300 appears. The same token, the same wallet address, yet three different totals. This is not a display error or a sign that the wallet is malfunctioning. It reflects a fundamental property of blockchain architecture: tokens exist on specific chains, and moving them between networks requires explicit action through bridges or exchanges. Understanding why Rabby reports these separate balances is essential for managing assets across multiple EVM networks without accidentally attempting to spend tokens that do not exist on the chain where a transaction will be settled.
The confusion arises because wallet interfaces often display multiple chains simultaneously, creating the illusion of a unified balance pool. In reality, each EVM-compatible blockchain is a separate ledger. USDC on Polygon is a different token instance than USDC on Arbitrum, even though both are issued by Circle and have the same name. Rabby, as an EVM wallet supporting multiple networks, must show balances separately to prevent users from making transactions that would fail due to insufficient liquidity on the intended destination chain. This article explains how token bridges work, why wrapped tokens exist, and how to interpret what Rabby displays across different chains without confusion.
How token addresses work on different EVM blockchains
Each EVM-compatible blockchain maintains its own state ledger and its own smart contract address space. Polygon, Arbitrum, Optimism, BNB Smart Chain, and Avalanche are separate networks with separate token registries. When a developer deploys a token contract on Polygon, that contract exists only on Polygon. The contract address might be 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 for USDC on Polygon, but that same address space on Arbitrum contains a different contract—in this case, USDC on Arbitrum One.
This is why Rabby, as an EVM wallet, must display balances separately for each chain. When you open the wallet and select Polygon, Rabby queries the blockchain to find all token balances held at your address on that specific network. When you switch to Arbitrum, it performs an identical lookup but on Arbitrum’s ledger. The balances are real in both cases. They are stored in different places. Your address exists on every EVM chain you have used, but the assets associated with that address differ based on what tokens you have actually deposited or bridged to each network.
The implication is straightforward: USDC on Polygon cannot be spent on Arbitrum without first being moved. If you attempt to send 1,200 USDC from your Rabby wallet on the Arbitrum network while you only have 300 USDC on Arbitrum, the transaction will fail. Rabby will typically warn you of insufficient balance before you sign, but the underlying constraint is enforced by the blockchain itself. Confusing the total balance across all chains with the available balance on a specific chain is one of the most common sources of failed transactions and user frustration.
What wrapped tokens are and why they exist
Some tokens appear on multiple chains as wrapped versions. Wrapped tokens are issued by bridge protocols or custodians and represent a claim on the original asset held in custody elsewhere. For example, Wrapped Ethereum (WETH) on Polygon is backed by actual ETH locked in a bridge contract on Ethereum mainnet. When you bridge ETH from Ethereum to Polygon using a protocol like Polygon’s PoS bridge, you receive WETH or another wrapped representation on Polygon. That representation is valuable because it can be traded, lent, or used in DeFi protocols on Polygon. But it is not the same as holding ETH directly on Ethereum.
Different bridges may create different wrapped versions of the same underlying asset. USDC, for example, exists in native form on Arbitrum, Optimism, Polygon, and other networks because Circle, the issuer, has deployed the contract directly on each chain. Other assets may have multiple wrapped versions depending on which bridge was used to transport them. This creates a situation where the same underlying asset might exist under different contract addresses on the same chain, depending on the bridge that brought it there.
Rabby displays each token contract address separately because each one is technically a different asset, even if they represent claims on the same underlying value. When you look at your balances on Polygon, you might see “WETH” and “Wrapped Ether” listed separately if they were bridged through different protocols. This is not a Rabby limitation. It is an accurate reflection of the blockchain state. Consolidating them would hide important information about which specific token contract you hold and which bridge or issuer guarantees its backing.
Understanding this distinction matters for safety. If a wrapped token’s bridge becomes compromised or the custodial arrangement breaks down, the wrapped tokens could become worthless while the legitimate versions on other chains remain unaffected. Rabby’s approach of showing each token contract separately helps you remain aware of exactly what you hold and through which mechanism.
How Rabby tracks balances across Polygon, Arbitrum, and Optimism
Rabby is designed to support multiple EVM networks natively, including Polygon, Arbitrum, Optimism, Base, BNB Smart Chain, and Avalanche. When you use the Rabby browser extension, you can add any of these networks and switch between them in the interface. Each network switch triggers a fresh balance lookup on that specific blockchain using your wallet address and the network’s RPC endpoint.
The wallet does not store your balances locally. It queries each network’s state in real time or near-real time, which means the displayed balance reflects the current state of the blockchain. If you receive tokens on Polygon while you have Arbitrum selected in Rabby, the new tokens will not appear in your balance until you switch to the Polygon network. This is not a sync delay; it is because Rabby is looking at different ledgers. The tokens arrived on Polygon’s ledger, not Arbitrum’s.
Rabby’s transaction simulation and human-readable transaction details features work on a per-network basis for the same reason. When you attempt to approve or send tokens, Rabby checks the balance and allowances on the network you have selected. If you confirm a transaction on Arbitrum that requires 500 USDC but you only have 300 USDC on Arbitrum, the transaction will fail on-chain even if you have 500 USDC on Polygon. The simulation should catch this before you sign, but the blockchain is the final arbiter of whether the transaction succeeds.
Rabby’s open-source codebase on GitHub under the RabbyHub organization includes the logic for querying multiple networks and managing the address state across chains. The wallet architecture is designed to keep your address consistent across all EVM networks while acknowledging that the assets at that address differ by network. This is why your recovery phrase or private key can be imported into Rabby on any EVM network and will generate the same address, but the balances at that address will be entirely different.
Why hardware wallet integration remains network-aware
Rabby supports hardware wallet compatibility with devices such as Ledger and Trezor. Hardware wallets generate the same addresses across all EVM networks using the same derivation path, so your Ledger address on Polygon is identical to your Ledger address on Arbitrum. However, the hardware wallet integration still respects the per-chain balance model. When you connect a hardware wallet to Rabby and switch networks, the interface updates to show the balances on the selected chain.
This is important for security. A hardware wallet signs transactions, but it does not confirm that the transaction will succeed on-chain. It confirms that you approve the transaction structure. If the hardware wallet is set to Polygon and you attempt to sign a transaction that moves tokens from Arbitrum, the hardware wallet will display the transaction details, but it cannot verify whether you actually have those tokens on Arbitrum. That verification falls to Rabby and ultimately to the blockchain.
Rabby’s risk warnings and approval information interfaces account for this. When you use a hardware wallet to approve a token contract, Rabby can warn you about known risky contracts or contracts that may have unusual permissions. But that approval is specific to the network and token contract you selected. Approving a contract on Polygon does not affect anything on Arbitrum. This per-network isolation is part of the security model; it prevents a single compromised contract or approval from affecting assets across all chains.
Common scenarios that cause balance confusion
Scenario one: You bridge USDC from Ethereum to Polygon using a bridge protocol. Your balance on Polygon increases, but your balance on Ethereum decreases by the same amount. You now have USDC on Polygon and potentially a wrapped version on Ethereum. If you forget which chain you are on and try to send USDC from Polygon to an exchange, you may succeed. If you forget which chain you are on and try to send from Ethereum, you may only have the wrapped version, which the exchange may not accept at the same price or may not accept at all.
Scenario two: You hold USDC on three chains—500 on Polygon, 1,200 on Arbitrum, 300 on Optimism. You assume your total balance is 2,000 USDC and plan a transaction accordingly. If the transaction is on Arbitrum and requires 1,500 USDC, you have enough on that chain. If the transaction is on Polygon and requires 1,500 USDC, you do not. Rabby will show that transaction as failing due to insufficient balance, but only if you are on Polygon when you attempt it. This is correct behavior, but it requires you to consciously track which chain you are on.
Scenario three: You use a decentralized exchange on Optimism that offers a token you want to buy, but your liquidity is primarily on Arbitrum. Bridging the liquidity costs gas and requires time. You might use a cross-chain swap to move funds directly, but those swaps have slippage and fees. Alternatively, you might purchase the token on Arbitrum through a different DEX and then bridge it to Optimism if needed later. Rabby does not prevent these decisions; it presents your per-chain balances so that you can make them consciously.
How to keep multi-chain balances organized
The first practice is to consciously decide which tokens you want on which chains. If you primarily use Arbitrum, concentrate your liquidity there rather than spreading it across five networks. If you use multiple networks regularly, maintain a mental or written record of your expected balance on each. This prevents the surprise of discovering that you have 0 USDC on Optimism when you needed it.
The second practice is to use Rabby’s network selector deliberately. Before you initiate any transaction, confirm which network is selected. The network name appears at the top of the Rabby interface. If you switch networks, the balance display updates immediately. This one-second check prevents most multi-chain mistakes.
The third practice is to use bridge protocols and DEX aggregators intentionally when you need to move tokens between chains. Rabby is compatible with bridge applications and DEX interfaces that can move tokens across networks. These services charge fees and introduce slippage, but they provide a deliberate transaction step that gives you an opportunity to verify the source chain, destination chain, amount, and fee before signing. Avoid assuming that tokens you own on one chain are instantly available on another.
The fourth practice is to test the recovery flow for your hardware wallet or recovery phrase before you have a large balance at stake. If you restore your Rabby wallet on a different device, verify that the addresses match and that the balances appear on the networks you expected. This confirms that your backup is valid and that you understand how to recover access if needed.
What Rabby cannot do across chains
Rabby is an EVM wallet designed for Ethereum and EVM-compatible blockchains. It does not natively support Bitcoin, Solana, or non-EVM ecosystems. This means you cannot use Rabby to check Bitcoin balances or Solana token balances, even if you have a recovery phrase that works on those networks. Each blockchain ecosystem requires its own wallet application or a multi-chain wallet that includes non-EVM support.
Rabby also cannot bridge tokens automatically. It is a wallet, not a bridge protocol. You can use Rabby to approve and interact with bridge interfaces, but the actual transfer of tokens from one chain to another happens through the bridge contract, not through Rabby. Rabby shows you the balance before and after the bridge, but it does not execute the bridge itself.
Finally, Rabby cannot merge balances across chains into a single displayed total without losing clarity about which tokens are actually available on which networks. Some wallet interfaces attempt to show a total balance by summing values across all networks, but this creates the exact confusion this article addresses. Rabby’s approach of showing per-chain balances is correct; it prevents you from accidentally assuming you have access to tokens that exist only on a different network.
Understanding the architecture as it scales
As the number of EVM-compatible chains grows, this per-chain balance model becomes even more important. Each new chain is another ledger where your address exists but where your assets may or may not be present. The interface challenge is displaying enough information for you to make transactions safely without overwhelming you with network switches and redundant balance checks.
Rabby addresses this by keeping the network selector prominent and updating the balance display immediately when you switch. This design acknowledges that you must consciously choose which network you are using before you can make valid decisions about which tokens are available. As more chains become available and more tokens are deployed across multiple networks, this clarity becomes more valuable, not less.
The core lesson is that a wallet address is not the same as a wallet balance. Your Rabby address is the same across all EVM networks, but your assets are not. The reason USDC appears with different balances on different chains is that they are stored in different places, governed by different contracts, and require explicit bridging to move between them. Rabby shows you this reality instead of hiding it. Learning to check which network you are on before every transaction is the price of safely managing assets across multiple blockchains.
Frequently asked questions
Can I transfer tokens between chains directly in Rabby?
No. Rabby is a wallet, not a bridge protocol. You can use Rabby to approve and interact with bridge applications or decentralized exchanges that offer cross-chain swaps, but the actual transfer happens through those external protocols. Rabby displays your balance on the destination chain after the bridge or swap completes, but it does not execute the transfer itself.
Why does my USDC balance differ on Polygon versus Arbitrum if it is the same token?
USDC on Polygon and USDC on Arbitrum are stored in different smart contracts on different blockchains. They are managed separately, even though both are issued by Circle. You must explicitly bridge or swap tokens to move USDC from one chain to another. Rabby shows separate balances because tokens can only be spent on the network where they are actually stored.
What happens if I try to send tokens from a chain where I do not have them?
Rabby will typically show an “insufficient balance” error before you sign the transaction. If the error is missed and you sign anyway, the transaction will fail on the blockchain, the network will reject it, and your gas fee will be lost. Always verify that you have selected the correct network and that your balance on that network is sufficient before approving any transaction.
