Skip to content

Conversation

imblue-dabadee
Copy link
Contributor

@imblue-dabadee imblue-dabadee commented Sep 9, 2025

Description

This adds metrics that capture the address label and the address scan response when displayed in the UI. The metrics specifically are associated to when transactions or signatures are either approved, rejected, finalized, or submitted.

Open in GitHub Codespaces

Changelog

CHANGELOG entry:

Related issues

Fixes:

Manual testing steps

  1. Run segment locally
  2. Trigger a transaction or signature and reject/confirm.
  3. Observe that address_alert_response and address_label exist. The latter should only exist in anon events.

Screenshots/Recordings

Before

After

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.

Copy link
Contributor

github-actions bot commented Sep 9, 2025

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 metamaskbot added the team-product-safety Push issues to Product Safety team label Sep 9, 2025
@github-actions github-actions bot added the size-M label Sep 9, 2025
@metamaskbot
Copy link
Collaborator

metamaskbot commented Sep 9, 2025

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (3 files, +290 -0)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 components/
          • 📁 confirm/
            • 📁 info/
              • 📄 info.tsx +3 -0
        • 📁 hooks/
          • 📄 useTrustSignalMetrics.test.ts +166 -0
          • 📄 useTrustSignalMetrics.ts +121 -0

@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: 0e8769d | Date: 9/9/2025

📄 https://metamask.github.io/test-dapp/

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.30s (±48ms) 🟡 | historical mean value: 1.31s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 976ms (±47ms) 🟢 | historical mean value: 984ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 91ms (±22ms) 🟢 | historical mean value: 94ms ⬇️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.30s 48ms 1.27s 1.71s 1.35s 1.71s
domContentLoaded 976ms 47ms 949ms 1.39s 1.02s 1.39s
firstPaint 91ms 22ms 72ms 204ms 148ms 204ms
firstContentfulPaint 91ms 22ms 72ms 204ms 148ms 204ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [0e8769d]
UI Startup Metrics (1223 ± 55 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1223111314095512601309
load106597412175210901162
domContentLoaded105896312015310851156
domInteractive17134761729
firstPaint65985120743310721157
backgroundConnect2512372737255266
firstReactRender24165062439
getState1263661525
initialActions40679411
loadScripts81372094652837914
setupStore95192914
WebpackHomeuiStartup20341571253323621772438
load16371280195218417691878
domContentLoaded16281275194818417581864
domInteractive171276101539
firstPaint1676338762190290
backgroundConnect3913342533166
firstReactRender79373295080144
getState3342997214280
initialActions62295623
loadScripts16251272194618317551852
setupStore196289401329
FirefoxBrowserifyHomeuiStartup13891236179910614571586
load1207104515098112681354
domContentLoaded1207104515088112681354
domInteractive1073230154115240
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect331896153573
firstReactRender26224942832
getState62526613
initialActions30153312
loadScripts1182102414908112341321
setupStore10418019830
WebpackHomeuiStartup15531378206916016591867
load13221165167013114311573
domContentLoaded13211164167013114301572
domInteractive106663015795275
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3320106133751
firstReactRender43345244548
getState729410613
initialActions3010135
loadScripts12971143164613114111541
setupStore95354916
Benchmark value 252 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 24 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 5 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 267 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 11 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 34 exceeds gate value 29 for chrome webpack home mean getState
Benchmark value 280 exceeds gate value 195 for chrome webpack home p95 getState
Benchmark value 23 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 33 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 27 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 4 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 11 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 240 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 73 exceeds gate value 70 for firefox browserify home p95 backgroundConnect
Benchmark value 12 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 30 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 106 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 34 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 43 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 3 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 275 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 51 exceeds gate value 49 for firefox webpack home p95 backgroundConnect
Benchmark value 5 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 288ms | Sum of p95 exceeds: 544.8ms
Sum of all benchmark exceeds: 832.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 43 Bytes (0%)
  • ui: 1.75 KiB (0.02%)
  • common: 10 Bytes (0%)

@metamaskbot
Copy link
Collaborator

❌ test-e2e-chrome-api-specs failed. View the html report here.

@imblue-dabadee imblue-dabadee changed the title feat: transaction trust signal metrics feat: transaction and signature trust signal metrics Sep 10, 2025
@imblue-dabadee imblue-dabadee marked this pull request as ready for review September 10, 2025 03:25
@imblue-dabadee imblue-dabadee requested a review from a team as a code owner September 10, 2025 03:25
@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: ffcdfd4 | Date: 9/10/2025

📄 https://metamask.github.io/test-dapp/

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.31s (±47ms) 🟡 | historical mean value: 1.31s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 985ms (±42ms) 🟢 | historical mean value: 988ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 88ms (±13ms) 🟢 | historical mean value: 95ms ⬇️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.31s 47ms 1.26s 1.68s 1.37s 1.68s
domContentLoaded 985ms 42ms 943ms 1.35s 1.03s 1.35s
firstPaint 88ms 13ms 72ms 156ms 116ms 156ms
firstContentfulPaint 88ms 13ms 72ms 156ms 116ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [ffcdfd4]
UI Startup Metrics (1234 ± 63 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1234111814186312851332
load107096412225711121164
domContentLoaded106495612115711061153
domInteractive17145161730
firstPaint69890117143610911161
backgroundConnect2492342697253261
firstReactRender26175472939
getState15579101835
initialActions50477616
loadScripts82171695356862914
setupStore1063351120
WebpackHomeuiStartup20631567256923521962495
load16471257203319317741926
domContentLoaded16371245202319217641917
domInteractive1913106161556
firstPaint1737143874204328
backgroundConnect4018355513470
firstReactRender90393266091287
getState3153146815266
initialActions9217117722
loadScripts16331243202019117611905
setupStore2663086015265
FirefoxBrowserifyHomeuiStartup13631204181712114271621
load1178104414448912461348
domContentLoaded1177104414448912451348
domInteractive1013429650103217
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect2918116123149
firstReactRender27229282735
getState9219021625
initialActions4178838
loadScripts1156102713858512271321
setupStore10511013825
WebpackHomeuiStartup15631403213815216501853
load13291194166012114281577
domContentLoaded13291194165912114281577
domInteractive105343175696281
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect3321115103842
firstReactRender43337754549
getState9316121716
initialActions411581638
loadScripts13041166157512114041554
setupStore10511311921
Benchmark value 1071 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1064 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 250 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 26 exceeds gate value 23 for chrome browserify home mean firstReactRender
Benchmark value 16 exceeds gate value 15 for chrome browserify home mean getState
Benchmark value 6 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 261 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 35 exceeds gate value 33 for chrome browserify home p95 getState
Benchmark value 16 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 20 exceeds gate value 17 for chrome browserify home p95 setupStore
Benchmark value 31 exceeds gate value 29 for chrome webpack home mean getState
Benchmark value 9 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 2495 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 266 exceeds gate value 195 for chrome webpack home p95 getState
Benchmark value 22 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 265 exceeds gate value 65 for chrome webpack home p95 setupStore
Benchmark value 30 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 27 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 4 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 10 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 217 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 25 exceeds gate value 24 for firefox browserify home p95 getState
Benchmark value 8 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 105 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 33 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 43 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 5 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 281 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 8 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 289ms | Sum of p95 exceeds: 749.8ms
Sum of all benchmark exceeds: 1038.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 43 Bytes (0%)
  • ui: 1.83 KiB (0.02%)
  • common: 10 Bytes (0%)

cursor[bot]

This comment was marked as outdated.

@metamaskbot
Copy link
Collaborator

📊 Page Load Benchmark Results

Current Commit: 547cd65 | Date: 9/10/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.27s (±14ms) 🟡 | historical mean value: 1.28s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 954ms (±12ms) 🟢 | historical mean value: 965ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 90ms (±12ms) 🟢 | historical mean value: 94ms ⬇️ (historical data)
📈 Detailed Results
Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.27s 14ms 1.25s 1.34s 1.30s 1.34s
domContentLoaded 954ms 12ms 936ms 1.01s 975ms 1.01s
firstPaint 90ms 12ms 76ms 160ms 116ms 160ms
firstContentfulPaint 90ms 12ms 76ms 160ms 116ms 160ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Results generated automatically by MetaMask CI

@metamaskbot
Copy link
Collaborator

Builds ready [547cd65]
UI Startup Metrics (1242 ± 69 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyHomeuiStartup1242111914616912781374
load107895913106711181195
domContentLoaded107095613056711111181
domInteractive18134871740
firstPaint64471123343910831169
backgroundConnect2512382777254264
firstReactRender23164552434
getState15596131629
initialActions41203511
loadScripts826717103264874935
setupStore952031116
WebpackHomeuiStartup20121404252927422012486
load16031124209421217401923
domContentLoaded15911117207921317301912
domInteractive1912103181580
firstPaint1636353074184309
backgroundConnect4219350613592
firstReactRender95374308485322
getState2752885714233
initialActions12228636717
loadScripts15871113206921217271910
setupStore2562945814247
FirefoxBrowserifyHomeuiStartup15551353207814716151878
load13391169172410514111515
domContentLoaded13391169172310514111515
domInteractive1153429054124252
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect4023178234199
firstReactRender30237883042
getState73537613
initialActions7120222317
loadScripts13081143169210113671475
setupStore15525429973
WebpackHomeuiStartup16031360204215417011863
load13751141172614014751632
domContentLoaded13751140172514014751632
domInteractive104343685798271
firstPaintNaNNaNNaNNaNNaNNaN
backgroundConnect31219093541
firstReactRender44315344751
getState6216269
initialActions511331539
loadScripts13521122167514014511604
setupStore96334913
Benchmark value 1242 exceeds gate value 1234 for chrome browserify home mean uiStartup
Benchmark value 1078 exceeds gate value 1070 for chrome browserify home mean load
Benchmark value 1071 exceeds gate value 1061 for chrome browserify home mean domContentLoaded
Benchmark value 252 exceeds gate value 10 for chrome browserify home mean backgroundConnect
Benchmark value 16 exceeds gate value 15 for chrome browserify home mean getState
Benchmark value 5 exceeds gate value 1 for chrome browserify home mean initialActions
Benchmark value 1374 exceeds gate value 1365 for chrome browserify home p95 uiStartup
Benchmark value 1195 exceeds gate value 1190 for chrome browserify home p95 load
Benchmark value 1182 exceeds gate value 1180 for chrome browserify home p95 domContentLoaded
Benchmark value 264 exceeds gate value 18 for chrome browserify home p95 backgroundConnect
Benchmark value 11 exceeds gate value 1.2 for chrome browserify home p95 initialActions
Benchmark value 43 exceeds gate value 40 for chrome webpack home mean backgroundConnect
Benchmark value 12 exceeds gate value 7 for chrome webpack home mean initialActions
Benchmark value 2486 exceeds gate value 2454 for chrome webpack home p95 uiStartup
Benchmark value 80 exceeds gate value 57 for chrome webpack home p95 domInteractive
Benchmark value 93 exceeds gate value 90 for chrome webpack home p95 backgroundConnect
Benchmark value 233 exceeds gate value 195 for chrome webpack home p95 getState
Benchmark value 17 exceeds gate value 7 for chrome webpack home p95 initialActions
Benchmark value 247 exceeds gate value 65 for chrome webpack home p95 setupStore
Benchmark value 1555 exceeds gate value 1405 for firefox browserify home mean uiStartup
Benchmark value 1340 exceeds gate value 1245 for firefox browserify home mean load
Benchmark value 1339 exceeds gate value 1239 for firefox browserify home mean domContentLoaded
Benchmark value 116 exceeds gate value 110 for firefox browserify home mean domInteractive
Benchmark value 41 exceeds gate value 25 for firefox browserify home mean backgroundConnect
Benchmark value 30 exceeds gate value 25 for firefox browserify home mean firstReactRender
Benchmark value 7 exceeds gate value 1 for firefox browserify home mean initialActions
Benchmark value 1309 exceeds gate value 1230 for firefox browserify home mean loadScripts
Benchmark value 15 exceeds gate value 9 for firefox browserify home mean setupStore
Benchmark value 1878 exceeds gate value 1660 for firefox browserify home p95 uiStartup
Benchmark value 1515 exceeds gate value 1495 for firefox browserify home p95 load
Benchmark value 1515 exceeds gate value 1495 for firefox browserify home p95 domContentLoaded
Benchmark value 252 exceeds gate value 195 for firefox browserify home p95 domInteractive
Benchmark value 99 exceeds gate value 70 for firefox browserify home p95 backgroundConnect
Benchmark value 17 exceeds gate value 2 for firefox browserify home p95 initialActions
Benchmark value 73 exceeds gate value 27 for firefox browserify home p95 setupStore
Benchmark value 105 exceeds gate value 100 for firefox webpack home mean domInteractive
Benchmark value 31 exceeds gate value 26 for firefox webpack home mean backgroundConnect
Benchmark value 44 exceeds gate value 38 for firefox webpack home mean firstReactRender
Benchmark value 5 exceeds gate value 1 for firefox webpack home mean initialActions
Benchmark value 271 exceeds gate value 156 for firefox webpack home p95 domInteractive
Benchmark value 51 exceeds gate value 50 for firefox webpack home p95 firstReactRender
Benchmark value 9 exceeds gate value 2 for firefox webpack home p95 initialActions
Sum of mean exceeds: 764ms | Sum of p95 exceeds: 1087.8ms
Sum of all benchmark exceeds: 1851.8ms

Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 41 Bytes (0%)
  • ui: 3.45 KiB (0.04%)
  • common: 12 Bytes (0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size-M team-product-safety Push issues to Product Safety team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants