-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Description
Describe the bug
MetaMask's provider behaves as if the blockchain is frozen at a specific block number when the network connected to the website differs from the network selected in the activity filter dropdown. The eth_blockNumber
RPC method returns a static block number that never advances, and all blockchain data remains stale as though no new blocks are being produced.
This occurs regardless of which networks are involved (L1 or L2) and which RPCs they rely on. For example:
- Connecting a website to Ethereum mainnet, then changing the activity filter to Optimism causes the issue on mainnet
- Connecting a website to an L2 like Optimism, then changing the activity filter to any other network causes the issue on that L2
This causes severe issues where all provider information is outdated, and increases the risk of unknowingly submitting bad transactions that will revert due to stale data. Also increases the likelihood of displaying incorrect information on the page.
Expected behavior
The network selected in the activity filter (used only for filtering transaction history) should not affect the provider's behavior on the network actually connected to the website. The eth_blockNumber
method should return current block numbers for the connected network, and all blockchain state should reflect the actual current state of that network, regardless of which network is selected in the activity filter dropdown.
Screenshots/Recordings
Setup

On OpenSea (includes timestamps and current net)

On Etherscan (includes timestamps and current net)

Steps to reproduce
- Install MetaMask extension version 13.0.0
- Navigate to a dApp website (e.g., Etherscan, OpenSea)
- Connect MetaMask wallet to the site
- Note which network is connected to the website (shown in the "Manage permissions" area)
- Click the network selector dropdown in the activity section (below the main balance area)
- Select a DIFFERENT network than the one connected to the website
- Open browser console
- Run:
Number(await window.ethereum.request({method: "eth_blockNumber"}))
- Wait 1-2 minutes
- Run the same command again
- Observe that the block number has not changed despite new blocks being produced on the connected network
- Change the activity filter back to match the connected network and observe blocks now advance normally
Error messages or log output
None
Detection stage
In production (default)
Version
13.3.2
Build type
None
Browser
Chrome
Operating system
MacOS
Additional context
This issue occurs whenever there is a mismatch between:
- The network actually connected to the website (shown in "Manage permissions")
- The network selected in the activity filter dropdown (used to filter transaction history)
The problem affects all blockchain data accessed through the provider, not just block numbers - the entire provider state appears frozen at a specific block.
Other wallet providers (Rainbow, Coinbase Wallet) do not have this issue as they typically don't have separate network selectors for website connection vs. activity filtering.
The root cause appears to be that the activity filter network selection is incorrectly affecting the provider's RPC behavior for the actually connected network.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status