MetaMask / MetaMask/metamask-extension
[Bug]: Token balance not updating / incorrect display (BSC custom token)
- Dominant language
- TypeScript
- Stars
- 13.2k
- Forks
- 5.6k
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 451
Description
### Describe the bug
1 : Description :
MetaMask shows incorrect or zero balance for a custom BEP-20 token on BNB Smart Chain, while the correct balance is visible on BscScan and usable in transactions.
2 : Environment :
MetaMask Extension (Firefox)
Network: BNB Smart Chain
Custom token imported manually
Multiple RPC endpoints configured
Wallet restored previously
Multiple browser profiles used
3 : Steps to reproduce :
Import custom BEP-20 token
Receive tokens
Refresh wallet / reimport token
Balance displayed remains incorrect
4 : Expected result :
Token balance matches on-chain value.
5 : Actual result :
Balance partially updated
Balance frozen
Balance displayed as zero
Token usable in swaps/transfers despite incorrect display
6 : Evidence :
(Screenshots attached showing discrepancy between MetaMask and BscScan)
- https://imgur.com/a/2psGBGk
- https://imgur.com/a/hohwIgz
7 : Additional notes :
Issue reproduced across multiple wallets and persisted after:
Token reimport
RPC change
Activity reset
Browser cache clearing
Extension restart
### Expected behavior
The token balance displayed in MetaMask should accurately reflect the on-chain balance shown on BscScan and update correctly after transactions, refresh, or token re-import.
### Screenshots/Recordings
### Steps to reproduce
1. Install MetaMask browser extension on Firefox.
2. Add BNB Smart Chain network (default or custom RPC).
3. Import or restore a wallet.
4. Manually import a custom BEP-20 token using its contract address.
5. Receive tokens via transfer or swap (PancakeSwap).
6. Refresh MetaMask or restart browser.
7. Observe displayed token balance.
8. Compare with on-chain balance via BscScan.
9. Attempt to send or swap tokens (they remain usable despite incorrect display).
### Error messages or log output
```shell
MetaMask browser extension (Firefox desktop)
Location:
Assets tab → Token list → Custom BEP-20 token balance display
The incorrect balance appears in the wallet UI while the correct balance is visible on-chain (BscScan) and usable in transactions/swaps.
```
### Where was this bug found?
Live version (from official store)
### Version
MetaMask Extension Live Version: 13.14.2
### Build type
None
### Browser
Firefox
### Operating system
Windows
### Hardware wallet
_No response_
### Additional context
The issue was reproduced across multiple wallets and browser profiles.
Observed behaviors include :
- Token balance displayed as zero despite on-chain balance
- Balance partially updated or frozen
- Re-importing token does not refresh balance
- Changing RPC endpoints does not resolve issue
- Resetting account activity does not resolve issue
- Browser cache clearing and restart does not resolve issue
The token remains fully usable for transfers and swaps, confirming that the problem appears to be UI/indexing related rather than blockchain state related.
This behavior is highly confusing for users managing multiple wallets and funds, and could lead to incorrect financial decisions due to inaccurate balance display.
### Severity
_No response_
Contributor guide
Research direction
No source file or test is identified. Start by reproducing the issue in the Firefox extension's Assets tab with the custom BEP-20 token, then compare the displayed balance with BscScan while testing refresh, re-import, RPC changes, and transfers. Done means the wallet display matches the on-chain balance and updates after those actions.
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
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100