> 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.

## 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.
