Description: MetaMask currently supports two versions of EIP191:
- Version 0x45: Ethereum Signed Message (rpc method
personal_sign
), which is the most widely used. - Version 1: EIP712 (
eth_signTypedData_v4
), which is also somewhat utilized.
However, EIP191 version 0, which allows for signing data with an intended validator, is not supported by MetaMask. This limitation forces users to rely on eth_sign
, which is highly restricted and displays severe warnings due to its potential dangers.
Version 0 is being more used now after it has been added to OpenZeppelin library, Snekmate for Vyper, and JS tools that encode the message structure.
Seeing specific features for new EIPs being worked on, like signing operation for 4337, it does make sense to fully support an old EIP, and then continue to the new EIPs.
Purpose: Adding support for eth_signIntendedValidatorData
will:
- Enable more dApps to use MetaMask without triggering security warnings.
- Allow for the parsing of data to be signed, such as Validator and Validator Specific Data.
- Provide a safer alternative to
eth_sign
by specifying an intended validator, thereby reducing phishing risks. - Offer a simpler and more secure option compared to the complex EIP712 and the broadly used but risky EIP191 version 0x45, which is often used for login messages and other purposes.
- Be particularly relevant for smart contract accounts, as it allows for signing data with a specific intended validator address.
Extension/Mobile/Both: Both
Images/Attachments: N/A