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

# Integration options

MetaMask Connect offers three integration paths:

- **Multichain** (`@metamask/connect-multichain`) for connecting to EVM and Solana in a single session.
- **Single-ecosystem** (`@metamask/connect-evm` or `@metamask/connect-solana`) for drop-in per-chain providers.
- **Multi-ecosystem** (both single-ecosystem packages together) for dapps supporting both chains with familiar interfaces.

We recommend using the multichain client, which provides a single connection prompt across all ecosystems. If your dapp targets a single chain or you prefer per-chain provider interfaces, you can use the single-ecosystem or multi-ecosystem option.

All options share the same underlying transport and session infrastructure, so you can start with the option that fits your dapp today and migrate later. The EVM and Solana clients wrap the same `createMultichainClient` singleton core.

## Multichain (recommended)[​](#multichain-recommended "Direct link to Multichain (recommended)")

Use [@metamask/connect-multichain](/metamask-connect/multichain/) to work directly with the [Multichain API](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-25.md). This uses scopes and `wallet_invokeMethod` instead of per-chain RPC, and supports a single connection prompt across all ecosystems.

## Single-ecosystem[​](#single-ecosystem "Direct link to Single-ecosystem")

If your dapp targets a single ecosystem, use [@metamask/connect-evm](/metamask-connect/evm/) or [@metamask/connect-solana](/metamask-connect/solana/) to add MetaMask Connect to an existing dapp with minimal code changes.

- **EVM**: Provides an [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193) compatible provider that works with `ethers.js`, `viem`, and `web3.js`.
- **Solana**: Provides a [Wallet Standard](https://github.com/wallet-standard/wallet-standard)compatible wallet that works with the Solana Wallet Adapter ecosystem.

## Multi-ecosystem[​](#multi-ecosystem "Direct link to Multi-ecosystem")

If your dapp supports both EVM and Solana, use [@metamask/connect-evm](/metamask-connect/evm/) and [@metamask/connect-solana](/metamask-connect/solana/) together to support both ecosystems while keeping familiar provider interfaces for each.

## Compare options[​](#compare-options "Direct link to Compare options")

|                    | Multichain                                          | Single-ecosystem                                                                     | Multi-ecosystem                     |
| ------------------ | --------------------------------------------------- | ------------------------------------------------------------------------------------ | ----------------------------------- |
| **Package**        | [connect-multichain](/metamask-connect/multichain/) | [connect-evm](/metamask-connect/evm/) or [connect-solana](/metamask-connect/solana/) | Both connect-evm and connect-solana |
| **Effort**         | Medium (scope-based API)                            | Low (drop-in provider)                                                               | Low (two providers)                 |
| **EVM support**    | Via wallet_invokeMethod                             | EIP-1193 provider                                                                    | EIP-1193 provider                   |
| **Solana support** | Via wallet_invokeMethod                             | Wallet Standard                                                                      | Wallet Standard                     |
| **Cross-chain UX** | Single prompt for all ecosystems                    | Single ecosystem                                                                     | Separate connect per ecosystem      |
| **Sessions**       | Full control                                        | Automatic                                                                            | Automatic per-client                |
| **Best for**       | Multichain-native dapps                             | Existing single-chain dapps                                                          | Dapps supporting EVM and Solana     |

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

### Which integration option should I choose?[​](#which-integration-option-should-i-choose "Direct link to Which integration option should I choose?")

Choose **multichain** (`@metamask/connect-multichain`) if your dapp needs to connect to both EVM and Solana in a single session with one approval prompt. Choose **single-ecosystem** (`@metamask/connect-evm` or `@metamask/connect-solana`) if your dapp targets one chain and you want a drop-in provider compatible with existing libraries. Choose **multi-ecosystem** (both single-ecosystem packages) if you want per-chain providers for both EVM and Solana.

### Can I migrate between integration options later?[​](#can-i-migrate-between-integration-options-later "Direct link to Can I migrate between integration options later?")

Yes. All three options share the same underlying transport and session infrastructure, so you can start with a single-ecosystem client and migrate to multichain later without changing your backend or connection logic. The migration involves updating your client initialization code and adopting scope-based RPC routing.

### Does MetaMask Connect work with Wagmi, ethers.js, and viem?[​](#does-metamask-connect-work-with-wagmi-ethersjs-and-viem "Direct link to Does MetaMask Connect work with Wagmi, ethers.js, and viem?")

Yes. The EVM client (`@metamask/connect-evm`) provides an EIP-1193 compatible provider that works directly with viem's `custom` transport, ethers.js `BrowserProvider`, and web3.js `Web3` constructor. The Solana client provides a Wallet Standard compatible wallet that works with the Solana Wallet Adapter ecosystem.
