Wallets are the most important interaction point between dapps and the Ethereum chain. Currently the most important wallet methods (
eth_signTypedData ) are part of the general api specification. For most wallets it does not make sense to provide implementations for all
eth_ methods. Therefore it would make sense to introduce a new prefix
wallet_ (this was already introduced with EIP 747: wallet_watchAsset).
This will provide the possibility to support new types of wallets. While the current methods are focused on wallets based on externally owned accounts, more and more wallets start to make use of smart contracts. Interacting with smart contract based wallets is different to the interaction with EOA based wallets. The biggest difference is that smart contract based wallets cannot generate ECDSA signatures. Also smart contract based wallets provide the possibility for a lot of extended functionality.
There is an early version of an EIP (https://github.com/rmeissner/EIPs/blob/rmeissner-wallet-rpc/EIPS/eip-xxx.md) and I would love to move this forward.
The idea is to provide a standard that can be used by any sdk building ontop of an EthereumProvider. This interface could also be used for communication between mobile wallets and mobile apps. And it should be able to provide a base that can be extended for future wallet specific improvements.
(e.g. this would make it possible that dapps build there own EthereumProvider and browser wallets just inject the a WalletProvider that handles the
wallet_ rpc calls)