As of today, MetaMask has stopped injecting window.web3, and made a limited number of breaking changes to our Ethereum Provider API (window.ethereum). We’ve regularly messaged the community about these changes for more than a year, but if you’ve missed these announcements, don’t worry. This post contains everything you need to know about what’s changing, why we’re doing it, and what to do if your dapp is affected. If you just want to know how to handle the changes, you can head straight to our migration guide.
Why Did We Make This Decision?
Although you should probably go straight to our documentation, here’s a summary of the breaking changes:
- First and foremost, we’re removing our injected window.web3.
- Second, we’re making the following breaking changes to our Provider API (window.ethereum):
- Stop 0-padding eth_chainId return values for some chains
- Stop emitting chainIdChanged, and instead emit chainChanged
- Removing ethereum.publicConfigStore
- Removing the ethereum._metamask.isEnabled experimental method
- Removing the ethereum._metamask.isApproved experimental method
If you do not use any of the features that are being removed as part of this update, you’re good to go! If you do use any of the above features, go to our migration guide. The best way to stay up-to-date on all developer related MetaMask news is to subscribe to MetaMask Monthly. If you have questions or need a little help migrating to the new API, head to this GitHub issue or the MetaMask Discord to connect with the team and we’ll do our very best to help you out. Thank you for reading, and for making the Ethereum ecosystem the incredible place that it is!
Keep reading our latest stories
releases, security news, and more