Skip to content

feat: connect page trust signals#40348

Merged
adonesky1 merged 16 commits intomainfrom
am/connect-page-trust-signals
Mar 6, 2026
Merged

feat: connect page trust signals#40348
adonesky1 merged 16 commits intomainfrom
am/connect-page-trust-signals

Conversation

@wenfix
Copy link
Copy Markdown
Contributor

@wenfix wenfix commented Feb 23, 2026

Description

Adds trust signal modals that gate the wallet connection flow based on dApp trustworthiness from the dapp-scanning API. It shows a block modal when flagged, which requires confirmation in order to advance to the connect screen. Also changes existing connect page confirmation buttons colors and icons based on the trust state.

Changelog

CHANGELOG entry: Added confirmation modals for block trust signals on the connect page.

Related issues

Fixes WAPI-1071

Manual testing steps

Verified

  1. Go to https://app.uniswap.org
  2. Connect
  3. Check the verified site icon is now green (no modal should appear)

Block

  1. Go to https://revoke.cash
  2. Connect
  3. Check if the block modal appears
  4. Confirm
  5. Next to the app url you should see a warning icon in danger color
  6. The confirmation button should have the danger color

Tip

JIRA ticket contains the design links.

Screenshots/Recordings

Before

After

trust-signals-extension.mov

Pre-merge author checklist

Warning

Before merging, Remove temporary TEST_TRUST_OVERRIDES hostname map from useOriginTrustSignals.ts

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

Medium Risk
Touches the dapp connection/permissions flow by conditionally blocking UI behind a modal and changing the primary connect CTA styling, which could impact users’ ability to connect if trust-signal state is miscomputed.

Overview
Adds a new ConnectionTrustSignalGate wrapper around PermissionsConnect that shows a blocking TrustSignalModal when useOriginTrustSignals reports a Malicious origin, requiring an explicit “Connect Anyway” action to proceed.

Updates MultichainAccountsConnectPage to consume the hook’s state directly and reflect trust status in the header (green verified icon, red danger icon for malicious) and to render the Connect button in danger style with a warning icon when malicious. New i18n strings and unit tests are included for the gate and modal.

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

@wenfix wenfix requested a review from a team as a code owner February 23, 2026 22:26
@metamaskbot metamaskbot added the team-wallet-integrations Wallet Integrations team label Feb 23, 2026
@github-actions
Copy link
Copy Markdown
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.

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Feb 23, 2026

✨ Files requiring CODEOWNER review ✨

🔑 @MetaMask/accounts-engineers (1 files, +23 -4)
  • 📁 ui/
    • 📁 pages/
      • 📁 multichain-accounts/
        • 📁 multichain-accounts-connect-page/
          • 📄 multichain-accounts-connect-page.tsx +23 -4

state === TrustSignalDisplayState.Unknown ||
state === TrustSignalDisplayState.Verified
) {
return <>{children}</>;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Dismissed state persists across origin changes

Medium Severity

The dismissed state in ConnectionTrustSignalGate is never reset when origin changes. If a user dismisses a warning/block modal for one malicious origin, and the component stays mounted while processing the next queued connection request with a different malicious origin, dismissed remains true and the trust signal modal is silently bypassed. The gate needs to reset dismissed back to false when origin changes.

Fix in Cursor Fix in Web

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Feb 23, 2026

Builds ready [595f725]
⚡ Performance Benchmarks (1356 ± 113 ms)
👆 Interaction Benchmarks
ActionMetricMean (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account27920297308
total27920297308
Confirm Txconfirm_tx6028560306036
total6028560306036
Bridge User Actionsbridge_load_page22011229231
bridge_load_asset_picker17012186186
bridge_search_token7014700708
total1090610901099
🔌 Startup Benchmarks
BuildMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
Chrome Browserify Startup Standard HomeuiStartup13561135182411314111528
load115795914649712181332
domContentLoaded115095414619512111299
domInteractive271594192381
firstPaint220611344233224363
backgroundConnect20919041123210236
firstReactRender18133541925
initialActions107114
loadScripts95876112609310221111
setupStore1265761419
numNetworkReqs312296212288
Chrome Browserify Startup Power User HomeuiStartup2663138410488206821819091
load11961046171515112381562
domContentLoaded11751030163814012201533
domInteractive37191773033130
firstPaint206751180134257343
backgroundConnect990256871518014024788
firstReactRender23145472541
initialActions104113
loadScripts969824143813610051319
setupStore1664981834
numNetworkReqs73371492686126
Chrome Webpack Startup Standard HomeuiStartup87369311411049341086
load739617104094792897
domContentLoaded733612103494788893
domInteractive2815108202379
firstPaint1115944962126201
backgroundConnect28195373143
firstReactRender18114262031
initialActions105112
loadScripts731610102693786885
setupStore1254671228
numNetworkReqs3222102202584
Chrome Webpack Startup Power User HomeuiStartup1244966203115213391468
load7406341347110744975
domContentLoaded7296271336111731967
domInteractive41192323636122
firstPaint15768697106178339
backgroundConnect17012935843166266
firstReactRender22173932427
initialActions104111
loadScripts7266251326109729958
setupStore1344661420
numNetworkReqs1123825951145164
Firefox Browserify Startup Standard HomeuiStartup17671490291528617312525
load14931249260124414811891
domContentLoaded14911249260024414751891
domInteractive112401179116139156
firstPaint------
backgroundConnect66352673962153
firstReactRender14122111516
initialActions103122
loadScripts14601225254023114521738
setupStore219168251748
numNetworkReqs3219100202788
Firefox Browserify Startup Power User HomeuiStartup27322015444235228803249
load15431305272523016161897
domContentLoaded15431305272423016161897
domInteractive157361373165157398
firstPaint------
backgroundConnect3551061519268554821
firstReactRender19146481925
initialActions203122
loadScripts14991284267421815561857
setupStore1858815225221672
numNetworkReqs82301973899167
Firefox Webpack Startup Standard HomeuiStartup17301452343430617362027
load14511228280323514641576
domContentLoaded14501228280323514631576
domInteractive108291477146131188
firstPaint------
backgroundConnect65222904870181
firstReactRender16125451624
initialActions103122
loadScripts14271215278123314401546
setupStore196121191657
numNetworkReqs312092172778
Firefox Webpack Startup Power User HomeuiStartup28312015820474930113913
load16741342691166116402091
domContentLoaded16731342691066116402091
domInteractive14451655116151427
firstPaint------
backgroundConnect353861193264426936
firstReactRender22165452430
initialActions207122
loadScripts16321320665463915912048
setupStore1319690167141572
numNetworkReqs77312304283183
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2180219219
srpButtonToSrpForm95493102
confirmSrpToPwForm2102122
pwFormToMetricsScreen1611617
metricsToWalletReadyScreen1601616
doneButtonToHomeScreen105828513101385
openAccountMenuToAccountListLoaded736224376277664
total89944390339035
Onboarding New WalletcreateWalletToSocialScreen2181218220
srpButtonToPwForm1096112119
createPwToRecoveryScreen9099
skipBackupToMetricsScreen3513636
agreeButtonToOnboardingSuccess1611717
doneButtonToAssetList62070615732
total1010849941148
Asset DetailsassetClickToPriceChart4134344
total4134344
Solana Asset DetailsassetClickToPriceChart4724751
total4724751
Import Srp HomeloginToHomeScreen196215320862202
openAccountMenuAfterLogin4144247
homeAfterImportWithNewWallet255721127092792
total456425746974943
Send TransactionsopenSendPageFromHome1811820
selectTokenToSendFormLoaded2793738
reviewTransactionToConfirmationPage86514880881
total91414925934
SwapopenSwapPageFromHome1078118118
fetchAndDisplaySwapQuotes531790564076444
total542092865076604
🌐 Dapp Page Load Benchmarks

Current Commit: 595f725 | Date: 2/23/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±64ms) 🟡 | historical mean value: 1.06s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 740ms (±62ms) 🟢 | historical mean value: 738ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±9ms) 🟢 | historical mean value: 81ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 64ms 1.01s 1.36s 1.26s 1.36s
domContentLoaded 740ms 62ms 701ms 1.02s 938ms 1.02s
firstPaint 78ms 9ms 64ms 160ms 84ms 160ms
firstContentfulPaint 78ms 9ms 64ms 160ms 84ms 160ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 14.16 KiB (0.33%)
  • ui: 33.67 KiB (0.41%)
  • common: -30.76 KiB (-0.28%)

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Feb 24, 2026

Builds ready [bf2f303]
⚡ Performance Benchmarks (1357 ± 105 ms)
👆 Interaction Benchmarks
ActionMetricMean (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account3022305305
total3022305305
Confirm Txconfirm_tx60583160646106
total60583160646106
Bridge User Actionsbridge_load_page23924261270
bridge_load_asset_picker19559241281
bridge_search_token72527743769
total11588212441271
🔌 Startup Benchmarks
BuildMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
Chrome Browserify Startup Standard HomeuiStartup13571131167910514001555
load114394414269811911323
domContentLoaded113594014209611851312
domInteractive2716114212281
firstPaint1555937376201305
backgroundConnect19818124112201221
firstReactRender17112831822
initialActions105112
loadScripts95275612379510031131
setupStore1273351420
numNetworkReqs312299212289
Chrome Browserify Startup Power User HomeuiStartup2651142610349175524614826
load12221040178415412531605
domContentLoaded12061034177714912291572
domInteractive36192143333106
firstPaint207881226138287347
backgroundConnect864252802512874732729
firstReactRender23165772634
initialActions104112
loadScripts1001842151314510211382
setupStore1464461624
numNetworkReqs75391472487121
Chrome Webpack Startup Standard HomeuiStartup82966811801038831046
load70159296091747875
domContentLoaded69558695591742867
domInteractive2616103202282
firstPaint1215835563160250
backgroundConnect27185373041
firstReactRender20114582338
initialActions106113
loadScripts69358495390740860
setupStore1152741318
numNetworkReqs312297202591
Chrome Webpack Startup Power User HomeuiStartup1304968258226113811646
load7606451182101756991
domContentLoaded7506401175101742984
domInteractive37201662936119
firstPaint1677044580221304
backgroundConnect1931331165138169321
firstReactRender23184142432
initialActions105111
loadScripts748638116799740976
setupStore1365061419
numNetworkReqs81361603196150
Firefox Browserify Startup Standard HomeuiStartup16851478263218817032077
load14231230232716314531739
domContentLoaded14211230232716314531733
domInteractive883449469117147
firstPaint------
backgroundConnect6042273265994
firstReactRender14122011415
initialActions102122
loadScripts13931205229215714281669
setupStore177119131639
numNetworkReqs311996202787
Firefox Browserify Startup Power User HomeuiStartup28242026746169929963305
load16151306584162716072018
domContentLoaded16151306584062716062018
domInteractive16034686136178509
firstPaint------
backgroundConnect3991251221292577991
firstReactRender19147381922
initialActions102122
loadScripts15771278578262315701986
setupStore1479751182182527
numNetworkReqs84281933895171
Firefox Webpack Startup Standard HomeuiStartup17261429374741016942088
load14351210330927714421631
domContentLoaded14341205330927714411631
domInteractive973028451132175
firstPaint------
backgroundConnect7527197119359116
firstReactRender161286101523
initialActions102122
loadScripts14091196328127514201596
setupStore227233331555
numNetworkReqs312095182779
Firefox Webpack Startup Power User HomeuiStartup27001974424638128553512
load15401328251221116141978
domContentLoaded15391328251221116141978
domInteractive15531652124186406
firstPaint------
backgroundConnect4011161599294556927
firstReactRender20156862228
initialActions217122
loadScripts15031299248919815711892
setupStore14417830187144605
numNetworkReqs77242194092174
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2170218218
srpButtonToSrpForm8818990
confirmSrpToPwForm2002020
pwFormToMetricsScreen1401414
metricsToWalletReadyScreen1501515
doneButtonToHomeScreen11228312011205
openAccountMenuToAccountListLoaded672468574037614
total830155189598984
Onboarding New WalletcreateWalletToSocialScreen2190219219
srpButtonToPwForm1051105106
createPwToRecoveryScreen8088
skipBackupToMetricsScreen3623639
agreeButtonToOnboardingSuccess1601616
doneButtonToAssetList90729911351296
total129429415181675
Asset DetailsassetClickToPriceChart50145675
total50145675
Solana Asset DetailsassetClickToPriceChart4714849
total4714849
Import Srp HomeloginToHomeScreen208517621832377
openAccountMenuAfterLogin4023944
homeAfterImportWithNewWallet24823625212521
total44782245064506
Send TransactionsopenSendPageFromHome2212225
selectTokenToSendFormLoaded37145155
reviewTransactionToConfirmationPage86615858892
total93321933965
SwapopenSwapPageFromHome14719156173
fetchAndDisplaySwapQuotes4634746394639
total47713247934812
🌐 Dapp Page Load Benchmarks

Current Commit: bf2f303 | Date: 2/24/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±40ms) 🟡 | historical mean value: 1.04s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 724ms (±36ms) 🟢 | historical mean value: 729ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±11ms) 🟢 | historical mean value: 82ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 40ms 1.01s 1.34s 1.07s 1.34s
domContentLoaded 724ms 36ms 698ms 987ms 754ms 987ms
firstPaint 76ms 11ms 60ms 176ms 84ms 176ms
firstContentfulPaint 76ms 11ms 60ms 176ms 84ms 176ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 14.34 KiB (0.33%)
  • ui: 33.71 KiB (0.41%)
  • common: -30.17 KiB (-0.27%)

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Feb 24, 2026

Builds ready [c332ed9]
⚡ Performance Benchmarks (1388 ± 99 ms)
👆 Interaction Benchmarks
ActionMetricMean (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account27211279287
total27211279287
Confirm Txconfirm_tx60261060336040
total60261060336040
Bridge User Actionsbridge_load_page20423227237
bridge_load_asset_picker21460280292
bridge_search_token71319730743
total11326712121215
🔌 Startup Benchmarks
BuildMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
Chrome Browserify Startup Standard HomeuiStartup1388118916209914331573
load118098513739512371346
domContentLoaded117398013669412321335
domInteractive2816115202484
firstPaint155651203129198310
backgroundConnect20618924513208233
firstReactRender18124042024
initialActions105114
loadScripts98478911809510431144
setupStore1363451622
numNetworkReqs312293192284
Chrome Browserify Startup Power User HomeuiStartup3159136410648225839509522
load12191026171412312661429
domContentLoaded12001016170611912401405
domInteractive3219127183359
firstPaint217831344175265359
backgroundConnect13312618832187118625254
firstReactRender24174662638
initialActions105112
loadScripts992824148311510321201
setupStore1454061625
numNetworkReqs83411382299118
Chrome Webpack Startup Standard HomeuiStartup8056561075978481021
load68757887185745848
domContentLoaded68157486285739841
domInteractive2516110202184
firstPaint1175734964152246
backgroundConnect271682102944
firstReactRender18114062033
initialActions104111
loadScripts67957285784737833
setupStore1155561218
numNetworkReqs3122102222593
Chrome Webpack Startup Power User HomeuiStartup1289942202520913901660
load7606661158104763996
domContentLoaded7486591151105750990
domInteractive40201622939127
firstPaint1498250877179300
backgroundConnect18213579482172314
firstReactRender23163642431
initialActions101011
loadScripts7456571138103748981
setupStore1354051622
numNetworkReqs1124024739143166
Firefox Browserify Startup Standard HomeuiStartup16401378247218816542019
load13861169207815314191632
domContentLoaded13851165207815314191631
domInteractive75352534194138
firstPaint------
backgroundConnect62322073457149
firstReactRender14115351315
initialActions102012
loadScripts13541147197813713921591
setupStore157160161531
numNetworkReqs322096212792
Firefox Browserify Startup Power User HomeuiStartup307520829572118031363982
load180113467495102017142212
domContentLoaded180013467495102017142211
domInteractive171541766195163432
firstPaint------
backgroundConnect44112415263126101034
firstReactRender20155672031
initialActions203122
loadScripts175413197430101816652160
setupStore159171016189184624
numNetworkReqs84372233791177
Firefox Webpack Startup Standard HomeuiStartup17341420333933317312199
load14611187301130814621679
domContentLoaded14601186301130814621678
domInteractive108301550155131230
firstPaint------
backgroundConnect58272042665101
firstReactRender17125761725
initialActions102122
loadScripts14371173298130714391650
setupStore207158231753
numNetworkReqs312090172779
Firefox Webpack Startup Power User HomeuiStartup27542024882869628823351
load15821306731660815961999
domContentLoaded15811305731660815961999
domInteractive17053948161172549
firstPaint------
backgroundConnect4021091106278571972
firstReactRender21155952329
initialActions2044423
loadScripts15481283728760915551980
setupStore16817706191208609
numNetworkReqs83262233891160
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2201220221
srpButtonToSrpForm9319494
confirmSrpToPwForm2202222
pwFormToMetricsScreen1501516
metricsToWalletReadyScreen1601616
doneButtonToHomeScreen87629112061236
openAccountMenuToAccountListLoaded722650876547860
total846840487968814
Onboarding New WalletcreateWalletToSocialScreen2190219219
srpButtonToPwForm1062108109
createPwToRecoveryScreen8099
skipBackupToMetricsScreen3724040
agreeButtonToOnboardingSuccess1601616
doneButtonToAssetList85925411261175
total124625215111559
Asset DetailsassetClickToPriceChart3944144
total3944144
Solana Asset DetailsassetClickToPriceChart4614747
total4614747
Import Srp HomeloginToHomeScreen18793418871930
openAccountMenuAfterLogin4124343
homeAfterImportWithNewWallet24285824642496
total43491343684368
Send TransactionsopenSendPageFromHome1701718
selectTokenToSendFormLoaded1912020
reviewTransactionToConfirmationPage86210866876
total90617911934
SwapopenSwapPageFromHome11226122147
fetchAndDisplaySwapQuotes46807747354763
total47926148554862
🌐 Dapp Page Load Benchmarks

Current Commit: c332ed9 | Date: 2/24/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±38ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 737ms (±36ms) 🟢 | historical mean value: 721ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±11ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 38ms 1.03s 1.33s 1.08s 1.33s
domContentLoaded 737ms 36ms 712ms 998ms 760ms 998ms
firstPaint 78ms 11ms 64ms 172ms 84ms 172ms
firstContentfulPaint 78ms 11ms 64ms 172ms 84ms 172ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: -255.46 KiB (-5.9%)
  • ui: 39.01 KiB (0.47%)
  • common: 193.42 KiB (1.73%)

Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Feb 26, 2026

Builds ready [c66eef3]
⚡ Performance Benchmarks
👆 Interaction Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account31029433215316332
total31029433215316332
Confirm Txconfirm_tx6069605960911360666091
total6069605960911360666091
Bridge User Actionsbridge_load_page23419326330260263
bridge_load_asset_picker18512824747214247
bridge_search_token7037037040703704
total1100108911101011081110
🔌 Startup Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Standard HomeuiStartup14061175194711114421602
load1186990166410112221369
domContentLoaded117898316239712191359
domInteractive271799182475
firstPaint158691029119204368
backgroundConnect21319426716216247
firstReactRender19124562031
initialActions103112
loadScripts98278714119710241165
setupStore1262941418
numNetworkReqs3122100202286
Power User HomeuiStartup17481410222514517832076
load11551041184115511381565
domContentLoaded11421021183215311201537
domInteractive3517155223481
firstPaint1787454589239328
backgroundConnect29125835821305336
firstReactRender22164652434
initialActions103112
loadScripts92982115921509081326
setupStore1775881734
numNetworkReqs59361582656123
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2192172222221222
srpButtonToSrpForm94939419494
confirmSrpToPwForm22212202222
pwFormToMetricsScreen15151501515
metricsToWalletReadyScreen16161601616
doneButtonToHomeScreen1078776155129312531551
openAccountMenuToAccountListLoaded74167047766229576597662
total88668664902812889779028
Onboarding New WalletcreateWalletToSocialScreen2192172201220220
srpButtonToPwForm1111081152112115
createPwToRecoveryScreen999099
skipBackupToMetricsScreen38374013840
agreeButtonToOnboardingSuccess17171811818
doneButtonToAssetList924520134334613271343
total1318912173334517231733
Asset DetailsassetClickToPriceChart35304043640
total35304043640
Solana Asset DetailsassetClickToPriceChart59586015860
total59586015860
Import Srp HomeloginToHomeScreen2020194221769320062176
openAccountMenuAfterLogin42374754647
homeAfterImportWithNewWallet23892091258417625212584
total45764134521038748065210
Send TransactionsopenSendPageFromHome38383903939
selectTokenToSendFormLoaded20182112121
reviewTransactionToConfirmationPage8608478698868869
total9249189284928928
SwapopenSwapPageFromHome12810516524147165
fetchAndDisplaySwapQuotes53394614637884263606378
total54674726652584264656525
🌐 Dapp Page Load Benchmarks

Current Commit: c66eef3 | Date: 2/26/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±41ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 735ms (±38ms) 🟢 | historical mean value: 743ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 81ms (±14ms) 🟢 | historical mean value: 83ms ⬇️ (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 735ms 38ms 713ms 1.02s 761ms 1.02s
firstPaint 81ms 14ms 64ms 204ms 92ms 204ms
firstContentfulPaint 81ms 14ms 64ms 204ms 92ms 204ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 928.47 KiB (21.43%)
  • ui: 50.26 KiB (0.6%)
  • common: 130.45 KiB (1.17%)

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Mar 4, 2026

Builds ready [e019ea0]
⚡ Performance Benchmarks
👆 Interaction Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account2712642837269283
total2712642837269283
Confirm Txconfirm_tx606360596065360656065
total606360596065360656065
Bridge User Actionsbridge_load_page22918426427243264
bridge_load_asset_picker22017429147261291
bridge_search_token72470074719735747
total1173107912758112601275
🔌 Startup Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Standard HomeuiStartup14631219191611115181643
load1229102716049512701370
domContentLoaded1222100715989512641359
domInteractive301799192583
firstPaint212711373248228380
backgroundConnect21519425112220240
firstReactRender20134562131
initialActions107114
loadScripts102380613949410641161
setupStore1363751623
numNetworkReqs312288192279
Power User HomeuiStartup20061324563785819434197
load11561011165214711551536
domContentLoaded11401001164414311461522
domInteractive3618135223680
firstPaint205771573163262341
backgroundConnect49626432555913302127
firstReactRender24154572539
initialActions106113
loadScripts93080413901369371309
setupStore1556571627
numNetworkReqs64291542567120
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2202192221220222
srpButtonToSrpForm95939619596
confirmSrpToPwForm21212202222
pwFormToMetricsScreen15151601616
metricsToWalletReadyScreen16161601616
doneButtonToHomeScreen62560963510634635
openAccountMenuToAccountListLoaded2933290629571829402957
total3932390239612139323961
Onboarding New WalletcreateWalletToSocialScreen2212172243224224
srpButtonToPwForm1051041071106107
createPwToRecoveryScreen999099
skipBackupToMetricsScreen36353603636
agreeButtonToOnboardingSuccess17161701717
doneButtonToAssetList53547460845554608
total92486599343936993
Asset DetailsassetClickToPriceChart45385254952
total45385254952
Solana Asset DetailsassetClickToPriceChart967014227109142
total967014227109142
Import Srp HomeloginToHomeScreen20921958232213921732322
openAccountMenuAfterLogin593770126970
homeAfterImportWithNewWallet29132720309614730063096
total50644760547126152265471
Send TransactionsopenSendPageFromHome21192422124
selectTokenToSendFormLoaded20182112121
reviewTransactionToConfirmationPage86685188012878880
total9189109256920925
SwapopenSwapPageFromHome13511015215143152
fetchAndDisplaySwapQuotes291029042922729082922
total304330323056930473056
🌐 Dapp Page Load Benchmarks

Current Commit: e019ea0 | Date: 3/4/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±41ms) 🟡 | historical mean value: 1.06s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 728ms (±39ms) 🟢 | historical mean value: 748ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 80ms (±12ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 41ms 1.01s 1.35s 1.06s 1.35s
domContentLoaded 728ms 39ms 703ms 1.02s 748ms 1.02s
firstPaint 80ms 12ms 64ms 188ms 88ms 188ms
firstContentfulPaint 80ms 12ms 64ms 188ms 88ms 188ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.01 MiB (23.94%)
  • ui: 46.4 KiB (0.56%)
  • common: -15.45 KiB (-0.14%)

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Mar 4, 2026

Builds ready [58e473d]
⚡ Performance Benchmarks
👆 Interaction Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account28326332022276320
total28326332022276320
Confirm Txconfirm_tx6046602160782160606078
total6046602160782160606078
Bridge User Actionsbridge_load_page23518331346251313
bridge_load_asset_picker20718122217221222
bridge_search_token72269775521737755
total1173109312717612591271
🔌 Startup Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Standard HomeuiStartup14081182167710814351618
load118299114559512101372
domContentLoaded117298914288812021361
domInteractive291796192582
firstPaint1506847886203351
backgroundConnect21419247635211252
firstReactRender19124552028
initialActions107124
loadScripts98078712378810051166
setupStore1363951622
numNetworkReqs312291192283
Power User HomeuiStartup17601263584170617152452
load1084951164114310811481
domContentLoaded1070946163014210681461
domInteractive34181442532105
firstPaint182691034121238349
backgroundConnect3622362769367300473
firstReactRender23155382441
initialActions106114
loadScripts87075913941308631219
setupStore1465471526
numNetworkReqs63381652867142
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2182182190218219
srpButtonToSrpForm93939309393
confirmSrpToPwForm22212202222
pwFormToMetricsScreen15151501515
metricsToWalletReadyScreen16151601616
doneButtonToHomeScreen58956262724588627
openAccountMenuToAccountListLoaded295329452962729582962
total3906388239361939043936
Onboarding New WalletcreateWalletToSocialScreen2252242250225225
srpButtonToPwForm1231151327130132
createPwToRecoveryScreen1091111011
skipBackupToMetricsScreen40394424044
agreeButtonToOnboardingSuccess18172011920
doneButtonToAssetList60351573992690739
total102791911719511041171
Asset DetailsassetClickToPriceChart46385564555
total46385564555
Solana Asset DetailsassetClickToPriceChart75698147881
total75698147881
Import Srp HomeloginToHomeScreen20441881223913320822239
openAccountMenuAfterLogin39294774647
homeAfterImportWithNewWallet2585252026354826262635
total46664540490114546694901
Send TransactionsopenSendPageFromHome18172011920
selectTokenToSendFormLoaded22182942529
reviewTransactionToConfirmationPage8478468512847851
total8888818957894895
SwapopenSwapPageFromHome1151111183115118
fetchAndDisplaySwapQuotes289628952897128972897
total301530103025630133025
🌐 Dapp Page Load Benchmarks

Current Commit: 58e473d | Date: 3/4/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±40ms) 🟡 | historical mean value: 1.05s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 728ms (±37ms) 🟢 | historical mean value: 740ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 80ms (±12ms) 🟢 | historical mean value: 81ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 40ms 1.01s 1.33s 1.06s 1.33s
domContentLoaded 728ms 37ms 705ms 1.00s 746ms 1.00s
firstPaint 80ms 12ms 64ms 180ms 88ms 180ms
firstContentfulPaint 80ms 12ms 64ms 180ms 88ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 1.01 MiB (23.95%)
  • ui: 51.04 KiB (0.61%)
  • common: -15.62 KiB (-0.14%)

@wenfix
Copy link
Copy Markdown
Contributor Author

wenfix commented Mar 4, 2026

hardcoded values still need to removed before merging

@adonesky1
Copy link
Copy Markdown
Contributor

adonesky1 commented Mar 5, 2026

Seeing a weird effect with the popup lingering after connecting on this PR (haven't check if on main too yet)

Screen.Recording.2026-03-05.at.2.49.48.PM.mov
Screen.Recording.2026-03-05.at.2.49.32.PM.mov
Screen.Recording.2026-03-05.at.2.56.07.PM.mov

EDIT: I am seeing the same thing on main so should not block this PR

adonesky1
adonesky1 previously approved these changes Mar 5, 2026
Copy link
Copy Markdown
Contributor

@adonesky1 adonesky1 left a comment

Choose a reason for hiding this comment

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

LGTM! Lets just remove those hardcoded values and ship it!

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Mar 6, 2026

Builds ready [f4aca55]
⚡ Performance Benchmarks
👆 Interaction Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Load New Accountload_new_account2712642755275275
total2712642755275275
Confirm Txconfirm_tx6031601460621960316062
total6031601460621960316062
Bridge User Actionsbridge_load_page23221225014247250
bridge_load_asset_picker22216826242255262
bridge_search_token71970273714729737
total1190109412807912421280
🔌 Startup Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Standard HomeuiStartup14261213169310514641639
load1196101214209012341379
domContentLoaded1190100713928812291365
domInteractive291893182678
firstPaint169701195165214361
backgroundConnect21119325111213234
firstReactRender20147072130
initialActions106124
loadScripts99581212028810361174
setupStore1272851521
numNetworkReqs322288202284
Power User HomeuiStartup20381699269216121102322
load11891040190816511831651
domContentLoaded11711034171715011611594
domInteractive3619162223867
firstPaint198781535159251345
backgroundConnect30126147428309347
firstReactRender2516160152644
initialActions109113
loadScripts95382214611439431381
setupStore1784761927
numNetworkReqs69351814456170
🧭 User Journey Benchmarks
BenchmarkMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P75 (ms)P95 (ms)
Onboarding Import WalletimportWalletToSocialScreen2192182201219220
srpButtonToSrpForm93929629596
confirmSrpToPwForm22212202222
pwFormToMetricsScreen16151601616
metricsToWalletReadyScreen16161601616
doneButtonToHomeScreen64259372348666723
openAccountMenuToAccountListLoaded2923290029371529332937
total3909389139512538963951
Onboarding New WalletcreateWalletToSocialScreen2212182232222223
srpButtonToPwForm1131121141114114
createPwToRecoveryScreen999099
skipBackupToMetricsScreen39374324143
agreeButtonToOnboardingSuccess17171701717
doneButtonToAssetList5325245417541541
total9329299384938938
Asset DetailsassetClickToPriceChart1212922767158227
total1212922767158227
Solana Asset DetailsassetClickToPriceChart74717947979
total74717947979
Import Srp HomeloginToHomeScreen1993187321049220972104
openAccountMenuAfterLogin54535615656
homeAfterImportWithNewWallet2359228424184923802418
total44144210456214345334562
Send TransactionsopenSendPageFromHome18181801818
selectTokenToSendFormLoaded21182522325
reviewTransactionToConfirmationPage991849121917411891219
total1030882126517612251265
SwapopenSwapPageFromHome48425445154
fetchAndDisplaySwapQuotes269326882698326922698
total274127412742127422742
🌐 Dapp Page Load Benchmarks

Current Commit: f4aca55 | Date: 3/6/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±43ms) 🟡 | historical mean value: 1.05s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 738ms (±38ms) 🟢 | historical mean value: 734ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 81ms (±11ms) 🟢 | historical mean value: 83ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 43ms 1.02s 1.34s 1.08s 1.34s
domContentLoaded 738ms 38ms 714ms 1.02s 760ms 1.02s
firstPaint 81ms 11ms 64ms 172ms 92ms 172ms
firstContentfulPaint 81ms 11ms 64ms 172ms 92ms 172ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 939 KiB (21.67%)
  • ui: 68.05 KiB (0.82%)
  • common: 76.37 KiB (0.68%)

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Mar 6, 2026

Copy link
Copy Markdown
Contributor

@ccharly ccharly left a comment

Choose a reason for hiding this comment

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

LGTM for accounts!

@adonesky1 adonesky1 added this pull request to the merge queue Mar 6, 2026
Merged via the queue into main with commit 802a241 Mar 6, 2026
662 of 670 checks passed
@adonesky1 adonesky1 deleted the am/connect-page-trust-signals branch March 6, 2026 16:28
@github-actions github-actions bot locked and limited conversation to collaborators Mar 6, 2026
@metamaskbot metamaskbot added the release-13.23.0 Issue or pull request that will be included in release 13.23.0 label Mar 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.23.0 Issue or pull request that will be included in release 13.23.0 size-L team-wallet-integrations Wallet Integrations team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants