Skip to main content

About MetaMask Connect

MetaMask Connect handles the complexity of connecting your dapp to MetaMask across every platform, so you can focus on building your application.

Supported platforms

Your dapp can reach users on desktop and mobile with a single integration:

  • Desktop web dapps — Automatically connect to the MetaMask extension, or connect to MetaMask Mobile using a QR code when the extension isn't installed.
  • Mobile dapps — MetaMask Connect generates a deeplink that takes users directly to MetaMask Mobile.

Here's how each connection method compares:

Dapp locationUser wallet locationConnection methodMetaMask ConnectOther SDKs
Desktop webWallet browser extensionAutomatic connection via browser extensionSupportedSupported
Desktop webWallet mobile appQR code scan with wallet mobile appSupportedLimited
Mobile browserWallet mobile appDeeplink directly to wallet mobile appSupportedLimited
Mobile dappWallet mobile appDeeplink directly to wallet mobile appSupportedLimited
tip

For a better user experience on mobile, it's important to use reliable RPC providers instead of public nodes. We recommend using services like Infura to ensure better reliability and performance.

How connections work under the hood

You don't need to manage any of this — it's all handled automatically. Here's what happens when a user connects:

  1. Platform detection — The SDK checks if the MetaMask extension is present, what browser the user is in, and whether they're on mobile.
  2. Transport selection — If the extension is available, the SDK communicates with it directly. Otherwise, it sets up a relay connection via QR code or deeplink.
  3. Session creation — A CAIP-25 session is established for the requested chains and methods.
  4. End-to-end encryption — Relay connections are encrypted end-to-end, so the relay server never sees message content.
  5. Session persistence — The session survives page reloads and new tabs. Users don't need to re-approve on every visit.

Which integration option should I choose?

Ecosystem clients (Option A - EVM and Solana)Multichain client (Option B)
Integration effortLow — drop-in replacement for existing provider codeMedium — requires adapting to the scope-based Multichain API
EVM supportStandard EIP-1193 provider, works with ethers/viem/web3.jsVia wallet_invokeMethod with EVM scopes
Solana supportWallet Standard compatible, works with Solana wallet adapter. Also available as a connector in Framework Kit.Via wallet_invokeMethod with Solana scopes
Cross-chain UXSeparate connect flows per ecosystemSingle connect prompt for all ecosystems
Session managementHandled automatically per-clientFull control over unified session
Best forExisting dapps that want MetaMask Connect benefits with minimal code changesNew or multichain-native dapps that want the best possible cross-chain UX

Also start with Option A and migrate to Option B over time. The ecosystem clients are built on the multichain client, so they share the same transport and session infrastructure under the hood.

Wallet connector library integrations

If your dapp already uses a wallet connector library, adopting MetaMask Connect is straightforward. MetaMask Connect integrates with the most popular options:

LibraryStatusDocumentation
Wagmi / RainbowKitSupportedWagmi quickstart, RainbowKit quickstart
Web3AuthSupportedWeb3Auth quickstart
DynamicSupportedDynamic quickstart
ConnectKitSupportedConnectKit quickstart

In most cases, adopting MetaMask Connect is as simple as updating a dependency or adding a connector — no changes to your application code.

Architecture

The following diagram shows how MetaMask Connect routes connections depending on the user's platform: