-
-
Notifications
You must be signed in to change notification settings - Fork 57
Minimal Multi-Network MetaMask Using Plugins #95
Comments
Overall this direction makes a lot of sense, and will more so moving forward. (Most users are only interested in mainnet), and of course I'm in favor of anything adding better/easier/smoother alternative EVM network support. Could you elaborate further from a UX perspective? common scenarios:
My initial thoughts on things to consider/keep in mind (just so they're noted): networkId != chainId: networkId and chainId need to be handled properly, this is often neglected due to them matching on eth mainnet, however they are separate values that serve separate purposes. eth_contract_metadata: Do you have any thoughts on how to handle this on a per network basis? Ideally this should be separate for each chain (maintained by the plugin maintainer(s)). |
Agreed.
Plugins are added at log-in time on a per-dapp and per-account basis. That plugin can display its assets in the token list alongside the user's other main-net assets (like Ropsten Eth, for example, with non-overlapping names, and assets being marked with the plugin that added them). Apps wanting to interact with this network could either:
This means dapps that use test-nets would remember their networks, and to the user it would simply be like logging into a different app, and using a different currency for its gas cost.
A user interacting with dapps simply logs into them as above. When they want to send an other-evm asset, assuming they had that plugin installed, they could click that asset in their token list, and they would get a screen provided by that plugin for managing that asset. It could resemble the tx history, along with |
Long term, we could even extend this further and support non Ethereum networks in the same way This alongside #104 would unlock great features for multicrypto snaps |
MetaMask has been tied to a multi-network single-transaction controller architecture for a long time, and there has been a long running initiative to get us to a place where we can support multiple networks for a long time.
What exactly this will look like has been unclear, but given the context of the plugin system, I would like to suggest a new and simple path:
Ethereum by Default, Test Networks as Plugins
Permission to provide connection to [Network with Chain ID X](Replace with network name if known)
. This permission will forward approved transactions to this plugin for transmission to the blockchain, and will forward other RPC calls with thatchain_id
to that plugin.chain_id
parameter to any call and interact with any installed EVM chain.The text was updated successfully, but these errors were encountered: