Skip to content

Conversation

@gauthierpetetin
Copy link
Contributor

@gauthierpetetin gauthierpetetin commented Nov 13, 2025

Description

Open in GitHub Codespaces

Changelog

CHANGELOG entry: null

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

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.

Note

Adds the v13.9.0 changelog with major features and fixes, and updates release comparison links.

  • Docs:
    • Add 13.9.0 section to CHANGELOG.md summarizing key additions (network visibility feature flags, MONAD support with bridge/swap, Bitcoin updates incl. swaps and snap 1.4.4, UI/animation updates, claims pages, shield/subscription improvements) and fixes (token/NFT listing, shield calculations, ENS recipient, crashes, default bridge slippage, performance/polish).
    • Update links: [Unreleased] now compares from v13.9.0; add [13.9.0] compare link.

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

metamaskbot and others added 15 commits November 6, 2025 21:56
This PR updates the change log for 13.9.0. (Hotfix - no test plan
generated.)

Co-authored-by: metamaskbot <metamaskbot@users.noreply.github.com>
…er back option cp-13.9.0 (#37603)

- fix: stop reloading of animation & browser back option cp-13.9.0
(#37581)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

In this PR, we have added the logic to stop the animation once
completed. Also added a browser back logic for login options.

Jira Link: https://consensyssoftware.atlassian.net/browse/SL-278

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37581?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: stopped reloading of animation once completed

## **Related issues**

Fixes:

## **Manual testing steps**

1. Open Extension
2. validate animation reloading
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->




https://github.com/user-attachments/assets/7c01d5bc-2aeb-4591-84e6-c359e73a71c1




https://github.com/user-attachments/assets/1ccacae4-1aec-4fbd-b170-e879e54970b5





## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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.


<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Persist animation completion in shared context to prevent replay, and
use URL params for login option state to support browser back; update
navigation and tests accordingly.
> 
> - **Onboarding Animations**:
> - Extend `ui/contexts/rive-wasm` with `animationCompleted` map and
`setIsAnimationCompleted(...)` to persist completion state across views.
> - Update `metamask-wordmark-animation.tsx` to mark completion on
unmount and consume the new context API.
> - **Welcome Flow**:
> - `welcome.js`: derive `shouldSkipAnimation` from
`animationCompleted.MetamaskWordMarkAnimation` (replacing prior `from`
query logic) to avoid replaying the wordmark animation.
> - `welcome-login.tsx`: read/write `?login=<option>` to control
`LoginOptions` visibility/selection and navigate via
`ONBOARDING_WELCOME_ROUTE` to enable browser back restoring state.
> - **Account Exist**:
> - Simplify navigation back to `ONBOARDING_WELCOME_ROUTE` (remove
`?from=account-exist`).
> - **Tests**:
> - Adjust `account-exist.test.tsx` expectations to match new welcome
route navigation without query params.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
29c4558. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[4e1f85a](4e1f85a)

---------

Co-authored-by: Ganesh Suresh Patra <ganesh.patra@consensys.net>
Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
Co-authored-by: Gauthier Petetin <gauthierpetetin@hotmail.com>
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37621?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Updates CHANGELOG for 13.9.0, consolidating entries (removing
Uncategorized) and adding key Added/Fixed items and link refs.
> 
> - **CHANGELOG (13.9.0)**:
>   - **Added**:
>     - Feature flag to hide Monad in “Add Popular Network”.
>     - Bitcoin snap to `1.4.4`; enable Bitcoin swaps.
> - Claims list/view; network/account selector in claims form; handle
submit backend errors.
>     - Reset Wallet for social-login unrecoverable errors.
> - Revocation flow for advanced permissions; trust signals on spender
addresses.
> - Unlock flow animations; wallet ready page updates; Rive animation on
welcome.
>     - Burn/null recipient blocker; points estimate for swaps/bridges.
> - MONAD network (bridge & swap); DeFi positions fetch optimization.
> - UI improvements (file uploader, settings back button, rewards
balance, asset ordering, deep link handling).
> - Move "Discover" to global menu; upgrade permissions snaps to
`0.5.0`.
>   - **Fixed**:
> - Duplicate tokens in search; shield crypto approval calc and flicker;
fox icon styles; NFT lingering after transfer.
> - Bridge-enabled check before nav; padding in simulation details;
default receiving network order.
> - Ledger tutorial link; invalid SRP handling; intermittent
subscription visibility; default BTC pair.
> - Smart tx link; crash on wallet init; sanitize Unicode in signatures;
ENS recipient display; phishing page href.
> - Token name truncation; bip44 connection indicator; missing approval
changes in batch simulations; defer UI until swap SSE quotes load.
> - Bump `@metamask/message-signing-snap` to `1.1.4`; quicker QuickNode
failover; default bridge slippage to 2%.
>   - Structural:
>     - Remove `Uncategorized` section; fold items into Added/Fixed.
>     - Update version link references at footer.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
fdbf818. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
…try cp-13.9.0 (#37656)

- fix: removed unused error calls from sentry cp-13.9.0 (#37649)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

In this PR, Downgrades Rive file load errors to warnings and removes
redundant error logging in social backup restore, adding a new
@rive-app/canvas patch reference.

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37649?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Downgrades Rive file load errors to warnings, removes redundant error
logging in social backup restore, and adds a new @rive-app/canvas patch
reference.
> 
> - **Rive canvas patch
(`.yarn/patches/@rive-app-canvas-patch-03752f0c3b.patch`)**:
> - Convert `RiveFile` load errors from `throw`/`fireLoadError` to
`console.warn` and return early when missing `src`/`buffer` in
`rive.js`.
> - **Social backup restore logging**:
> - Remove redundant `log.error` in
`restoreSocialBackupAndGetSeedPhrase` catch blocks in
`app/scripts/metamask-controller.js` and `ui/store/actions.ts`.
> - **Dependencies/patch refs**:
> - Update `package.json` and `yarn.lock` to include the new
`@rive-app/canvas` patch chain.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
fb7ed7c. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[7686502](7686502)

Co-authored-by: Ganesh Suresh Patra <ganesh.patra@consensys.net>
… undefined (allIgnoredTokens) (#37671)

- fix: cp-13.9.0 cannot read properties of undefined (allIgnoredTokens)
(#37660)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**
Fix sentry error saying alIgnoredTokens is undefined. I could not repro
but believe this is the fix
<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37660?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: fix cannot read properties of undefined
(allIgnoredTokens)

## **Related issues**

Fixes: #37659

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Safely defaults `getAllIgnoredAssets` to return `EMPTY_OBJECT` when
`metamask.allIgnoredAssets` is undefined to prevent runtime errors.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
908794b. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[7b04707](7b04707)

Co-authored-by: Juanmi <95381763+juanmigdr@users.noreply.github.com>
…r firefox cp-13.9.0 (#37672)

- fix: fixed User Login Cancelled Error for firefox cp-13.9.0 (#37658)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37658?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes: #37645

## **Manual testing steps**

1. In firefox, start new onboarding with social login.
2. Before completing the social login, close the window.
3. User should not see Login Error modal

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **Pre-merge reviewer checklist**

- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Adds cross-browser detection for user-cancelled OAuth logins and
updates OAuth flow and onboarding UI to suppress errors when users close
the login window, including Firefox-specific message support.
> 
> - **Shared/Error Handling**:
> - Add `OAuthErrorMessages.USER_CANCELLED_LOGIN_ERROR_FIREFOX` and new
helper `isUserCancelledLoginError` to detect user-cancelled OAuth across
browsers.
> - **OAuth Service (`app/scripts/services/oauth/oauth-service.ts`)**:
> - Replace `#isUserCancelledLoginError` with
`#getUserCancelledLoginError` using `isUserCancelledLoginError` and
return the original error when present.
> - On missing `responseUrl`, check for user-cancelled error before
throwing `NO_REDIRECT_URL_FOUND_ERROR`.
> - **Onboarding UI (`ui/pages/onboarding-flow/welcome/welcome.js`)**:
> - Use `isUserCancelledLoginError` to ignore user-cancelled cases in
`handleSocialLoginError` and `handleLoginError`.
> - Remove unnecessary logging; keep existing error-to-UI mapping
unchanged otherwise.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
23ec974. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[ec63edb](ec63edb)

Co-authored-by: Lwin <147362763+lwin-kyaw@users.noreply.github.com>
Co-authored-by: Gauthier Petetin <gauthierpetetin@hotmail.com>
)

- chore: cp-13.9.0 bump bitcoin 1.4.5 (#37657)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Upgrading bitcoin to `1.4.5`

* https://github.com/MetaMask/snap-bitcoin-wallet/releases/tag/v1.4.5

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37657?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes: #37616

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Upgrade @metamask/bitcoin-wallet-snap from 1.4.4 to 1.4.5 and update
attribution and lockfile accordingly.
> 
> - **Dependencies**:
> - Upgrade `@metamask/bitcoin-wallet-snap` from `^1.4.4` to `^1.4.5` in
`package.json` and `yarn.lock`.
> - **Attributions**:
> - Update `attribution.txt` to reference
`@metamask/bitcoin-wallet-snap` `1.4.5`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
94aa0d5. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[031dda4](031dda4)

---------

Co-authored-by: Alejandro Garcia Anglada <aganglada@gmail.com>
Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
Co-authored-by: Gauthier Petetin <gauthierpetetin@hotmail.com>
…ainnet failing cp-13.9.0 (#37678)

- fix: advanced permissions requests for mainnet failing cp-13.9.0
(#37675)

## **Description**

Upgrades @metamask/gator-permissions-snap from `^0.6.0` to `^0.6.1`
- Corrects Accounts API URL, which caused permission requests on Mainnet
to fail

https://github.com/MetaMask/snap-7715-permissions/releases/tag/v10.0.0

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37675?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: Fixed a bug causing advanced permissions requests on
mainnet to fail before showing the permission picker

## **Related issues**

Fixes:
https://github.com/metamask/delegator-readable-permissions/issues/471

## **Manual testing steps**

1. Open Gator Permissions test page
2. Select Mainnet 
3. Request Permission

Expect permission picker to appear

## **Screenshots/Recordings**

<img width="512" height="732" alt="image"

src="https://github.com/user-attachments/assets/24973492-10d6-4de8-b504-18815ebf311f"
/>

## **Pre-merge author checklist**

- [x] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Bumps `@metamask/gator-permissions-snap` from `^0.6.0` to `^0.6.1`,
updating lockfile and attributions.
> 
> - **Dependencies**:
> - Upgrade `@metamask/gator-permissions-snap` from `^0.6.0` to `^0.6.1`
in `package.json`.
> - Update `yarn.lock` to resolve
`@metamask/gator-permissions-snap@0.6.1`.
> - **Meta**:
> - Update `attribution.txt` entry for
`@metamask/gator-permissions-snap` to `0.6.1`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
afe2bf6. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[fa745da](fa745da)

---------

Co-authored-by: jeffsmale90 <6363749+jeffsmale90@users.noreply.github.com>
Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
- fix: cp-13.9.0 bump bitcoin (#37756)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Updates bitcoin to `1.5.0`, which places accounts info under encrypted
state

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37756?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Upgrade @metamask/bitcoin-wallet-snap from 1.4.5 to 1.5.0 with
corresponding yarn.lock and attribution updates.
> 
> - **Dependencies**:
> - Upgrade `@metamask/bitcoin-wallet-snap` to `^1.5.0` in
`package.json`.
> - Update `yarn.lock` to resolve `@metamask/bitcoin-wallet-snap@1.5.0`.
>   - Refresh `attribution.txt` to reflect version `1.5.0`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
8c006ec. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[de21015](de21015)

---------

Co-authored-by: Alejandro Garcia Anglada <aganglada@gmail.com>
Co-authored-by: MetaMask Bot <metamaskbot@users.noreply.github.com>
…in individual asset activity (#37773)

- fix: cp-13.9.0 BTC redeposits not shown in individual asset activity
(#37732)

<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**
BTC redeposits not shown in individual asset activity section

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37732?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: fix BTC redeposits not shown in individual asset
activity

## **Related issues**

Fixes:
https://consensys.slack.com/archives/C09KHA0P1B7/p1762876275492479 &
https://consensyssoftware.atlassian.net/browse/ASSETS-1765

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<img width="796" height="1182" alt="image"

src="https://github.com/user-attachments/assets/30905fe2-fa76-43bd-bcfc-a94ac9b2e6dd"
/>

<!-- [screenshots/recordings] -->

### **After**

<img width="669" height="1042" alt="image"

src="https://github.com/user-attachments/assets/abc0e25b-e285-49aa-aab6-25d6725c1994"
/>

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Ensures Bitcoin redeposit transactions appear in individual asset
activity by adjusting non‑EVM token filtering.
> 
> - **Non‑EVM activity filtering**
(`ui/components/app/transaction-list/unified-transaction-list.component.js`):
> - Update `filterNonEvmTxByToken` to detect Bitcoin networks
(`tokenAddress` starts with `bip122`).
> - Include redeposit transactions (empty `to` array and
`KeyringTransactionType.Send`) when filtering by token, bypassing strict
asset match.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
c2c7d86. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[da713dc](da713dc)

Co-authored-by: Juanmi <95381763+juanmigdr@users.noreply.github.com>
…p-13.9.0 (#37785)

- fix: force account alignment on unlock cp-13.9.0 (#37762)

## **Description**

Force account alignment on unlock to cover new account providers being
added.

> [!NOTE]
> Normally, we should run discovery + alignment asynchronously for a
better UX, but this involves a lot more work. For now, this will cover
new account providers being added to the extension.

[![Open in GitHub

Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37762?quickstart=1)

## **Changelog**

CHANGELOG entry: Automatically create new account types on wallet unlock

## **Related issues**

N/A

## **Manual testing steps**

- Go to branch `v13.7.0`
  * Build the extension with: `yarn build --build-type main dist`
- Go to this branch
  * Build the extension with: `yarn build --build-type main dist`
- Make a folder `_local` and `cd` into it
- Run `cp ../builds/metamask-chrome-13.7.0.zip . && unzip *.zip`
- Load and start the extension
- Create a new SRP
- Import another SRP
- Create some accounts on both SRP
- Stop the extension
- Run `cp ../builds/metamask-chrome-13.10.0.zip . && unzip *.zip` (build
for this branch)
- Reload the extension
- You should see some `Running ... migration` message
- Check all your multichain accounts, you should now see Bitcoin
accounts for all of them.

## **Screenshots/Recordings**

### **Before**

### **After**



https://github.com/user-attachments/assets/29ab83b2-520a-4331-8e8f-0f5b92490b69



https://github.com/user-attachments/assets/788b3518-9826-45a8-a3d5-62cd239e733f

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding

Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling

guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> On unlock, asynchronously align multichain wallets when state 2 is
enabled; add remote feature-flag access to skip snap account renaming
under state 2 and update tests/messenger types.
> 
> - **Controller (`app/scripts/metamask-controller.js`)**
> - On unlock, when multichain accounts feature state 2 is enabled,
asynchronously call `multichainAccountService.alignWallets()`.
> - **Snap Keyring (`app/scripts/lib/snap-keyring`)**
> - Add feature-flag check (`RemoteFeatureFlagController:getState`) to
detect multichain accounts state 2.
> - When state 2 is enabled, skip `AccountsController:setAccountName`
during account creation to avoid races; retain legacy path otherwise.
> - **Messaging/Types**
> - Allow `RemoteFeatureFlagController:getState` in `SnapKeyringBuilder`
messenger and include corresponding action in types.
> - **Tests**
> - Update `snap-keyring.test.ts` to mock
`RemoteFeatureFlagController:getState` and reflect new behavior.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
b6342a9. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->


[ce622e6](ce622e6)

Co-authored-by: Charly Chevalier <charly.chevalier@consensys.net>
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->

## **Description**

Update 13.9.0 changelog based on new cherry-picks

<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->

[![Open in GitHub
Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/37793?quickstart=1)

## **Changelog**

<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`

If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`

(This helps the Release Engineer do their job more quickly and
accurately)
-->

CHANGELOG entry: null

## **Related issues**

Fixes:

## **Manual testing steps**

1. Go to this page...
2.
3.

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [ ] I've followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask
Extension Coding
Standards](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [ ] I've completed the PR template to the best of my ability
- [ ] I’ve included tests if applicable
- [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [ ] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-extension/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.

## **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.
@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 metamaskbot added the team-extension-platform Extension Platform team label Nov 13, 2025
@gauthierpetetin gauthierpetetin merged commit b8e3fb9 into main Nov 13, 2025
64 checks passed
@gauthierpetetin gauthierpetetin deleted the stable-sync branch November 13, 2025 21:00
@github-actions github-actions bot locked and limited conversation to collaborators Nov 13, 2025
@metamaskbot metamaskbot added the release-13.10.0 Issue or pull request that will be included in release 13.10.0 label Nov 13, 2025
@metamaskbot
Copy link
Collaborator

Builds ready [5158841]
UI Startup Metrics (1225 ± 89 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1225109615178912731420
load106695113418011101239
domContentLoaded106094813348011041232
domInteractive221482152067
firstPaint72992127541010691212
backgroundConnect2392232637244249
firstReactRender2817120122845
getState2185892539
initialActions107112
loadScripts827726110278879984
setupStore1062731214
numNetworkReqs1367219670
BrowserifyPower User HomeuiStartup21761915293230223652932
load1179982183225514261832
domContentLoaded1158967181325314151813
domInteractive651918962136189
firstPaint751233183650110441836
backgroundConnect25424028612261286
firstReactRender79501251888125
getState24417440057255400
initialActions102112
loadScripts925732155224511831552
setupStore27185293152
numNetworkReqs1249419836162198
WebpackStandard HomeuiStartup82870012241118191159
load61656098098604929
domContentLoaded60955396394600912
domInteractive171265121450
firstPaint21859955215200727
backgroundConnect251274143058
firstReactRender29186293447
getState1162131317
initialActions102111
loadScripts60655095291597901
setupStore1144351317
numNetworkReqs1467920873
WebpackPower User HomeuiStartup1125908174426114801744
load70656910861859101086
domContentLoaded69555910671808881067
domInteractive47141866072186
firstPaint3737810723525801072
backgroundConnect47111944679194
firstReactRender39364314043
getState1409815922154159
initialActions101111
loadScripts69055710561768761056
setupStore1164291042
numNetworkReqs816513723109137
FirefoxBrowserifyStandard HomeuiStartup14191246176110514461690
load1208108214517912551406
domContentLoaded1208108214517912541406
domInteractive993533845104205
firstPaint------
backgroundConnect4024123154869
firstReactRender25205562543
getState1072331116
initialActions113122
loadScripts1185106714317812301378
setupStore1276591130
numNetworkReqs1267415757
BrowserifyPower User HomeuiStartup34642629448456942024484
load15761337211928919902119
domContentLoaded15761336211928919892119
domInteractive22676676184476676
firstPaint------
backgroundConnect739145146441510941464
firstReactRender856011917102119
getState1558422839182228
initialActions329239
loadScripts15231303206329319612063
setupStore952819749152197
numNetworkReqs1237723057214230
WebpackStandard HomeuiStartup16301434201515216691996
load13821217171811714231658
domContentLoaded13811216171711714231658
domInteractive56301562668117
firstPaint------
backgroundConnect51232182957114
firstReactRender332481123573
getState147172181226
initialActions206123
loadScripts13501197163710513911597
setupStore197218261476
numNetworkReqs1367018866
WebpackPower User HomeuiStartup31542623432250835114322
load17001493203919519742039
domContentLoaded17001493203919519742039
domInteractive24194575168473575
firstPaint------
backgroundConnect3756810022816521002
firstReactRender844811818101118
getState19512850085201500
initialActions223033
loadScripts16551460199119419441991
setupStore13242541114172541
numNetworkReqs1267623957184239
📊 Page Load Benchmark Results

Current Commit: 5158841 | Date: 11/13/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±39ms) 🟡 | historical mean value: 1.04s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 733ms (±37ms) 🟢 | historical mean value: 725ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±13ms) 🟢 | historical mean value: 80ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 39ms 1.02s 1.33s 1.10s 1.33s
domContentLoaded 733ms 37ms 706ms 993ms 783ms 993ms
firstPaint 79ms 13ms 64ms 192ms 88ms 192ms
firstContentfulPaint 79ms 13ms 64ms 192ms 88ms 192ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 0 Bytes (0%)
  • common: 20 Bytes (0%)

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

Labels

extension-delivery release-13.10.0 Issue or pull request that will be included in release 13.10.0 size-S team-extension-platform Extension Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants