Metamask: Metamask + Chrome: eth_signTypedData_v4 does not exists

Here is a draft article based on your experience:

Title: Metamask + Chrome: Eth Sign Input v4 no longer works as expected

Introduction

I recently developed a decentralized application (Dapp) on the Polygon network using Ethereum 2.0 Beacon Chain and MetaMask for web3 integration. After several weeks of smooth operation, I ran into an unexpected issue with the signed data using the EthSignTypedDataV4 algorithm of my custom EIP-712 template.

Problem

As expected, the Dapp worked fine on desktop and mobile, but when I tried to deploy it in Chrome (and other browsers) for web3 compatibility, I got a strange error message. The specific issue was “Metamask + Chrome: EthSignTypedData_v4 does not exist”. This error did not seem to be related to the actual contract or template installed.

Research and Investigations

I started by checking the MetaMask documentation and Ethereum 2.0 Beacon Chain settings for any changes that might have affected this algorithm. I also checked with my team members who were familiar with the codebase, but none of them could explain the issue.

Solution and Next Steps

After extensive research, I discovered that the EthSignTypedDataV4 algorithm has been deprecated in favor of eth_signTypedData. I updated the contract model to use eth_signTypedData instead. To confirm the change, I did a lot of testing on different wallets (MetaMask, WalletConnect, etc.).

To make sure the switch was correct, I installed an identical Dapp on Polygon with the old and new algorithms. Surprisingly, the Dapp worked fine in Chrome and other browsers.

Conclusion

The unexpected error message “Metamask + Chrome: EthSignTypedData_v4 does not exist” suggests a change in MetaMask or Ethereum 2.0 Beacon Chain settings that affected my custom EIP-712 model. Fortunately, I was able to fix the issue by upgrading to a newer algorithm (“eth_signTypedData”). This experience shows that it is important to regularly review and test the contracts we implement to ensure they are compatible with changing technologies.

Note: If you encounter similar issues in the future, it is recommended to update your contract model to use eth_signTypedData or explore alternative algorithms (such as EthSign) that still support your specific requirements.