SOLUTION: as of 08/31/2021 for Brave Version 1.28.106 Chromium: 92.0.4515.159 (Official Build) (Windows OS 64-bit), MetaMask extension Version 10.0.3, and Brave Wallets extension Version 1.0.32
Preface and Background:
I had the exact same problem tonight when I wanted to check out a potential IDO in Brave Browser. After about 45 mins of head scrathin, this seems to work every time (regardless of my Chrome extensions or the settings in my Chrome Browser)…
Brave Wallet (i.e. Crypto Wallets extension) is a fork of MetaMask itself. And when two MetaMask extensions are active at the same time (even if they’re forks of one another), they may malfunction - much like how injecting jQuery into a web page twice can cause front end design and functionality problems. This is why MetaMask throws the
"MetaMask detected another web3. [...]" error as a security measure. After all, a malfunction for web design is one thing, but we’re dealing with finance here. Keeping your Secret Keys (seed phrases) safe is top priority for any web3 extension, so it’s smart to throw an error rather than let anything bad happen.
So… as long as Brave’s “Crypto Wallets” extension is active at the same time as MetaMask, the two will interfere with one another and throw the error which leaves Uniswap and all other Dapps with a blank page or an error message for you on the page.
So here’s the solution:
Inside of Brave, all you need to do to get MetaMask working is to
Extensions > Manage Extensions > Crypto Wallets > Toggle OFF this prevents the two from interfering with one another. On the same note, if you ever want to get Crypto Wallets to work, then you’ll need to disable MetaMask.
Hope this helps!
P.S. To the Devs and @Mattches : Maybe you could:
- add a module/function that auto-disables Crypto Wallets on a Dapp page if MetaMask is active?
- OR perhaps you could find a way that Crypto Wallets and MetaMask can share data with one another or unidirectionally from Brave to MetaMask using the appropriate prompts to the user?
- OR you could just return an alert.(errorMessage) function so you can let everyone know what to do. Just an idea
I actually found it’s easier (and more convenient) just to change the Crypto Wallets extension Settings for
site access > This can read and write site data > Toggle OFF: "On all sites" > Toggle ON: "When you click the extension" - This way, you can keep Crypto Wallets active; however, it will only interfere with Dapps that use your MetaMask extension IF and ONLY IF you click the Crypto Wallets extension and then reload the page.