> For the complete documentation index, see [llms.txt](/llms.txt).

# Connect to multiple ecosystems

Use MetaMask Connect Multichain (`@metamask/connect-multichain`) to connect to multiple blockchain networks and ecosystems in MetaMask at the same time.

With the multichain client, your dapp can request access to EVM networks, Solana, and future ecosystems in a single connection prompt, instead of using separate connection flows for each chain. This gives you more control than the [ecosystem-specific clients](/metamask-connect/integration-options/), but requires adapting your dapp to work with the Multichain API rather than traditional per-chain RPC.

Ready to code?

Jump to the [Quickstart](/metamask-connect/multichain/quickstart/javascript/) to set up MetaMask Connect Multichain in minutes.

## How the Multichain API works[​](#how-the-multichain-api-works "Direct link to How the Multichain API works")

MetaMask Connect Multichain is built on the [Multichain API (CAIP-25)](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-25.md) specification, a chain-agnostic standard for wallet-dapp communication. For the full rationale and specification, see [MetaMask Improvement Proposal-5 (MIP-5)](https://github.com/MetaMask/metamask-improvement-proposals/blob/main/MIPs/mip-5.md).

Instead of connecting to one chain at a time, the Multichain API lets you:

- **Request access to multiple ecosystems at once**: For example, request Ethereum Mainnet, Polygon, and Solana Mainnet in a single session.
- **Send requests to any chain in the session**: For example, send a Solana transaction and an EVM transaction through the same connection.
- **Manage the full session lifecycle**: Connect, retrieve session data, invoke methods on any chain, and disconnect using [SDK methods](/metamask-connect/multichain/reference/methods/) that wrap the underlying [Multichain API](/metamask-connect/multichain/reference/api/).

For dapps that support both EVM and Solana, this means one session covers both, and users see a single approval prompt.

![MetaMask Connect Multichain Connect Modal](/assets/images/metamask-connect-modal-15bfb072a7485a0ef909376f50757da2.png)

## When to use the multichain client[​](#when-to-use-the-multichain-client "Direct link to When to use the multichain client")

The multichain client is a good fit when you're:

- **Building a new dapp** designed from the ground up for multiple ecosystems.
- **Looking for the best cross-chain UX**: one connection prompt for all chains.
- **Needing full control** over the session lifecycle.

If you're adding MetaMask Connect Multichain to an existing dapp and want minimal code changes, the [ecosystem-specific clients](/metamask-connect/integration-options/) ([@metamask/connect-evm](/metamask-connect/evm/) or [@metamask/connect-solana](/metamask-connect/solana/)) are a simpler starting point. You can always migrate later.

## Get started[​](#get-started "Direct link to Get started")

- [QuickstartGet started with MetaMask Connect Multichain in minutes.](/metamask-connect/multichain/quickstart/javascript/)
- [Sign messagesSign messages and typed data on EVM and Solana.](/metamask-connect/multichain/guides/sign-transactions/)
- [Send transactionsSend transactions on EVM networks and Solana.](/metamask-connect/multichain/guides/send-transactions/)
- [Create a multichain dappBuild a React dapp that connects to Ethereum, Linea, Base, and Solana.](/metamask-connect/multichain/tutorials/create-multichain-dapp/)
- [SDK methodsSee the reference for connect, invokeMethod, disconnect, and more.](/metamask-connect/multichain/reference/methods/)
- [API referenceSee the full Multichain API method and event reference.](/metamask-connect/multichain/reference/api/)

## Frequently asked questions[​](#frequently-asked-questions "Direct link to Frequently asked questions")

### What chains does the multichain client support?[​](#what-chains-does-the-multichain-client-support "Direct link to What chains does the multichain client support?")

MetaMask Connect Multichain supports all EVM-compatible networks (Ethereum, Polygon, Arbitrum, Optimism, Linea, Base, and any chain with a [CAIP-2](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md) scope) and Solana (mainnet and devnet). Future ecosystems will be supported as they are added to MetaMask. Specify which chains to connect to using CAIP-2 scopes (for example, `eip155:1` for Ethereum Mainnet or `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp` for Solana Mainnet).

### How does CAIP-25 work in MetaMask Connect?[​](#how-does-caip-25-work-in-metamask-connect "Direct link to How does CAIP-25 work in MetaMask Connect?")

[CAIP-25](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-25.md) is a chain-agnostic standard for wallet-dapp communication. When your dapp calls [connect](/metamask-connect/multichain/reference/methods/#connect) with a list of CAIP-2 scopes, MetaMask creates a session that authorizes your dapp to send requests to those chains. You then use [invokeMethod](/metamask-connect/multichain/reference/methods/#invokemethod) to send JSON-RPC requests to any authorized chain by specifying its scope. The user sees a single approval prompt for all requested chains.

### Can I use the multichain client alongside ecosystem-specific clients?[​](#can-i-use-the-multichain-client-alongside-ecosystem-specific-clients "Direct link to Can I use the multichain client alongside ecosystem-specific clients?")

The multichain client and ecosystem-specific clients share the same underlying session infrastructure. While you can use both, we recommend choosing one approach. The multichain client gives you full control over sessions and cross-chain RPC, while the ecosystem-specific clients provide familiar per-chain provider interfaces. See [integration options](/metamask-connect/integration-options/) for a detailed comparison.
