Skip to content

Conversation

@gambinish
Copy link
Contributor

@gambinish gambinish commented Jan 12, 2026

Description

Context
This PR introduces the initial UI components for the Perps (perpetuals trading) tab in the MetaMask extension. The Perps feature will allow users to view their perpetual trading positions and orders directly within the wallet.

Problem
As we migrate the Perps trading feature to the extension, we need to establish the UI foundation before integrating with live data. This ensures the design can be reviewed and signed off while backend work continues in parallel.

Solution
This PR implements the Perps tab UI with static mock data. The components are built following MetaMask design system patterns and are ready for live data integration in a future PR.

Open in GitHub Codespaces

Changelog

CHANGELOG entry: Initialize static perps tab UI

Related issues

Fixes:

Manual testing steps

Perps tab should not be visible if perpsEnabledVersion ff is false.

Screenshots/Recordings

Screen.Recording.2026-01-12.at.1.44.29.PM.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

Introduces the initial Perps trading UI with static data and hooks it into the account overview.

  • New Perps components: PerpsTabView, PerpsTabControlBar, PositionCard, OrderCard, PerpsTokenLogo, PerpsEmptyState, StartTradeCta, shared utils, constants, and typed models in types
  • Mock data for account, positions, orders, and markets in mocks.ts (no backend wiring yet)
  • Integrates into account-overview-tabs.tsx to render PerpsTabView when feature flag is enabled
  • Adds i18n strings for perps labels and UI copy in app/_locales/en*/messages.json
  • Comprehensive tests for new components and utilities

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

@github-actions
Copy link
Contributor

github-actions bot commented Jan 12, 2026

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-perps Perps team label Jan 12, 2026
@gambinish gambinish changed the title Perps/mocks feat: Spike - migrate perps tab from mobile Jan 12, 2026
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 12, 2026

✨ Files requiring CODEOWNER review ✨

🔑 @MetaMask/accounts-engineers (1 files, +2 -1)
  • 📁 ui/
    • 📁 components/
      • 📁 multichain/
        • 📁 account-overview/
          • 📄 account-overview-tabs.tsx +2 -1

👨‍🔧 @MetaMask/core-extension-ux (1 files, +2 -1)
  • 📁 ui/
    • 📁 components/
      • 📁 multichain/
        • 📁 account-overview/
          • 📄 account-overview-tabs.tsx +2 -1

👨‍🔧 @MetaMask/perps (26 files, +2517 -1)
  • 📁 ui/
    • 📁 components/
      • 📁 app/
        • 📁 perps/
          • 📁 order-card/
            • 📄 index.ts +2 -0
            • 📄 order-card.test.tsx +134 -0
            • 📄 order-card.tsx +96 -0
          • 📁 perps-empty-state/
            • 📄 index.ts +2 -0
            • 📄 perps-empty-state.test.tsx +73 -0
            • 📄 perps-empty-state.tsx +61 -0
          • 📁 perps-tab-control-bar/
            • 📄 index.ts +2 -0
            • 📄 perps-tab-control-bar.test.tsx +116 -0
            • 📄 perps-tab-control-bar.tsx +129 -0
          • 📁 perps-token-logo/
            • 📄 index.ts +2 -0
            • 📄 perps-token-logo.test.tsx +99 -0
            • 📄 perps-token-logo.tsx +45 -0
          • 📁 position-card/
            • 📄 index.ts +2 -0
            • 📄 position-card.test.tsx +154 -0
            • 📄 position-card.tsx +96 -0
          • 📁 start-trade-cta/
            • 📄 index.ts +2 -0
            • 📄 start-trade-cta.test.tsx +71 -0
            • 📄 start-trade-cta.tsx +71 -0
            • 📄 constants.ts +13 -0
            • 📄 index.ts +23 -1
            • 📄 mocks.ts +668 -0
            • 📄 perps-tab-view.test.tsx +132 -0
            • 📄 perps-tab-view.tsx +126 -0
            • 📄 types.ts +136 -0
            • 📄 utils.test.ts +123 -0
            • 📄 utils.ts +139 -0

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 12, 2026

Builds ready [6c4b806]
UI Startup Metrics (1262 ± 86 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1262102314488613191380
load104986112208111081160
domContentLoaded104285512138010981145
domInteractive2616101212287
firstPaint1486732860186270
backgroundConnect21620026613223243
firstReactRender15103651729
getState3519117133957
initialActions103112
loadScripts834657101080887937
setupStore1172231317
numNetworkReqs171182171164
BrowserifyPower User HomeuiStartup18911646256619619602378
load1027893137311110631287
domContentLoaded1015886136711210541283
domInteractive36182183032104
firstPaint208731343219220433
backgroundConnect263201649112241618
firstReactRender23164962437
getState16813926122182209
initialActions1013112
loadScripts80467811601108281072
setupStore1765871837
numNetworkReqs57381462262118
WebpackStandard HomeuiStartup76260198889823925
load61353381771675740
domContentLoaded60852981070670734
domInteractive231497181977
firstPaint985328045131194
backgroundConnect3651303960119
firstReactRender15103951528
getState261397153350
initialActions108114
loadScripts60552780870666730
setupStore1066271021
numNetworkReqs181178181473
WebpackPower User HomeuiStartup13321023196823814191928
load70060095487719919
domContentLoaded69059694887706909
domInteractive36191682933116
firstPaint1416546974190283
backgroundConnect85863716521538
firstReactRender23183532529
getState15413521014161179
initialActions102011
loadScripts68759393986704901
setupStore1796691840
numNetworkReqs1003922846137208
FirefoxBrowserifyStandard HomeuiStartup13691075186818014701655
load1085914132210411581269
domContentLoaded1085909132110411581269
domInteractive63262353885135
firstPaint------
backgroundConnect56201944470155
firstReactRender179461451319
getState146124181136
initialActions103122
loadScripts104890112448711151225
setupStore12470101136
numNetworkReqs20984201376
BrowserifyPower User HomeuiStartup25761980888885625214217
load13031022638562212262563
domContentLoaded13031022638562212262563
domInteractive125331006128115377
firstPaint------
backgroundConnect138271137202110619
firstReactRender23166382531
getState28072903235397826
initialActions218123
loadScripts1235997627855811991815
setupStore1466708184141618
numNetworkReqs59292124273179
WebpackStandard HomeuiStartup17451390306124918952171
load14431176268520415131743
domContentLoaded14431176268520415121743
domInteractive883151162120169
firstPaint------
backgroundConnect72192725681194
firstReactRender18127781928
getState179109141652
initialActions203122
loadScripts13991161265119114511674
setupStore225251341779
numNetworkReqs19976181573
WebpackPower User HomeuiStartup28962177512282328444794
load16221166326857716692963
domContentLoaded16211165326857716692963
domInteractive139311090178105530
firstPaint------
backgroundConnect1702314692661531145
firstReactRender2616125152838
getState32277921244483838
initialActions214122
loadScripts15231145308947916222893
setupStore1046124317986547
numNetworkReqs59291994349187
📊 Page Load Benchmark Results

Current Commit: 6c4b806 | Date: 1/12/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±62ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 740ms (±60ms) 🟢 | historical mean value: 729ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±12ms) 🟢 | historical mean value: 77ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 62ms 1.01s 1.33s 1.27s 1.33s
domContentLoaded 740ms 60ms 700ms 1.01s 947ms 1.01s
firstPaint 79ms 12ms 56ms 188ms 88ms 188ms
firstContentfulPaint 79ms 12ms 56ms 188ms 88ms 188ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms

Base automatically changed from perps/feature-flag to main January 13, 2026 19:46
@gambinish gambinish changed the title feat: Spike - migrate perps tab from mobile feat: Perps Detail View - static Jan 13, 2026
@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 14, 2026

Builds ready [5737a56]
UI Startup Metrics (1280 ± 104 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--12801047167610413441404
load--107586213909311421190
domContentLoaded--106985513859311321184
domInteractive--261599202381
firstPaint--153631102115190308
backgroundConnect--21719625310222237
firstReactRender--15103451731
getState--361983134064
initialActions--103112
loadScripts--859663116892924976
setupStore--1273341421
numNetworkReqs--171178171168
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--18711625265817619532322
load--1008891138510610371261
domContentLoaded--996887137810710271254
domInteractive--34171172434107
firstPaint--1576635369209306
backgroundConnect--279198730133242616
firstReactRender--22164442330
getState--17513826527188240
initialActions--104112
loadScripts--78567511441047981037
setupStore--18104871838
numNetworkReqs--59371902759129
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--777644101973829913
load--62256380463651769
domContentLoaded--61755779963648761
domInteractive--2514141222182
firstPaint--1195763782158266
backgroundConnect--3861313872107
firstReactRender--15112831621
getState--3012171233862
initialActions--102111
loadScripts--61455579262646752
setupStore--1062331217
numNetworkReqs--181181181170
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1323969205128415261902
load--65556797287663872
domContentLoaded--64656196787653865
domInteractive--34171582931113
firstPaint--1405858084188283
backgroundConnect--73762016318564
firstReactRender--22174242429
getState--1645220718172194
initialActions--102011
loadScripts--64355996085651857
setupStore--1585081537
numNetworkReqs--983624050135214
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13671074234920415081702
load--1081906200414011521266
domContentLoaded--1080902200414011521266
domInteractive--69322174392154
firstPaint--------
backgroundConnect--55191994168144
firstReactRender--13104851423
getState--166241271141
initialActions--102012
loadScripts--1049891192312511191213
setupStore--13489131241
numNetworkReqs--19983191376
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--24511787542761024674000
load--12021007259327411851742
domContentLoaded--12011007259227411851742
domInteractive--12340990122114389
firstPaint--------
backgroundConnect--10624879111111258
firstReactRender--21145262327
getState--28636863233396829
initialActions--207123
loadScripts--1157968248324011221653
setupStore--1527751197154652
numNetworkReqs--59292234470195
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--16341384205916417431992
load--13441187160010014051553
domContentLoaded--13431186160010014041553
domInteractive--903216037122146
firstPaint--------
backgroundConnect--63182634385144
firstReactRender--16125651723
getState--199240261548
initialActions--103122
loadScripts--1305116515278713651467
setupStore--2352093915147
numNetworkReqs--20985211482
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29122021668690928325006
load--16451176543065317602883
domContentLoaded--16451176542965317602882
domInteractive--141291164192120556
firstPaint--------
backgroundConnect--1822013213031391171
firstReactRender--2516238242632
getState--353701845323612883
initialActions--218123
loadScripts--15231155541253916122568
setupStore--99977014090383
numNetworkReqs--58281994170166
19--------
📊 Page Load Benchmark Results

Current Commit: 5737a56 | Date: 1/14/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±44ms) 🟡 | historical mean value: 1.02s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 732ms (±41ms) 🟢 | historical mean value: 708ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 78ms (±13ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 44ms 1.02s 1.35s 1.08s 1.35s
domContentLoaded 732ms 41ms 709ms 1.01s 759ms 1.01s
firstPaint 78ms 13ms 60ms 192ms 88ms 192ms
firstContentfulPaint 78ms 13ms 60ms 192ms 88ms 192ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 357 Bytes (0.01%)
  • ui: 33.06 KiB (0.42%)
  • common: 269 Bytes (0%)

geositta
geositta previously approved these changes Jan 15, 2026
Copy link
Contributor

@geositta geositta left a comment

Choose a reason for hiding this comment

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

Looks good. I added a few comments for us to consider in future PRs. Thanks for adding the Tailwind utility classes. I think that will be better quality of life instead of defining SCSS basic classes.

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 15, 2026

Builds ready [1d41b05]
UI Startup Metrics (1311 ± 111 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13111059161911113801488
load--1094891141010011561254
domContentLoaded--1087885139810011491246
domInteractive--2715109192381
firstPaint--175641117171188330
backgroundConnect--22119927814229248
firstReactRender--16103551726
getState--4013100164572
initialActions--104113
loadScripts--87568311901009411035
setupStore--1382941523
numNetworkReqs--171178161167
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--------
load--------
domContentLoaded--------
domInteractive--------
firstPaint--------
backgroundConnect--------
firstReactRender--------
getState--------
initialActions--------
loadScripts--------
setupStore--------
numNetworkReqs--------
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--790640102780825954
load--63156889465646764
domContentLoaded--62656488765639756
domInteractive--241591202084
firstPaint--1135644357153196
backgroundConnect--3351483649113
firstReactRender--15113441722
getState--3115158213958
initialActions--105113
loadScripts--62356287763637748
setupStore--1155971119
numNetworkReqs--181180171170
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--1358968202526815421932
load--692607105887702914
domContentLoaded--682602105287688900
domInteractive--36191662933127
firstPaint--13564909100155276
backgroundConnect--81762916222548
firstReactRender--23183432529
getState--16013773060159199
initialActions--107111
loadScripts--679599104386685892
setupStore--18104991939
numNetworkReqs--1013732149134203
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13641052245520414391764
load--1084909209414911361274
domContentLoaded--1084909209414911361274
domInteractive--66321503692138
firstPaint--------
backgroundConnect--56202535060175
firstReactRender--13104651322
getState--126107111027
initialActions--103122
loadScripts--1054897206114210911193
setupStore--155131191057
numNetworkReqs--20983201379
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--26151912516369725734511
load--1283958302538112272495
domContentLoaded--1282958302538112272495
domInteractive--1193549895110389
firstPaint--------
backgroundConnect--138261226220109453
firstReactRender--2514112122634
getState--288711028234375766
initialActions--2030324
loadScripts--1217937282329711811787
setupStore--1509838202139683
numNetworkReqs--58281533681137
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--15901303228622216502112
load--13281147177012014011550
domContentLoaded--13271147177012114011550
domInteractive--852922942124143
firstPaint--------
backgroundConnect--60162464962176
firstReactRender--15112941725
getState--207191281674
initialActions--112022
loadScripts--12911134173410713441466
setupStore--2573925116134
numNetworkReqs--19987201478
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--28482048504371828484580
load--16001198324051115932914
domContentLoaded--16001197324051115922913
domInteractive--10932608105109432
firstPaint--------
backgroundConnect--162321296237143982
firstReactRender--251699122740
getState--30871981263478862
initialActions--217123
loadScripts--15121179305540415732503
setupStore--111875514897538
numNetworkReqs--58292044079150
19--------
📊 Page Load Benchmark Results

Current Commit: 1d41b05 | Date: 1/15/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.06s (±65ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 740ms (±62ms) 🟢 | historical mean value: 718ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±15ms) 🟢 | historical mean value: 76ms ⬆️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.06s 65ms 1.02s 1.34s 1.28s 1.34s
domContentLoaded 740ms 62ms 706ms 1.02s 954ms 1.02s
firstPaint 79ms 15ms 60ms 212ms 88ms 212ms
firstContentfulPaint 79ms 15ms 60ms 212ms 88ms 212ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.69 KiB (0.13%)
  • ui: 33.62 KiB (0.43%)
  • common: 353 Bytes (0%)

@metamaskbotv2
Copy link
Contributor

metamaskbotv2 bot commented Jan 15, 2026

Builds ready [488d672]
UI Startup Metrics (1346 ± 112 ms)
PlatformBuildTypePageMetricTest Title (ms)Persona (ms)Mean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--13461096167211214101486
load--1112883133410111821248
domContentLoaded--110287713259911751238
domInteractive--3017118222493
firstPaint--2446912462692001130
backgroundConnect--21119228714214243
firstReactRender--17104171935
getState--4018132164464
initialActions--106113
loadScripts--90267611401009741040
setupStore--1464161527
numNetworkReqs--181181181170
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--19261598268722520142419
load--1029896141812510491372
domContentLoaded--1017891140912710361366
domInteractive--33171152232103
firstPaint--1686943279219377
backgroundConnect--285205741147237690
firstReactRender--22165052332
getState--17613529228192229
initialActions--103112
loadScripts--80668411991248251131
setupStore--18114781838
numNetworkReqs--57351522358122
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--788650108482848931
load--63457082865663781
domContentLoaded--62856682164659777
domInteractive--251494192179
firstPaint--1115930150156212
backgroundConnect--315125315295
firstReactRender--15102941724
getState--3215135194060
initialActions--104111
loadScripts--62556481263656775
setupStore--1264781231
numNetworkReqs--181184181169
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--15281169236127116542170
load--7656581122987781042
domContentLoaded--7556501114997611032
domInteractive--45221813640156
firstPaint--1927648593254382
backgroundConnect--1188729202110617
firstReactRender--28204863139
getState--223177938122208253
initialActions--103012
loadScripts--7516471103977581023
setupStore--17116491729
numNetworkReqs--58361512756137
19--------
FirefoxBrowserifyStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--14421126201317915501732
load--1144956145511612231379
domContentLoaded--1143955145511612231378
domInteractive--75332374197145
firstPaint--------
backgroundConnect--67233785891174
firstReactRender--15105681435
getState--146101121329
initialActions--103122
loadScripts--110194013669311681263
setupStore--154277281244
numNetworkReqs--19986191476
19--------
BrowserifyPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--25551821522568925534702
load--12621009309240311682623
domContentLoaded--12621009309240311682623
domInteractive--1193446592119380
firstPaint--------
backgroundConnect--132281136165125375
firstReactRender--23156792433
getState--31870960257531827
initialActions--203123
loadScripts--1220975289537311332533
setupStore--1467772193146681
numNetworkReqs--59292195147207
19--------
WebpackStandard Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--17211369233921618252164
load--14301155199614115361676
domContentLoaded--14301153199614115351676
domInteractive--893341159119234
firstPaint--------
backgroundConnect--67242705170189
firstReactRender--17126971828
getState--2983004820111
initialActions--103123
loadScripts--13861135185712414681636
setupStore--204158271689
numNetworkReqs--19986191473
19--------
WebpackPower User Home0--------
1--------
2--------
3--------
4--------
5--------
6--------
7--------
8--------
9--------
10--------
11--------
12--------
13--------
14--------
15--------
16--------
17--------
18--------
uiStartup--29291938512786036034775
load--15611115304351516532872
domContentLoaded--15611115304251516522872
domInteractive--11830980129110443
firstPaint--------
backgroundConnect--1781811612641651084
firstReactRender--2815255272743
getState--314731840294495841
initialActions--205123
loadScripts--14751099300141716022759
setupStore--1337749176126596
numNetworkReqs--59292044087156
19--------
📊 Page Load Benchmark Results

Current Commit: 488d672 | Date: 1/15/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 985ms (±41ms) 🟢 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 682ms (±39ms) 🟢 | historical mean value: 718ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 75ms (±9ms) 🟢 | historical mean value: 76ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 985ms 41ms 954ms 1.29s 1.01s 1.29s
domContentLoaded 682ms 39ms 654ms 967ms 709ms 967ms
firstPaint 75ms 9ms 64ms 152ms 84ms 152ms
firstContentfulPaint 75ms 9ms 64ms 152ms 84ms 152ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 6.69 KiB (0.13%)
  • ui: 33.57 KiB (0.43%)
  • common: 353 Bytes (0%)

Copy link
Contributor

@geositta geositta left a comment

Choose a reason for hiding this comment

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

Thanks for taking the extra time with those formatters, looks good to me.

@gambinish gambinish enabled auto-merge January 15, 2026 02:10
Copy link
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

@gambinish gambinish added this pull request to the merge queue Jan 15, 2026
@github-project-automation github-project-automation bot moved this from Needs dev review to Review finalised - Ready to be merged in PR review queue Jan 15, 2026
Merged via the queue into main with commit 80eaa5f Jan 15, 2026
180 of 181 checks passed
@github-project-automation github-project-automation bot moved this from Review finalised - Ready to be merged to Merged, Closed or Archived in PR review queue Jan 15, 2026
@gambinish gambinish deleted the perps/mocks branch January 15, 2026 12:16
@github-actions github-actions bot locked and limited conversation to collaborators Jan 15, 2026
@metamaskbot metamaskbot added the release-13.15.0 Issue or pull request that will be included in release 13.15.0 label Jan 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.15.0 Issue or pull request that will be included in release 13.15.0 size-XL team-perps Perps team

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

7 participants