MetaMask / MetaMask/metamask-extension

[Bug]: Persistent UI Desync (Ghost Balance) on BNB Chain blocking Liquidity Pool signatures

Open
#40,451 2 comments 0 reactions 0 assignees View on GitHub
external-contributor regression-prod-13.16.4 Sev1-high team-assets type-bug
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

### Describe the bug

I am a developer reporting a critical and persistent synchronization issue (ghost balance) in the MetaMask extension on the BNB Smart Chain. This is not a transient network delay; the behavior has been occurring consistently for several days.

The UI displays a balance (approximately 64.17 USDT) that does not match the actual blockchain state or prevents interaction with smart contracts. When attempting to interact with Liquidity Pools, the extension fails to broadcast or trigger the signature request, effectively locking the account's DeFi functionality. This persisted even after multiple browser sessions.

### Expected behavior

The wallet should maintain a consistent state with the RPC provider. If a transaction or contract interaction is initiated, the wallet should either present the signature request based on real-time on-chain data or provide a specific "Out of Sync" or "Insufficient Funds" error instead of a silent failure or blocking the interaction.

### Screenshots/Recordings

Image

Image

Image

### Steps to reproduce

Open MetaMask on the BNB Smart Chain network.

Observe a specific token balance (e.g., USDT) that remains static for several days despite on-chain changes.

Attempt to interact with a Liquidity Pool contract (e.g., calling approve or deposit).

Observe that the signature/confirmation UI is either blocked or fails to execute, despite the UI showing sufficient funds.

### Error messages or log output

```shell

```

### Where was this bug found?

Live version (from official store)

### Version

13.16.4

### Build type

None

### Browser

Firefox

### Operating system

Linux

### Hardware wallet

_No response_

### Additional context

I have since migrated my funds to a new wallet to bypass the issue, but I am reporting this to help the community and the development team identify state-management bugs. The issue seems related to how MetaMask caches token balances and nonces locally on certain accounts.

Reported by:
Sandro AA Antunes
GitHub: https://github.com/Sandro-AAA

### Severity

_No response_

Contributor guide

Open the contributing guide

Research direction

No source file, test, or entry point is named. Start by reproducing the USDT balance mismatch and blocked Liquidity Pool signature on BNB Smart Chain with MetaMask 13.16.4, Firefox, and Linux, then compare the displayed state with on-chain data and capture logs. Done means the synchronization cause and the conditions preventing the signature request are identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
blockchain, 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.