Skip to main content

Wallet interoperability

A web dapp can integrate with multiple wallets simultaneously by adding support for EIP-6963, which introduces an alternative discovery mechanism to the window.ethereum injected provider. This discovery is enabled by using the standardized events and interfaces defined by EIP-6963.

The following is a visual demo of the user experience, showing the data provided from each installed wallet:

Learn how to detect multiple wallets and see the EIP-6963 Vite React + TypeScript demo for more information.

Third-party library support

The following third-party libraries support EIP-6963:

MIPD Store

The MIPD Store stores the wallet providers and enables you to subscribe to the store and retrieve the providers. Unlike Wagmi and Web3-Onboard, which are libraries that provide components and connectors for multiple wallets and depend on MetaMask SDK for integration, the MIPD Store is a utility library that makes it easier to work with EIP-6963 and supports TypeScript types.

MetaMask SDK support

note

MetaMask SDK does not support connecting to non-MetaMask wallets via EIP-6963. If you intend to support discovery of other wallets, we recommend using other methods of adding EIP-6963 support such as Wagmi 2+.

The MetaMask JavaScript SDK automatically checks for the presence of the MetaMask extension via EIP-6963. This eliminates the need for manual configuration or detection methods, simplifying the initial setup process for both developers and users.

By adhering to the standards set by EIP-6963, the SDK unambiguously identifies and connects to MetaMask, resolving potential conflicts that might arise with other wallet extensions, ensuring a more stable and reliable interaction for users.

The SDK is also being integrated into Wagmi 2+, which supports EIP-6963. The SDK on its own supports connecting only to MetaMask via EIP-6963, so if you intend to support discovery of other wallets, we recommend using other methods of adding EIP-6963 support, such as Wagmi 2+.

Wallet support

The EIP-6963 alternative discovery mechanism works for wallets that have implemented support for EIP-6963. This includes MetaMask, Coinbase, Trust Wallet, OKX, and other major wallets. See the list of wallets that support EIP-6963.

Backwards compatibility

Dapps that do not support EIP-6963 can still detect MetaMask using the window.ethereum provider. However, we recommend adding support to improve the user experience for multiple installed wallets. Read more about EIP-6963 backwards compatibility.