Skip to main content

Send EVM and Solana transactions

Handle EVM and Solana transactions in your JavaScript dapp. With MetaMask Connect, you can:

  • Send transactions on EVM networks and Solana in sequence, without having to switch networks.
  • Track transaction status in real time.
  • Estimate gas costs.
  • Handle transaction errors.
  • Manage complex transaction patterns.

Initialize MetaMask Connect

import { createMultichainClient } from '@metamask/connect-multichain';

const multichainClient = createMultichainClient({
dapp: {
name: "Metamask Connect Multichain Example",
url: window.location.href,
iconUrl: "https://mydapp.com/icon.png" // Optional
},
api: {
supportedNetworks: {
'eip155:1': 'https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY', // Ethereum Mainnet
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': 'https://api.mainnet.solana.com', // Solana Mainnet
},
},
})

await multichainClient.connect()

Send an EVM transaction

const provider = multichainClient.getProvider();

await provider.request({
chain: 'eip155:1',
method: 'eth_sendTransaction',
params: [...]
});

Send a Solana transaction

const provider = multichainClient.getProvider();

await provider.request({
chain: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
method: 'solana_sendRawTransaction',
params: [...],
});