Connect to EVM and Solana in MetaMask
Get started with MM Connect in your multichain JavaScript dapp. You can connect to EVM networks and Solana in MetaMask at the same time, and make requests to each network without having to switch between them.
Prerequisites
- Node.js version 19 or later installed.
- A package manager installed, such as npm, Yarn, pnpm, or bun.
- MetaMask installed in your browser or on mobile.
Steps
1. Install MM Connect
Install MM Connect in an existing JavaScript project:
- npm
- Yarn
- pnpm
- Bun
npm install @metamask/connect/multichain
yarn add @metamask/connect/multichain
pnpm add @metamask/connect/multichain
bun add @metamask/connect/multichain
2. Initialize MM Connect
Initialize MM Connect with configuration options:
import { createMultichainClient } from "@metamask/connect/multichain"
const multichainClient = createMultichainClient({
dappMetadata: {
name: "Example multichain dapp",
url: window.location.href,
iconUrl: "https://mydapp.com/icon.png" // Optional
},
infuraAPIKey: process.env.INFURA_API_KEY,
})
This example configures MM Connect with the following options:
dappMetadata- Ensures trust by showing your dapp'sname,url, andiconUrlduring connection.infuraAPIKey- Enables read-only RPC and load‑balancing. Set this option to your Infura API key.
3. Connect and use provider
Connect to MetaMask and get the provider for RPC requests:
const provider = multichainClient.getProvider()
await provider.request({
chain: 'eip155:1',
method: 'eth_sendTransaction',
params: [...]
});
Next steps
Now that you've connected to multiple ecosystems in MetaMask, learn how to send EVM and Solana transactions.