Blog
Rabby Wallet Extension: Why Your MetaMask Backup Seed Phrase Doesn’t Work When Imported—The Account Derivation Path Trap
A user backs up their MetaMask seed phrase, installs a new browser extension wallet, pastes in the recovery words, and sees zero balances. The wallet is live, the seed phrase is correct, but every account appears empty. The impulse is to assume the import failed or the wallet is broken. Neither is true. The actual culprit is one of the most misunderstood technical hurdles in self-custody wallets: account derivation paths. MetaMask, Rabby, and other EVM wallets generate accounts from a seed phrase using a mathematical formula defined by an industry standard. When that path differs—even slightly—the resulting addresses are completely different, and a user looking at the right wallet software sees the wrong set of accounts.
This problem becomes acute when switching wallet software. A Rabby wallet extension installed on the same computer, importing the same seed phrase as MetaMask, will not automatically show the same accounts unless the derivation path is manually adjusted. The technical reason is simple and instructive: two wallets following different standards or different default configurations will generate a different set of addresses from identical seed material. Understanding why this happens, and how to fix it, is essential for anyone moving between wallet software or recovering funds across multiple devices.

The derivation path standard and why MetaMask is not everyone
When a seed phrase is created, it is a single string of entropy. That entropy alone cannot hold an Ethereum address or a Bitcoin key. Instead, a mathematical process called hierarchical deterministic (HD) derivation converts the seed into a tree of accounts, each with its own private key. The specific path through that tree is called the derivation path, and it follows a standard published as BIP-44 and related specifications. The path looks like this: m/44'/60'/0'/0/0, where each number represents a layer in the tree.
MetaMask uses the path m/44'/60'/0'/0/n, where 60 is the EVM chain ID code and the final number increments for each account. This is the most common default for Ethereum wallets. However, the 0'/0 portion in the middle is a crucial assumption: it assumes the first account index (0) and the first address index (0) within that account. Some wallets, particularly older ones or those designed for multi-account scenarios, use different middle indices. A wallet that defaults to m/44'/60'/1'/0/0 or m/44'/60'/0'/1/0 will generate an entirely different set of addresses from the same seed phrase.
The practical consequence is stark. If MetaMask generated addresses using the standard path, and a new wallet software uses a non-standard path, the new software will display empty accounts despite holding the correct seed phrase. The user’s funds are not lost. The addresses where they sit are simply not being derived. This is why importing a seed phrase into a new application sometimes produces a recovery puzzle rather than immediate access.
When installing the Rabby wallet extension, users face this decision at the first step: which derivation path to use. If the path is set to MetaMask’s default, balances and transaction history will appear immediately. If the path is mismatched, the imported accounts will be blank, and the user may incorrectly assume that their recovery phrase was entered wrong or that the wallet software has a bug. The technical architecture is working correctly; the configuration is simply pointing to a different set of accounts.
How account derivation paths determine which addresses you see
A seed phrase is mathematically deterministic: the same phrase always produces the same private keys when processed through the same derivation path. Think of it as a tree with infinite branches. Each path through the tree leads to a different account. Two different people with the same seed phrase but different derivation settings would see completely different balances and transaction histories, because they would be looking at different addresses on the Ethereum blockchain.
The m/44'/60'/0'/0/n standard is not the only valid path. Other wallets, particularly those pre-dating widespread BIP-44 adoption, used simpler paths like m/44'/60'/0'/n (skipping one level) or custom paths entirely. Ledger hardware wallets follow BIP-44 but allow users to browse different derivation paths, which is why users recovering from a Ledger to a software wallet sometimes need to check multiple paths to find their funds. Similarly, when switching from one software wallet to another, the derivation path must match, or the accounts will not line up.
The rabby wallet extension provides a derivation path selector specifically to solve this problem. When importing a seed phrase, users can choose between the standard MetaMask path and several alternatives. This is not a weakness; it is a feature that acknowledges that different wallets have different histories and that recovering funds sometimes requires trying more than one configuration. Users who see empty balances after import should immediately check the derivation path settings rather than assuming the import failed.
For users migrating from MetaMask, the default Rabby path should match, and balances should populate. However, if a user’s MetaMask account was created under unusual circumstances—such as importing an existing private key rather than generating from a seed phrase, or using an older version of MetaMask before BIP-44 standardization—the path may differ. In those cases, trying alternative paths becomes necessary. Some wallets provide a browsing feature that shows accounts across multiple paths simultaneously, making the recovery process less trial-and-error.
Why “import seed phrase” doesn’t mean “copy my account”
A common mental model holds that a seed phrase is a wallet identity that moves unchanged between software. That intuition is partly right and partly misleading. The seed phrase is the foundational secret, but the wallet software interprets that secret through a specific configuration. Changing that configuration produces a different set of accounts, even though the secret itself is identical. This is why a self-custody wallet like Rabby is fundamentally different from a custodial exchange: the user controls the seed, but the interpretation of that seed depends on the software’s design choices.
When a user exports a seed phrase from MetaMask and imports it into a different wallet, they are assuming that the new wallet will apply the same derivation logic. This assumption is usually correct for mainstream wallets following BIP-44, but it can break down in several scenarios. A wallet might use a different chain ID (though 60 is standard for EVM), a different account index, or even a entirely different derivation standard borrowed from legacy wallets or Bitcoin tools. The newer the wallet software, the more likely it follows modern standards; older software and some specialized tools may use different conventions.
The security implication is important: because the derivation path directly determines which addresses are generated, an attacker who knows the seed phrase but not the derivation path cannot easily predict which addresses hold funds. This provides a small layer of security through obscurity, though it should not be relied upon as a primary defense. More significantly, it means that a user’s funds are not in danger when the derivation path is wrong; they are simply invisible in the current software configuration. Switching paths is not a risky operation; it is navigation within the mathematically determined set of possible accounts.
Hardware wallet compatibility and the derivation path cascade
The derivation path problem becomes more complex when hardware wallets enter the picture. A user might create a MetaMask account on their computer, back up the seed phrase, set the hardware wallet aside, then later try to recover it using a Ledger, Trezor, or other device. Each hardware wallet has its own internal derivation logic. Ledger, for example, displays accounts derived from m/44'/60'/0'/0/n, which matches MetaMask. However, Ledger also allows users to browse alternative paths, and some Ledger firmware versions or companion software configurations may differ. Ledger’s official specifications document which paths are supported, but users are not always aware that they have choices.
Trezor follows a similar model, with m/44'/60'/0'/0/n as the default for Ethereum but alternative paths available. The critical point is that when a user imports a seed phrase into a hardware wallet, the hardware internally derives accounts according to its own rules. When that hardware wallet is then connected to Rabby or another software wallet, the software must be configured to ask for accounts from the same path that the hardware device is using. If they mismatch, the software will show different addresses than the hardware, creating confusion and potential loss scenarios.
Trezor’s documentation specifies that it uses BIP-44 with the standard path for Ethereum. When connecting a Trezor to a browser extension wallet, the software typically autodetects and applies the correct path, so compatibility is usually seamless. However, in advanced recovery scenarios—such as restoring a Trezor using a seed phrase entered manually into a different wallet—the path must be explicitly set to match.
The lesson for users operating across multiple wallets or devices is to verify the derivation path before assuming that a seed phrase has been lost. Most mainstream wallets and hardware devices use the same standard, but the standard exists precisely because alternatives exist. Documentation, support channels, and in-wallet settings can clarify which path a particular piece of software uses.
Practical steps to recover balances when import appears to fail
When a user imports a seed phrase into the Rabby wallet extension and sees empty balances, the first step is to open the wallet settings and examine the account derivation path. The path is usually accessible under account or import settings. If the current path does not match the original wallet (such as MetaMask), the user should try the alternative paths provided by Rabby. Most mainstream wallets cluster within a small set of standard paths; checking two or three options will usually reveal the correct set of accounts.
Some wallets provide a derivation path browser that displays multiple accounts at once, allowing users to scan across several paths without manually switching each time. This feature is particularly valuable when the original wallet software is no longer available or when the user cannot easily determine which path was used. Rabby’s interface for this purpose is straightforward: users can see a list of accounts and balances as they adjust the path setting, making it simple to identify which configuration matches their original wallet.
A second common issue is that the user may have created multiple accounts within MetaMask and imported only the first one by mistake. MetaMask allows creating multiple accounts from the same seed phrase, each with a different index number (the final digit in the path). If the user’s funds are in account 2 or account 3, but they only imported account 1, they will not see the balance. Most wallet software displays all accounts derived from a seed phrase once it is imported, so the solution is usually to check whether additional accounts are listed and whether any of them contain the expected balance.
A third scenario involves key import rather than seed phrase import. Some users may have exported a private key directly from MetaMask instead of the seed phrase. A private key is a single account, not a derivation tree, and it cannot be used to recover other accounts. If a user attempts to import a private key as if it were a seed phrase, the wallet will reject it or treat it incorrectly. Distinguishing between seed phrases (usually 12 or 24 words) and private keys (long hexadecimal strings) is important before attempting import.
Why derivation paths matter for multi-chain EVM compatibility
A unique aspect of the EVM ecosystem, as documented by the Ethereum Foundation, is that the same derivation path standard applies across all EVM-compatible chains: Polygon, Arbitrum, Optimism, Base, and more than 90 others. The chain ID (the “60” in the path for Ethereum) is defined by the EVM standard, and most chains follow the same derivation logic. This means that a seed phrase imported into Rabby will generate the same addresses across all supported EVM chains, because the derivation path is chain-agnostic.
However, some chains and some wallet software variants use non-standard chain IDs or derivation logic. This is rare, but it can happen with private or newer chains. The practical implication is that a user should verify their address on the blockchain (using a block explorer) before assuming that an imported wallet is displaying incorrect balances. If the address is correct, the balance reflects what is actually on the chain. If the address differs from what the original wallet showed, the derivation path is likely wrong.
Rabby’s multi-chain support means that once the seed phrase is correctly imported with the right derivation path, the user can access their accounts across all 90+ EVM chains simultaneously. The same address derived from the seed phrase will exist on Ethereum, Polygon, and Arbitrum; if the user has funds on any of those chains, they will be visible in Rabby once the path is correct. This cross-chain consistency is a major advantage of open-source, standards-based wallet design.
Security audits and why they do not validate derivation path behavior
Rabby has undergone security audits conducted by professional firms, which have examined the wallet’s code for vulnerabilities, key handling, and transaction signing logic. OpenZeppelin and other audit firms publish standards and methodologies for wallet security. These audits are valuable and necessary. However, an audit of wallet code does not validate that every possible derivation path configuration will work correctly, nor does it guarantee that the derivation path matches a user’s original wallet software.
A security audit confirms that the wallet correctly implements the derivation standard as intended. It does not test whether a user’s seed phrase was originally generated using a different standard, nor does it solve the problem of incompatible configurations between different wallet software. Security in this context is about preventing key theft, transaction manipulation, and unauthorized spending. The derivation path issue is a UX and configuration problem, not a security flaw. The user’s funds are secure; they are simply not visible in the current configuration.
Understanding this distinction helps users avoid compounding the problem. A common mistake is to assume that if balances are empty, the wallet software is insecure or the seed phrase was compromised. Neither is necessarily true. Before concluding that, a user should systematically test alternative derivation paths and check a block explorer to confirm whether the generated addresses actually hold funds. That verification process is entirely client-side and does not require trusting the wallet software.
When to seek support and when to verify independently
If a user has checked alternative derivation paths and still cannot find their balance, the next step is to verify independently using a block explorer. A tool like Etherscan (for Ethereum) or a chain-specific explorer (for Polygon, Arbitrum, etc.) allows a user to paste in an address and see whether it holds any balance. This verification is valuable because it separates two questions: Is this the correct address? and Does this wallet software correctly display the balance for this address?
If a block explorer shows that an address has a balance, but Rabby or another wallet does not display it, the problem is the wallet software’s balance-fetching mechanism, not the derivation path. If the block explorer shows zero balance, the funds may be on a different chain, under a different derivation path, or in a different account entirely. This systematic approach to troubleshooting can save users from unnecessary panic and avoid support requests based on misdiagnosis.
When contacting support for a wallet or a blockchain project, users should come armed with specific information: the exact derivation path being used, the addresses that were generated, and the block explorer results for those addresses. This level of detail allows support staff to quickly identify whether the problem is a configuration error, a software bug, or user misunderstanding. It also protects users from scams: legitimate support will never ask for a seed phrase, and any request for recovery words is a red flag.
Frequently asked questions
Why do I see empty balances when I import my MetaMask seed phrase into Rabby wallet extension?
The most common cause is a derivation path mismatch. MetaMask uses the standard path m/44’/60’/0’/0/n, but the Rabby wallet extension may default to a different path depending on its configuration. Check the derivation path settings in Rabby and try alternative paths until you see your expected accounts. Your funds are not lost; they are simply not being derived in the current configuration.
What is a derivation path, and why does it matter when switching wallets?
A derivation path is a mathematical formula that generates addresses from a seed phrase. Different wallet software can use different paths, which results in different sets of addresses from the same seed. When importing a seed phrase, the new wallet must use the same derivation path as the original, or it will display different accounts. A rabby wallet extension includes a derivation path selector specifically to address this problem.
Can I recover funds from a hardware wallet like Ledger using the Rabby wallet extension?
Yes, if the derivation paths match. Ledger and Trezor use standard BIP-44 paths for Ethereum (m/44’/60’/0’/0/n), which Rabby supports. Connect your hardware wallet to Rabby via USB, and the wallet will automatically derive the correct addresses. If you are importing the seed phrase directly rather than using the hardware device, ensure that Rabby is configured to use the same path that your hardware wallet uses.