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.