Skip to content

Conversation

@sahar-fehri
Copy link
Contributor

@sahar-fehri sahar-fehri commented Dec 16, 2025

Description

This PR ensures that non-EVM tokens and chains are excluded from the UI when the Basic Functionality Toggle (BFT) is turned OFF.

Open in GitHub Codespaces

Changelog

CHANGELOG entry: Makes sure UI filters out non-evm chains and tokens when BFT is OFF.

Related issues

Fixes: #38111

Manual testing steps

Scenario 1:

  1. Make sure you have "all networks" selected
  2. Go to settings and turn OFF BFT setting
  3. Go back to home page
  4. Make sure the non-evm assets are filtered out from asset list
  5. Click on network filter and make sure non evm chains are filtered out
  6. The swap button should be disabled
  7. Click on send button and make sure non-evm assets are filtered out of the send asset list
  8. Click on network filter and make sure non-evm chains are filtered out
  9. Make sure you cannot search for non evm assets

Scenario 2:

  1. Make sure you have Solana selected
  2. Go to settings and turn off BFT
  3. Go back to home page; you should still see non-evm assets since you already have solana selected
  4. Network filter should only contain that specific chain (Solana)
  5. Swap button is disabled
  6. Click on send button
  7. non-evm assets should be filtered out
  8. non-evm chains should be filtered out from the network filter
  9. You should not be able to search for non evm chains

Screenshots/Recordings

Before

After

Screen.Recording.2025-12-19.at.00.45.23.mov
Screen.Recording.2025-12-19.at.00.47.09.mov

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Enforces EVM-only experience when getUseExternalServices is false, with an exception to keep the currently selected non‑EVM chain visible.

  • Asset list (token-list.tsx): Filters non‑EVM assets when BFT is OFF; still shows assets for the selected non‑EVM chain; includes zero-balance and TRX resource checks; preserves sorting
  • Network manager (default-networks.tsx): Hides non‑EVM networks in default and featured lists when BFT is OFF, except the selected non‑EVM chain; updates network item filtering logic accordingly
  • Send flow (useSendAssets.ts): Filters out non‑EVM tokens and NFTs when BFT is OFF so non‑EVM chains don’t appear in the send asset/network selectors; adds tests
  • Buttons: Adds disableSendForNonEvm to CoinButtons/TokenButtons and disables Send on asset pages for non‑EVM when BFT is OFF; keeps Swap disabled when external services are off; updates non-evm-overview.test.tsx expectations
  • Asset page: Passes disableSendForNonEvm to native/token buttons

Written by Cursor Bugbot for commit 15ced27. This will update automatically on new commits. Configure here.

@github-actions
Copy link
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot
Copy link
Collaborator

metamaskbot commented Dec 16, 2025

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (2 files, +101 -12)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 hooks/
          • 📁 send/
            • 📄 useSendAssets.test.ts +75 -7
            • 📄 useSendAssets.ts +26 -5

👨‍🔧 @MetaMask/core-extension-ux (1 files, +53 -7)
  • 📁 ui/
    • 📁 components/
      • 📁 multichain/
        • 📁 network-manager/
          • 📁 components/
            • 📁 default-networks/
              • 📄 default-networks.tsx +53 -7

💎 @MetaMask/metamask-assets (1 files, +27 -3)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 assets/
          • 📁 token-list/
            • 📄 token-list.tsx +27 -3

@metamaskbot
Copy link
Collaborator

Builds ready [4634e5c]
UI Startup Metrics (1262 ± 93 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1262104614869313301424
load105386312858511131194
domContentLoaded104786012778611081185
domInteractive2615128212279
firstPaint60891119343310681171
backgroundConnect21419726512220244
firstReactRender1393141522
getState33135593949
initialActions105112
loadScripts839659106187898975
setupStore1263141319
numNetworkReqs181178171168
BrowserifyPower User HomeuiStartup18271453253618819252190
load1060879147912111211307
domContentLoaded1051872146912111121294
domInteractive32181402528105
firstPaint4478813843829121164
backgroundConnect260199670100236507
firstReactRender14112721519
getState18914327931207249
initialActions102112
loadScripts83367911841118841080
setupStore19752101842
numNetworkReqs67522142364123
WebpackStandard HomeuiStartup7986521327988241003
load64357488572657811
domContentLoaded63956987571654806
domInteractive2616103202283
firstPaint224101847148215621
backgroundConnect285115234280
firstReactRender16105971726
getState331566144159
initialActions104112
loadScripts63556786770651798
setupStore1365581434
numNetworkReqs171174171167
WebpackPower User HomeuiStartup1250962186520213121656
load713597107195739897
domContentLoaded707591106094732892
domInteractive31171282627111
firstPaint332891074248376863
backgroundConnect71761213575548
firstReactRender16126451620
getState16014223715166184
initialActions102112
loadScripts704589105893730883
setupStore1594071436
numNetworkReqs65521422061124
FirefoxBrowserifyStandard HomeuiStartup14161052244924615141990
load1131895208819812091466
domContentLoaded1130895208719812081466
domInteractive69313464989173
firstPaint------
backgroundConnect64202795583204
firstReactRender13103541322
getState136160191123
initialActions113012
loadScripts1091882199818011481415
setupStore134168181141
numNetworkReqs19984191477
BrowserifyPower User HomeuiStartup25931469350052330073197
load1683960274555021632474
domContentLoaded1683959274555021632474
domInteractive88323608190306
firstPaint------
backgroundConnect3832111844259411118
firstReactRender19125552125
getState11963101894121178
initialActions3036627
loadScripts1373945256944313852277
setupStore3052194233163
numNetworkReqs71531222183116
WebpackStandard HomeuiStartup15331278223017716521847
load12851097165211713621524
domContentLoaded12851096165211713621524
domInteractive73282113889133
firstPaint------
backgroundConnect59162184370154
firstReactRender15112731624
getState196208321574
initialActions103122
loadScripts12471076163310512971476
setupStore205207291686
numNetworkReqs20982191475
WebpackPower User HomeuiStartup26731693371454931393502
load19371199296751824202612
domContentLoaded19371199296651824192612
domInteractive71293096385230
firstPaint------
backgroundConnect3542412003863871128
firstReactRender20125772229
getState13374972111138242
initialActions3167726
loadScripts16501140279841720832367
setupStore415104611227182
numNetworkReqs64421172172107
📊 Page Load Benchmark Results

Current Commit: 4634e5c | Date: 12/16/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±42ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 721ms (±63ms) 🟢 | historical mean value: 721ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 80ms (±43ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 42ms 1.01s 1.35s 1.05s 1.35s
domContentLoaded 721ms 63ms 698ms 1.31s 733ms 1.31s
firstPaint 80ms 43ms 60ms 508ms 84ms 508ms
firstContentfulPaint 80ms 43ms 60ms 508ms 84ms 508ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: -19.93 KiB (-0.39%)
  • ui: 6.49 KiB (0.08%)
  • common: 3.41 KiB (0.04%)

@github-actions github-actions bot added size-M and removed size-S labels Dec 18, 2025
@sahar-fehri sahar-fehri marked this pull request as ready for review December 19, 2025 00:10
@sahar-fehri sahar-fehri requested review from a team as code owners December 19, 2025 00:10
: filteredAssets.filter(
(asset) =>
isEvmChainId(asset.chainId) ||
(!isEvm && asset.chainId === currentNetwork.chainId),
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Missing undefined check before calling isEvmChainId

The isEvmChainId(asset.chainId) function is called without checking if asset.chainId is defined. The Asset type allows chainId to be undefined (chainId?: string | number). If chainId is undefined, isEvmChainId will call toEvmCaipChainId(undefined) which could throw or produce unexpected behavior. In contrast, useSendAssets.ts correctly guards with if (!token.chainId) { return false; } before calling isEvmChainId. The same defensive check is missing here at both filter locations in the useMemo callback.

Additional Locations (1)

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link

metamaskbotv2 bot commented Dec 19, 2025

Builds ready [0a1afcd]
UI Startup Metrics (1306 ± 104 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13061083163110413601458
load1083883140810211491257
domContentLoaded1077875140410111421254
domInteractive271698182385
firstPaint1456733366189295
backgroundConnect22120129913227243
firstReactRender1583451626
getState381782144664
initialActions103112
loadScripts86267111771009251042
setupStore1153641221
numNetworkReqs171179161167
BrowserifyPower User HomeuiStartup18041456229318619062136
load1068881144612611751275
domContentLoaded1059874143912511641251
domInteractive3017260302685
firstPaint160671258132196339
backgroundConnect23620365762234267
firstReactRender14113231518
getState20014372781209239
initialActions1010112
loadScripts84566412211229411040
setupStore1675091438
numNetworkReqs65532072161116
WebpackStandard HomeuiStartup8016401022848451001
load64457087265678774
domContentLoaded63956586665674768
domInteractive251589182280
firstPaint1086357969135199
backgroundConnect275125284096
firstReactRender15103141624
getState3414111204289
initialActions105112
loadScripts63656286363672758
setupStore1265371324
numNetworkReqs171172171167
WebpackPower User HomeuiStartup13371031210321113971842
load7826321233112882952
domContentLoaded7746251226111876943
domInteractive33181312629114
firstPaint1386539671189309
backgroundConnect66861214433513
firstReactRender17132621822
getState16714426917174198
initialActions102012
loadScripts7716221215110870941
setupStore1574171437
numNetworkReqs67522163061129
FirefoxBrowserifyStandard HomeuiStartup13871087187417714871764
load1110942148211411941335
domContentLoaded1109938148211411941334
domInteractive70322244093140
firstPaint------
backgroundConnect50202254251159
firstReactRender1392831319
getState14799171227
initialActions103112
loadScripts107892913869811451253
setupStore156159201239
numNetworkReqs20980201476
BrowserifyPower User HomeuiStartup25101456332349729053068
load1694986254951821852389
domContentLoaded1693986254951821852389
domInteractive83364297187309
firstPaint------
backgroundConnect3421911203664071089
firstReactRender19126882128
getState965027827104133
initialActions4141648
loadScripts1425973231342219162208
setupStore635105617550181
numNetworkReqs70521352192108
WebpackStandard HomeuiStartup15491322215818216101935
load13041109183011413631491
domContentLoaded13031108183011413631490
domInteractive772821039107136
firstPaint------
backgroundConnect63212574675156
firstReactRender16117181625
getState147172191232
initialActions103122
loadScripts1265108717289813181441
setupStore176144231569
numNetworkReqs19982191478
WebpackPower User HomeuiStartup26441671404947829903184
load19221176261147623262516
domContentLoaded19221175261147623262516
domInteractive74314487668284
firstPaint------
backgroundConnect266221069285324991
firstReactRender20137182131
getState1046226639112200
initialActions3050537
loadScripts17351160244042021372317
setupStore495102314041158
numNetworkReqs66421392476116
📊 Page Load Benchmark Results

Current Commit: 0a1afcd | Date: 12/19/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±41ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 734ms (±63ms) 🟢 | historical mean value: 727ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 81ms (±43ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 41ms 1.02s 1.36s 1.07s 1.36s
domContentLoaded 734ms 63ms 705ms 1.31s 745ms 1.31s
firstPaint 81ms 43ms 60ms 508ms 84ms 508ms
firstContentfulPaint 81ms 43ms 60ms 508ms 84ms 508ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚀 Bundle size reduced!]
  • background: -228.11 KiB (-4.45%)
  • ui: 89.8 KiB (1.16%)
  • common: 16.72 KiB (0.19%)

bergarces
bergarces previously approved these changes Dec 19, 2025
@metamaskbotv2
Copy link

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [3e58170]
UI Startup Metrics (1272 ± 103 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12721067153810313311444
load106685613469911271250
domContentLoaded106085313329811181244
domInteractive261595192380
firstPaint156621074117188304
backgroundConnect2132002509216235
firstReactRender1594551725
getState3717101134160
initialActions104112
loadScripts8546551116979121031
setupStore1273341322
numNetworkReqs171177161167
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup8496881136898951033
load69060795977739857
domContentLoaded68560195177734851
domInteractive2717104192383
firstPaint1076333356115227
backgroundConnect2361503118105
firstReactRender1911149142032
getState3416134184463
initialActions1010112
loadScripts68159994876729841
setupStore1473871731
numNetworkReqs171172161165
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup16901258307526517932207
load13491077239520014181764
domContentLoaded13481077239520014181764
domInteractive873739452109173
firstPaint------
backgroundConnect842727355131179
firstReactRender15105561620
getState2172513414109
initialActions106122
loadScripts12901060236618513471654
setupStore165227271344
numNetworkReqs19978181374
BrowserifyPower User HomeuiStartup26281539345150429993166
load1722993262153822042474
domContentLoaded1721993262053822042473
domInteractive893393410493259
firstPaint------
backgroundConnect3792511413694371118
firstReactRender20115072529
getState1065326333118170
initialActions217123
loadScripts1455973238744919962264
setupStore795108419950252
numNetworkReqs68211793473164
WebpackStandard HomeuiStartup16131292255220017032021
load13401149160811214181547
domContentLoaded13391149160811214181546
domInteractive813023441119141
firstPaint------
backgroundConnect64162134671166
firstReactRender15112831724
getState205177291499
initialActions103122
loadScripts12991106158010113701507
setupStore184138211673
numNetworkReqs191080191476
WebpackPower User HomeuiStartup27921743492161531763638
load20501165319655125372690
domContentLoaded20501164319655125362690
domInteractive9029122815984253
firstPaint------
backgroundConnect3332512043333811095
firstReactRender2013155162151
getState1126099297115210
initialActions208123
loadScripts18081151301347722572524
setupStore3852575346194
numNetworkReqs68211753279145
📊 Page Load Benchmark Results

Current Commit: 3e58170 | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±41ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±39ms) 🟢 | historical mean value: 728ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±10ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 41ms 1.01s 1.35s 1.07s 1.35s
domContentLoaded 724ms 39ms 700ms 1.01s 754ms 1.01s
firstPaint 76ms 10ms 56ms 152ms 88ms 152ms
firstContentfulPaint 76ms 10ms 56ms 152ms 88ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.77 KiB (0.02%)
  • common: 20 Bytes (0%)

@metamaskbotv2
Copy link

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [3e58170]
UI Startup Metrics (1272 ± 103 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12721067153810313311444
load106685613469911271250
domContentLoaded106085313329811181244
domInteractive261595192380
firstPaint156621074117188304
backgroundConnect2132002509216235
firstReactRender1594551725
getState3717101134160
initialActions104112
loadScripts8546551116979121031
setupStore1273341322
numNetworkReqs171177161167
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup8496881136898951033
load69060795977739857
domContentLoaded68560195177734851
domInteractive2717104192383
firstPaint1076333356115227
backgroundConnect2361503118105
firstReactRender1911149142032
getState3416134184463
initialActions1010112
loadScripts68159994876729841
setupStore1473871731
numNetworkReqs171172161165
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup16901258307526517932207
load13491077239520014181764
domContentLoaded13481077239520014181764
domInteractive873739452109173
firstPaint------
backgroundConnect842727355131179
firstReactRender15105561620
getState2172513414109
initialActions106122
loadScripts12901060236618513471654
setupStore165227271344
numNetworkReqs19978181374
BrowserifyPower User HomeuiStartup26281539345150429993166
load1722993262153822042474
domContentLoaded1721993262053822042473
domInteractive893393410493259
firstPaint------
backgroundConnect3792511413694371118
firstReactRender20115072529
getState1065326333118170
initialActions217123
loadScripts1455973238744919962264
setupStore795108419950252
numNetworkReqs68211793473164
WebpackStandard HomeuiStartup16131292255220017032021
load13401149160811214181547
domContentLoaded13391149160811214181546
domInteractive813023441119141
firstPaint------
backgroundConnect64162134671166
firstReactRender15112831724
getState205177291499
initialActions103122
loadScripts12991106158010113701507
setupStore184138211673
numNetworkReqs191080191476
WebpackPower User HomeuiStartup27921743492161531763638
load20501165319655125372690
domContentLoaded20501164319655125362690
domInteractive9029122815984253
firstPaint------
backgroundConnect3332512043333811095
firstReactRender2013155162151
getState1126099297115210
initialActions208123
loadScripts18081151301347722572524
setupStore3852575346194
numNetworkReqs68211753279145
📊 Page Load Benchmark Results

Current Commit: 3e58170 | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±41ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±39ms) 🟢 | historical mean value: 728ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±10ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 41ms 1.01s 1.35s 1.07s 1.35s
domContentLoaded 724ms 39ms 700ms 1.01s 754ms 1.01s
firstPaint 76ms 10ms 56ms 152ms 88ms 152ms
firstContentfulPaint 76ms 10ms 56ms 152ms 88ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.77 KiB (0.02%)
  • common: 20 Bytes (0%)

OGPoyraz
OGPoyraz previously approved these changes Jan 6, 2026
Copy link
Member

@OGPoyraz OGPoyraz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested locally - confirmation changes LGTM.

When BFT is off - nonEVM tokens are filtered as well as the nonEVM asset page send button is also disabled as expected.

@metamaskbotv2
Copy link

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [3e58170]
UI Startup Metrics (1272 ± 103 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12721067153810313311444
load106685613469911271250
domContentLoaded106085313329811181244
domInteractive261595192380
firstPaint156621074117188304
backgroundConnect2132002509216235
firstReactRender1594551725
getState3717101134160
initialActions104112
loadScripts8546551116979121031
setupStore1273341322
numNetworkReqs171177161167
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup8496881136898951033
load69060795977739857
domContentLoaded68560195177734851
domInteractive2717104192383
firstPaint1076333356115227
backgroundConnect2361503118105
firstReactRender1911149142032
getState3416134184463
initialActions1010112
loadScripts68159994876729841
setupStore1473871731
numNetworkReqs171172161165
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup16901258307526517932207
load13491077239520014181764
domContentLoaded13481077239520014181764
domInteractive873739452109173
firstPaint------
backgroundConnect842727355131179
firstReactRender15105561620
getState2172513414109
initialActions106122
loadScripts12901060236618513471654
setupStore165227271344
numNetworkReqs19978181374
BrowserifyPower User HomeuiStartup26281539345150429993166
load1722993262153822042474
domContentLoaded1721993262053822042473
domInteractive893393410493259
firstPaint------
backgroundConnect3792511413694371118
firstReactRender20115072529
getState1065326333118170
initialActions217123
loadScripts1455973238744919962264
setupStore795108419950252
numNetworkReqs68211793473164
WebpackStandard HomeuiStartup16131292255220017032021
load13401149160811214181547
domContentLoaded13391149160811214181546
domInteractive813023441119141
firstPaint------
backgroundConnect64162134671166
firstReactRender15112831724
getState205177291499
initialActions103122
loadScripts12991106158010113701507
setupStore184138211673
numNetworkReqs191080191476
WebpackPower User HomeuiStartup27921743492161531763638
load20501165319655125372690
domContentLoaded20501164319655125362690
domInteractive9029122815984253
firstPaint------
backgroundConnect3332512043333811095
firstReactRender2013155162151
getState1126099297115210
initialActions208123
loadScripts18081151301347722572524
setupStore3852575346194
numNetworkReqs68211753279145
📊 Page Load Benchmark Results

Current Commit: 3e58170 | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±41ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±39ms) 🟢 | historical mean value: 731ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±10ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 41ms 1.01s 1.35s 1.07s 1.35s
domContentLoaded 724ms 39ms 700ms 1.01s 754ms 1.01s
firstPaint 76ms 10ms 56ms 152ms 88ms 152ms
firstContentfulPaint 76ms 10ms 56ms 152ms 88ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.77 KiB (0.02%)
  • common: 20 Bytes (0%)

@metamaskbotv2
Copy link

metamaskbotv2 bot commented Jan 6, 2026

Builds ready [3e58170]
UI Startup Metrics (1272 ± 103 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12721067153810313311444
load106685613469911271250
domContentLoaded106085313329811181244
domInteractive261595192380
firstPaint156621074117188304
backgroundConnect2132002509216235
firstReactRender1594551725
getState3717101134160
initialActions104112
loadScripts8546551116979121031
setupStore1273341322
numNetworkReqs171177161167
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup8496881136898951033
load69060795977739857
domContentLoaded68560195177734851
domInteractive2717104192383
firstPaint1076333356115227
backgroundConnect2361503118105
firstReactRender1911149142032
getState3416134184463
initialActions1010112
loadScripts68159994876729841
setupStore1473871731
numNetworkReqs171172161165
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup16901258307526517932207
load13491077239520014181764
domContentLoaded13481077239520014181764
domInteractive873739452109173
firstPaint------
backgroundConnect842727355131179
firstReactRender15105561620
getState2172513414109
initialActions106122
loadScripts12901060236618513471654
setupStore165227271344
numNetworkReqs19978181374
BrowserifyPower User HomeuiStartup26281539345150429993166
load1722993262153822042474
domContentLoaded1721993262053822042473
domInteractive893393410493259
firstPaint------
backgroundConnect3792511413694371118
firstReactRender20115072529
getState1065326333118170
initialActions217123
loadScripts1455973238744919962264
setupStore795108419950252
numNetworkReqs68211793473164
WebpackStandard HomeuiStartup16131292255220017032021
load13401149160811214181547
domContentLoaded13391149160811214181546
domInteractive813023441119141
firstPaint------
backgroundConnect64162134671166
firstReactRender15112831724
getState205177291499
initialActions103122
loadScripts12991106158010113701507
setupStore184138211673
numNetworkReqs191080191476
WebpackPower User HomeuiStartup27921743492161531763638
load20501165319655125372690
domContentLoaded20501164319655125362690
domInteractive9029122815984253
firstPaint------
backgroundConnect3332512043333811095
firstReactRender2013155162151
getState1126099297115210
initialActions208123
loadScripts18081151301347722572524
setupStore3852575346194
numNetworkReqs68211753279145
📊 Page Load Benchmark Results

Current Commit: 3e58170 | Date: 1/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±41ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±39ms) 🟢 | historical mean value: 730ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±10ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 41ms 1.01s 1.35s 1.07s 1.35s
domContentLoaded 724ms 39ms 700ms 1.01s 754ms 1.01s
firstPaint 76ms 10ms 56ms 152ms 88ms 152ms
firstContentfulPaint 76ms 10ms 56ms 152ms 88ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.77 KiB (0.02%)
  • common: 20 Bytes (0%)

// Exception: Keep the currently selected non-EVM chain visible
if (!useExternalServices) {
return network.chainId === selectedNonEvmChainId;
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EVM networks filtered out when account group undefined and BFT off

Low Severity

The BFT filtering check at lines 268-270 returns network.chainId === selectedNonEvmChainId when external services are disabled, which filters out EVM networks since they won't match a non-EVM chain ID. EVM networks are expected to pass via the earlier condition evmAccountGroup && network.isEvm, but if evmAccountGroup is null (possible per the selector implementation), EVM networks get incorrectly filtered out. The comment states "only show EVM networks" but the code doesn't guarantee that when evmAccountGroup is undefined. The same pattern exists in the non-State2 path at lines 289-291.

Additional Locations (1)

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link

metamaskbotv2 bot commented Jan 7, 2026

Builds ready [d155f5b]
UI Startup Metrics (1304 ± 110 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13041047158611013681479
load1093862135510211511284
domContentLoaded1086854134710211451278
domInteractive2614112202181
firstPaint171651223187190302
backgroundConnect21820126911222240
firstReactRender1592951827
getState372090134265
initialActions105112
loadScripts87465411341009241075
setupStore1272741322
numNetworkReqs171181161163
BrowserifyPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
WebpackStandard HomeuiStartup785653107971838913
load64057092864659778
domContentLoaded63556692464655773
domInteractive2515130192079
firstPaint11660725112108241
backgroundConnect266135263992
firstReactRender15103131623
getState321566134453
initialActions106112
loadScripts63156491162652771
setupStore1264971428
numNetworkReqs171180161167
WebpackPower User HomeuiStartup------
load------
domContentLoaded------
domInteractive------
firstPaint------
backgroundConnect------
firstReactRender------
getState------
initialActions------
loadScripts------
setupStore------
numNetworkReqs------
FirefoxBrowserifyStandard HomeuiStartup13641090242620114441613
load1095930221817511321271
domContentLoaded1095930221717611311271
domInteractive8832117714491148
firstPaint------
backgroundConnect46141833842145
firstReactRender12103931218
getState157231251237
initialActions103012
loadScripts1066914219916711031204
setupStore154183221245
numNetworkReqs20986201380
BrowserifyPower User HomeuiStartup25391459476259129583259
load1774961418261322552544
domContentLoaded1773961418161222552544
domInteractive11233302731374267
firstPaint------
backgroundConnect4002111654058521115
firstReactRender2011101122452
getState954925532102176
initialActions216123
loadScripts1458946416055219692359
setupStore2852984921126
numNetworkReqs75511603174152
WebpackStandard HomeuiStartup15581214234619516721952
load13011084197814813801523
domContentLoaded13011084197814813791523
domInteractive70282324094144
firstPaint------
backgroundConnect55201643865152
firstReactRender15115961523
getState1971242614113
initialActions103122
loadScripts12671057195713513531478
setupStore1931182415103
numNetworkReqs19984191376
WebpackPower User HomeuiStartup26061577373753430323263
load19281152288452723972681
domContentLoaded19271152288452723972681
domInteractive71294056868234
firstPaint------
backgroundConnect3352212163873641119
firstReactRender19124962328
getState1146491093121254
initialActions213123
loadScripts16451128269242921182387
setupStore2853174921118
numNetworkReqs68411522981129
📊 Page Load Benchmark Results

Current Commit: d155f5b | Date: 1/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±39ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 731ms (±36ms) 🟢 | historical mean value: 731ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±10ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 39ms 1.02s 1.32s 1.08s 1.32s
domContentLoaded 731ms 36ms 703ms 990ms 749ms 990ms
firstPaint 77ms 10ms 60ms 152ms 88ms 152ms
firstContentfulPaint 77ms 10ms 60ms 152ms 88ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.77 KiB (0.02%)
  • common: 20 Bytes (0%)

@metamaskbotv2
Copy link

metamaskbotv2 bot commented Jan 7, 2026

Builds ready [d000e29]
UI Startup Metrics (1303 ± 108 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13031022158010813631509
load1095855137610711471305
domContentLoaded1088849136910711401299
domInteractive2716125212386
firstPaint158661074131185300
backgroundConnect21319928211216235
firstReactRender1494151624
getState3620154173864
initialActions104112
loadScripts88265311681079341089
setupStore1253641319
numNetworkReqs171172161164
BrowserifyPower User HomeuiStartup17511421218615218362049
load1066886147211111351274
domContentLoaded1054882146411011271266
domInteractive31181372528105
firstPaint170701161125212358
backgroundConnect24820754558259388
firstReactRender14102321519
getState17112429832189240
initialActions105112
loadScripts83667912471078991054
setupStore1563971536
numNetworkReqs67551972163121
WebpackStandard HomeuiStartup787647113178826927
load63557294265673771
domContentLoaded63056893465667767
domInteractive2515131211977
firstPaint1006027850113217
backgroundConnect295192323999
firstReactRender15103841622
getState3414139204569
initialActions104111
loadScripts62756692563665757
setupStore1163961222
numNetworkReqs181184171170
WebpackPower User HomeuiStartup1195935168217112621583
load7505911104105844929
domContentLoaded7435851096104837921
domInteractive30181242327100
firstPaint1326541770165280
backgroundConnect55757413418506
firstReactRender16132221720
getState14312220214149169
initialActions102111
loadScripts7405831086103830917
setupStore1586581336
numNetworkReqs68532192861127
FirefoxBrowserifyStandard HomeuiStartup13661076239920014751676
load1106899224016711601321
domContentLoaded1105899223616711601321
domInteractive8332129213387153
firstPaint------
backgroundConnect56172345063187
firstReactRender1293131218
getState12699101123
initialActions103112
loadScripts1074885222516111361279
setupStore12363111042
numNetworkReqs20986201477
BrowserifyPower User HomeuiStartup25631501373856629703372
load16971008301157422552499
domContentLoaded16971008301157422542498
domInteractive75323195682222
firstPaint------
backgroundConnect3932812754509941172
firstReactRender2012118122428
getState1026128134111148
initialActions208123
loadScripts1363992283042213732219
setupStore395108311420162
numNetworkReqs75511732983149
WebpackStandard HomeuiStartup16561340335525217631978
load13581138306120514191571
domContentLoaded13581137306020514191571
domInteractive903329052116189
firstPaint------
backgroundConnect60182214473154
firstReactRender15114241722
getState176148231578
initialActions103122
loadScripts13251122303720113821479
setupStore216241331794
numNetworkReqs20986201479
WebpackPower User HomeuiStartup25921541407054630383402
load19221157290550223502583
domContentLoaded19221157290450223502582
domInteractive62283746451244
firstPaint------
backgroundConnect2692511623152321091
firstReactRender19135562427
getState985822932117162
initialActions208123
loadScripts17091135273443520972389
setupStore474109815717190
numNetworkReqs74491543172153
📊 Page Load Benchmark Results

Current Commit: d000e29 | Date: 1/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±40ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 717ms (±37ms) 🟢 | historical mean value: 726ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±11ms) 🟢 | historical mean value: 77ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 40ms 992ms 1.34s 1.05s 1.34s
domContentLoaded 717ms 37ms 685ms 1.00s 725ms 1.00s
firstPaint 75ms 11ms 56ms 164ms 88ms 164ms
firstContentfulPaint 75ms 11ms 56ms 164ms 88ms 164ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.77 KiB (0.02%)
  • common: 20 Bytes (0%)

const filteredNfts = nfts.filter((nft) => {
// Filter out non-EVM NFTs to prevent their chain IDs from appearing
// in the network filter dropdown
return isEvmChainId(nft.chainId as CaipChainId | Hex);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing undefined guard for chainId in filter

Low Severity

The Asset type defines chainId as optional (chainId?: string | number), but the filtering logic casts token.chainId and nft.chainId directly to CaipChainId | Hex without checking for undefined. If an asset has an undefined chainId, isEvmChainId() will call toEvmCaipChainId(undefined) and then parseCaipChainId(), which would throw a runtime error. Adding a guard like if (!token.chainId) return false before the isEvmChainId call would prevent potential crashes.

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link

metamaskbotv2 bot commented Jan 8, 2026

Builds ready [15ced27]
UI Startup Metrics (1293 ± 92 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1293104315259213521438
load108089012808611401215
domContentLoaded107387712738611351211
domInteractive2716112212385
firstPaint165631179122201297
backgroundConnect2141972639218230
firstReactRender15103041624
getState371795144171
initialActions105112
loadScripts865676106287926997
setupStore1374461323
numNetworkReqs171169161165
BrowserifyPower User HomeuiStartup18911620236818319832297
load1022889132410510521275
domContentLoaded1008880131610710341268
domInteractive37182473435123
firstPaint192711270159226430
backgroundConnect278202692126246607
firstReactRender22164952331
getState18213672680188224
initialActions105112
loadScripts79867011121038241051
setupStore17104261933
numNetworkReqs60172022861129
WebpackStandard HomeuiStartup812649106683855970
load65557783966688801
domContentLoaded64957383365684786
domInteractive2515115202082
firstPaint1035735959114210
backgroundConnect225123242973
firstReactRender17113141826
getState3514134204266
initialActions104113
loadScripts64657082364681778
setupStore14577101537
numNetworkReqs181179181170
WebpackPower User HomeuiStartup1355976211223614941780
load683590114487694869
domContentLoaded673582113887679862
domInteractive34171843030118
firstPaint1256339262143272
backgroundConnect1227646203107557
firstReactRender22153632327
getState15313225519157183
initialActions106111
loadScripts670580112886676853
setupStore1684971738
numNetworkReqs58391382457127
FirefoxBrowserifyStandard HomeuiStartup13901073219717814871700
load1121917186313811741374
domContentLoaded1120911186313811741374
domInteractive803123648106173
firstPaint------
backgroundConnect58213095278163
firstReactRender1393341222
getState136158211222
initialActions103112
loadScripts1083903184312111431270
setupStore1246191137
numNetworkReqs19981191473
BrowserifyPower User HomeuiStartup25341995499759125784086
load12401009263830511921913
domContentLoaded12391008263830511921913
domInteractive11934971116111333
firstPaint------
backgroundConnect112231134147103333
firstReactRender23157472533
getState27666842203411743
initialActions2041423
loadScripts1188983261824611581554
setupStore1668803212206691
numNetworkReqs58282234846197
WebpackStandard HomeuiStartup16001348210517317001976
load13321111172312713981603
domContentLoaded13321111172312713981603
domInteractive772726044103150
firstPaint------
backgroundConnect61202274274145
firstReactRender15112831623
getState248246391769
initialActions103122
loadScripts12951094167311413561534
setupStore186181251650
numNetworkReqs19978181471
WebpackPower User HomeuiStartup28292123493373628414543
load16311167304456816742931
domContentLoaded16311166304456816742931
domInteractive149321058202119579
firstPaint------
backgroundConnect1602511792461591066
firstReactRender23165872531
getState324771165276564853
initialActions206123
loadScripts15311136298746016322798
setupStore105876114195432
numNetworkReqs58281773785142
📊 Page Load Benchmark Results

Current Commit: 15ced27 | Date: 1/8/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.01s (±42ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 694ms (±39ms) 🟢 | historical mean value: 723ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±11ms) 🟢 | historical mean value: 79ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.01s 42ms 970ms 1.32s 1.03s 1.32s
domContentLoaded 694ms 39ms 669ms 986ms 714ms 986ms
firstPaint 78ms 11ms 68ms 168ms 88ms 168ms
firstContentfulPaint 78ms 11ms 68ms 168ms 88ms 168ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 1.77 KiB (0.02%)
  • common: 20 Bytes (0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

6 participants