metamask-extension icon indicating copy to clipboard operation
metamask-extension copied to clipboard

[Bug]: Basic Functionality - When disabled, I can still start a Send and select Non-EVM networks, leading to being blocked in the Recipient screen with an error

Open seaona opened this issue 1 month ago • 6 comments

Describe the bug

When Basic Functionality disabled, I can still start a Send and select Non-EVM networks, leading to being blocked in the Recipient screen

Expected behavior

We shouldn't see nonEVM networks in the assets list, if we have Basic Functionality off. We already see the Send button disabled, if I have any of the non-EVM netowrk selected (Expected)

[HB] Send asset list and network filter excludes non-EVM networks when Basic Functionality is disabled.

Screenshots/Recordings

https://github.com/user-attachments/assets/b095a976-1432-469a-aa17-fc3426383055

Steps to reproduce

  1. Go toSettings
  2. Disable Basic Functionality
  3. Select All networks
  4. Click Send
  5. Click Asset --> see you can select non-EVM assets
  6. Select one
  7. Add amount
  8. See 'invalid value' error and not able to proceed

Error messages or log output


Detection stage

In production (default)

Version

13.9.0

Build type

None

Browser

Chrome

Operating system

MacOS

Hardware wallet

No response

Additional context

No response

Severity

No response

seaona avatar Nov 21 '25 10:11 seaona

Moving it to @MetaMask/core-extension-ux as it relates to settings. Maybe we need to make a bigger decision here of how we want this to be working cc/ @hesterbruikman

aganglada avatar Nov 21 '25 11:11 aganglada

I've updated the ticket and assigned it to team-confirmations (cc @bschorchit ). Expected behavior is for send asset list and network filter to exclude non-EVM networks when Basic Functionality is disabled.

I agree @aganglada this does feel off that this makes non-EVM feel like it's not Basic functionality. We could consider a separate toggle in Settings. I'd propose to only do this as part of Settings redesign though. This organises settings and makes it easier to find and combine these privacy settings.

hesterbruikman avatar Dec 04 '25 13:12 hesterbruikman

@aganglada can you clarify what external call happens for non-EVM Send transactions? Is there anything called beyond the RPC that might also be used for balance and asset display.

hesterbruikman avatar Dec 04 '25 14:12 hesterbruikman

Why can't users send BTC or Solana when basic functionality is off?

bschorchit avatar Dec 04 '25 14:12 bschorchit

It's a know issue, snaps can't run while basic functionality is off, we will need to show something to the user to indicate this is not possible at the moment.

aganglada avatar Dec 09 '25 09:12 aganglada

If this is the limitation I believe there is no easy way to tackle with it on send flow right now.

Would it make sense if we just filter out nonEVM tokens in send flow if basic functionality is off? @bschorchit @hesterbruikman

OGPoyraz avatar Dec 09 '25 10:12 OGPoyraz

Hello @hesterbruikman 👋 I am implementing excluding non evm assets + non evm networks from the networks popover when BFT is off.

This is current behavior https://github.com/user-attachments/assets/be18a97b-0fa2-49fc-a5fb-35047d6e0c41

Would like to confirm the scenario where user is already on a non-evm chain and turns the BFT off; Since i am filtering out non evm assets and chains

This is how its looking like (assets and networks are filtered out but Solana stays selected) This seems off right? Do we wish, if user is already on a non evm network, to not filter out assets for that specific network and not filter out the network from the list? But once he switches to a EVM chain or clicks on "all popular networks", we exclude it from list of networks assets?

https://github.com/user-attachments/assets/192cf92d-93bd-46d0-862c-2f00f276e8e2

sahar-fehri avatar Dec 16 '25 18:12 sahar-fehri

Do we wish, if user is already on a non evm network, to not filter out assets for that specific network and not filter out the network from the list?

Yes, great thinking @sahar-fehri . I'd expect that if I already have a balance and assets in views those would not disappear. But I wouldn't be able to update and I wouldn't be able to take next actions on those assets.

GIVEN Non-EVM (Snap) chain selected WHEN BFT is disabled THEN Assets for non-EVM (Snap) chain remain visible (they won't update) AND Assets for Non-EVM (Snap) chain are not listed in Swap/Send

Let me know if you see issues with this approach!

hesterbruikman avatar Dec 17 '25 15:12 hesterbruikman

Thank you @hesterbruikman !

GIVEN Non-EVM (Snap) chain selected WHEN BFT is disabled THEN Assets for non-EVM (Snap) chain remain visible (they won't update) AND Assets for Non-EVM (Snap) chain are not listed in Swap/Send

I think this ☝️ scenario already works as you described now on main. I agree that if i'm a user on Solana, with tokens, and turn OFF BFT, i should still be able to see my tokens but i wont be able to send/swap.

Do these scenarios sound correct to you?

GIVEN Non-EVM (Snap) chain selected GIVEN User with no tokens on the selected Non-EVM chain WHEN BFT is disabled THEN Native asset for non-EVM (Snap) chain remain visible AND Swap and Send are disabled.

GIVEN "all popular networks" selected WHEN BFT is disabled THEN Non-EVM tokens are filtered out from the tokens list AND Non-EVM chains are filtered out from the network popover

GIVEN an EVM chain selected WHEN BFT is disabled THEN Non-EVM chains are filtered out from the network popover

Just realized that the fix is going to be bigger than i expected :p

sahar-fehri avatar Dec 17 '25 17:12 sahar-fehri

Thanks @sahar-fehri going through these 1-by-1

GIVEN Non-EVM (Snap) chain selected GIVEN User with no tokens on the selected Non-EVM chain WHEN BFT is disabled THEN Native asset for non-EVM (Snap) chain remain visible AND Swap and Send are disabled.

If possible I believe Swap and Send should remain enabled, however the asset list in the send flow should not include the non-EVM (Snap) assets. The user should also not be able to filter the Asset list inside Swap and Send on the non-EVM (Snap) assets. This would mirror the behavior of aNetwork being enabled but not support by Swaps

GIVEN "all popular networks" selected WHEN BFT is disabled THEN Non-EVM tokens are filtered out from the tokens list AND Non-EVM chains are filtered out from the network popover

GIVEN an EVM chain selected WHEN BFT is disabled THEN Non-EVM chains are filtered out from the network popover

hesterbruikman avatar Dec 17 '25 17:12 hesterbruikman

Looking at this again; When an EVM chain is selected and BFT is off; we have this (screenshot)

Image The swap button is disabled but the send button is enabled. I assume we want to align for non EVM too?

I'm thinking:

GIVEN Non-EVM (Snap) chain selected GIVEN User on the selected Non-EVM chain WHEN BFT is disabled THEN swap button is disabled and send button is enabled. AND when clicking on Send button, the list of assets should not contain non-EVM assets, and the network filter inside send flow should not contain non-EVM chain, the user should not be able to filter on the non-EVM assets

sahar-fehri avatar Dec 17 '25 18:12 sahar-fehri

Aah, you're otally right Sahar. I was focusing on how we should treat the non-EVM Snap network. I'd say for Send we'd still want the action button to be active (and handle network and asset unavailable inside the Send flow). With BFT off though, Swap would not be available altogether. So yes, for Swap we should follow the EVM behavior.

Really when BFT is disabled, Swap should be disabled always, there shouldn't need to be extra logic for when a non-EVM chain is selected on the Portfolio. It's kind of suprising that this is the case.

hesterbruikman avatar Dec 18 '25 12:12 hesterbruikman