MetaMask / MetaMask/metamask-extension

[Bug]:

Open
#45,052 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

external-contributor regression-prod-13.40.0
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

### Describe the bug

Title: ETH balance in extension UI not updating after confirmed on-chain transactions (Sepolia)

Description:

The balance displayed in the MetaMask extension UI does not reflect the actual on-chain balance for my account on Sepolia testnet, even after multiple confirmed transactions and manual cache-clearing attempts.

Steps to reproduce:

Connect wallet to a local dApp interacting with a smart contract on Sepolia.
Send a transaction (e.g. funding a contract with ETH).
Confirm the transaction is mined and successful (verified via console logs and Etherscan).
Check the ETH balance shown in the MetaMask extension UI.

Expected behavior:
MetaMask UI balance should reflect the new on-chain balance after a confirmed transaction.

Actual behavior:
MetaMask UI continues to display a stale balance that does not match the balance shown on Etherscan for the same address, even after:

Toggling "Show test networks" off/on
Clearing activity and nonce data (Settings → Advanced)
Confirming the correct network (Sepolia) is selected

Environment:

Network: Sepolia
Wallet address: 0x41dbdBBB116C5eFb9c0290b9A4A61502361b5bB9
Etherscan balance (ground truth): (insert current Etherscan balance here)
MetaMask displayed balance: (insert current MetaMask balance here)
Browser: (insert your browser + version)
MetaMask version: (Settings → About → version number)
Relevant tx hashes:
0x9b966cd6a79a1b9e165e464b6a8OO9ac7b2f933...
0x0ca66750bfe21410c7a1ca02847087f9e52ff998356adac1e9e2dd069b8846f0
0x16d87deed1e91bbbd266456714ebb1536c095003ce38c34860804f42ea261109

Additional notes:
On-chain transaction history and balance confirmed correct via Etherscan; discrepancy appears isolated to the extension's cached UI state.

contact email: icmelvin134@gmail.com

### Expected behavior

_No response_

### Screenshots/Recordings

_No response_

### Steps to reproduce

On Sepolia testnet, connect a MetaMask account to a local dApp that interacts with a deployed smart contract.
Trigger a transaction from the dApp (e.g. sending ETH to fund a contract, or withdrawing ETH from it) and confirm it in MetaMask.
Wait for the transaction to be mined (verified via console logs showing a receipt/confirmation, and independently via Etherscan).
Check the account's ETH balance in the MetaMask extension UI.
Compare that balance against the same address on Sepolia Etherscan (https://sepolia.etherscan.io/address/).
Attempt to force a refresh: toggle "Show test networks" off/on, use "Clear activity and nonce data" (Settings → Advanced), confirm Sepolia is the actively selected network, and restart the browser entirely (not just the extension popup).
Recheck the MetaMask balance after each step above.

Result: Balance in MetaMask still does not match Etherscan's value even after all refresh attempts.

### Error messages or log output

```shell

```

### Where was this bug found?

Live version (from official store)

### Version

MetaMask Version 13.40.0

### Build type

None

### Browser

Chrome

### Operating system

Linux

### Hardware wallet

_No response_

### Additional context

_No response_

### Severity

_No response_

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the extension UI balance refresh path for a confirmed Sepolia transaction, using the reproduction steps and the transaction hashes against Etherscan. The report does not name a source file or test and leaves the observed balances, browser version, and one transaction hash incomplete; done should mean the displayed balance matches the confirmed on-chain balance after the listed refresh attempts.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
blockchain, frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.