Support separate wallet objects to avoid window.ethereum conflicts

:united_kingdom: English

Hello, I’m facing the following issue and I’ve seen that many other users are also strongly affected by it:

When multiple Ethereum-based wallets (MetaMask, OKX Wallet, Coinbase Wallet, etc.) are installed in the browser, they all attempt to control the same window.ethereum object. This causes dApps to sometimes connect to the wrong wallet. As a user, I often receive “User rejected the request” errors even though I haven’t taken any action — simply because the wrong provider was triggered.

This creates a very confusing and frustrating experience for users and makes Web3 feel unreliable. I’ve seen many other people report similar issues on forums and Stack Overflow.

As a solution, I suggest that each wallet extension exposes its own global object — for example: window.metamaskethereum, window.okxethereum, etc. This would allow dApps to intentionally choose the correct wallet provider and avoid conflicts. It would make the experience much more reliable and user-friendly.

Thank you for your consideration!

Merhaba, şöyle bir sorunla karşılaşıyorum ve bunun yalnızca bana özgü olmadığını, birçok MetaMask kullanıcısının da aynı durumdan ciddi şekilde rahatsız olduğunu görüyorum:

🇹🇷 Türkçe

Tarayıcıda MetaMask dışında OKX Wallet, Coinbase Wallet gibi başka Ethereum tabanlı cüzdan uzantıları da yüklüyse, hepsi aynı window.ethereum nesnesini paylaşmaya çalışıyor. Bu durumda site aslında MetaMask ile bağlantı kurmak isterken OKX ya da başka bir cüzdanla deneme yapabiliyor. Sonuç olarak, kullanıcı olarak hiçbir şey yapmamama rağmen “User rejected the request” gibi hatalar alıyorum ve bağlantı başarısız oluyor. Bu sorun farklı tarayıcılarda farklı davranabiliyor ve çoğu kullanıcı ne olduğunu bile anlamıyor.

Bu durum, Web3 deneyimini hem kafa karıştırıcı hem de güvensiz hale getiriyor. Forumlarda ve Stack Overflow’da yüzlerce kişi benzer şeyleri yaşıyor. Bu sorunun çözümü için bir önerim var:

Her cüzdan tarayıcıda kendine özel bir global nesne (window.metamaskethereum, window.okxethereum gibi) tanımlarsa, web siteleri hangi cüzdanla bağlantı kuracağını açıkça seçebilir. Bu sayede kullanıcıdan yük alınır, çakışmalar önlenir, deneyim tutarlı hale gelir.

Hi @McCarsH thank you so much for sharing your awesome feedback and ideas, we will pass it to the team :fox: