AppKit is now multichain. The architecture is designed to support both EVM and non-EVM blockchains. This will allow developers and projects to choose and configure multiple blockchain networks within their instance of AppKit, extending beyond just Ethereum-based (EVM) networks.
Currently, AppKit supports two non-EVM networks, they are, Solana and Bitcoin.
The AppKit instance allows you to support multiple chains by importing the respective chains, creating the respective network adapters and passing these within the createAppKit() function.
Depending on the network adapter of your preference (Wagmi, Ethers, Ethers5), the integration may vary. Let’s look at what the integration will look like.
Copy
import { createAppKit } from '@reown/appkit'import { SolanaAdapter } from '@reown/appkit-adapter-solana'import { WagmiAdapter } from '@reown/appkit-adapter-wagmi'import { mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet,} from "@reown/appkit/networks";import type { AppKitNetwork } from "@reown/appkit/types";const networks: [AppKitNetwork, ...AppKitNetwork[]] = [mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet]// 0. Get projectId from https://cloud.reown.comconst projectId = 'YOUR_PROJECT_ID'// 1. Create the Wagmi adapterexport const wagmiAdapter = new WagmiAdapter({ ssr: true, projectId, networks})// 2. Create Solana adapterconst solanaWeb3JsAdapter = new SolanaAdapter()// 3. Set up the metadata - Optionalconst metadata = { name: 'AppKit', description: 'AppKit Example', url: 'https://example.com', // origin must match your domain & subdomain icons: ['https://avatars.githubusercontent.com/u/179229932']}// 4. Create the AppKit instanceconst modal = createAppKit({ adapters: [wagmiAdapter, solanaWeb3JsAdapter], networks, metadata, projectId, features: { analytics: true, }})
Copy
import { createAppKit } from '@reown/appkit'import { SolanaAdapter } from '@reown/appkit-adapter-solana'import { WagmiAdapter } from '@reown/appkit-adapter-wagmi'import { mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet,} from "@reown/appkit/networks";import type { AppKitNetwork } from "@reown/appkit/types";const networks: [AppKitNetwork, ...AppKitNetwork[]] = [mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet]// 0. Get projectId from https://cloud.reown.comconst projectId = 'YOUR_PROJECT_ID'// 1. Create the Wagmi adapterexport const wagmiAdapter = new WagmiAdapter({ ssr: true, projectId, networks})// 2. Create Solana adapterconst solanaWeb3JsAdapter = new SolanaAdapter()// 3. Set up the metadata - Optionalconst metadata = { name: 'AppKit', description: 'AppKit Example', url: 'https://example.com', // origin must match your domain & subdomain icons: ['https://avatars.githubusercontent.com/u/179229932']}// 4. Create the AppKit instanceconst modal = createAppKit({ adapters: [wagmiAdapter, solanaWeb3JsAdapter], networks, metadata, projectId, features: { analytics: true, }})
Copy
import { createAppKit } from '@reown/appkit'import { BitcoinAdapter } from '@reown/appkit-adapter-bitcoin'import { WagmiAdapter } from '@reown/appkit-adapter-wagmi'import { mainnet, arbitrum, sepolia, bitcoin } from '@reown/appkit/networks'const networks: [AppKitNetwork, ...AppKitNetwork[]] = [mainnet, arbitrum, sepolia, bitcoin]// 0. Get projectId from https://cloud.reown.comconst projectId = 'YOUR_PROJECT_ID'// 1. Create the Wagmi adapterexport const wagmiAdapter = new WagmiAdapter({ ssr: true, projectId, networks})// 2. Set up Bitcoin Adapterconst bitcoinAdapter = new BitcoinAdapter({ projectId})// 3. Set up the metadata - Optionalconst metadata = { name: 'AppKit', description: 'AppKit Example', url: 'https://example.com', // origin must match your domain & subdomain icons: ['https://avatars.githubusercontent.com/u/179229932']}// 4. Create the AppKit instanceconst modal = createAppKit({ adapters: [wagmiAdapter, bitcoinAdapter], networks, metadata, projectId, features: { analytics: true, }})
Copy
import { createAppKit } from '@reown/appkit'import { SolanaAdapter } from '@reown/appkit-adapter-solana'import { EthersAdapter } from '@reown/appkit-adapter-ethers'import { solana, solanaTestnet, solanaDevnet } from '@reown/appkit/networks';import { mainnet, arbitrum, sepolia } from "@reown/appkit/networks";const networks: [AppKitNetwork, ...AppKitNetwork[]] = [mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet]// 0. Create the Ethers adapterexport const ethersAdapter = new EthersAdapter()// 1. Create Solana adapterconst solanaWeb3JsAdapter = new SolanaAdapter()// 2. Get projectId from https://cloud.reown.comconst projectId = 'YOUR_PROJECT_ID'// 3. Set up the metadata - Optionalconst metadata = {name: 'AppKit',description: 'AppKit Example',url: 'https://example.com', // origin must match your domain & subdomainicons: ['https://avatars.githubusercontent.com/u/179229932']}// 4. Create the AppKit instanceconst modal = createAppKit({adapters: [ethersAdapter, solanaWeb3JsAdapter],networks,metadata,projectId,features: {analytics: true,}})
Copy
import { createAppKit } from '@reown/appkit'import { SolanaAdapter } from '@reown/appkit-adapter-solana'import { EthersAdapter } from '@reown/appkit-adapter-ethers'import { solana, solanaTestnet, solanaDevnet } from '@reown/appkit/networks'import { mainnet, arbitrum, sepolia } from '@reown/appkit/networks'// 0. Create the Ethers adapterexport const ethersAdapter = new EthersAdapter()// 1. Create Solana adapterconst solanaWeb3JsAdapter = new SolanaAdapter()// 2. Get projectId from https://cloud.reown.comconst projectId = 'YOUR_PROJECT_ID'// 3. Set up the metadata - Optionalconst metadata = { name: 'AppKit', description: 'AppKit Example', url: 'https://example.com', // origin must match your domain & subdomain icons: ['https://avatars.githubusercontent.com/u/179229932']}// 4. Create the AppKit instanceconst modal = createAppKit({ adapters: [ethersAdapter, solanaWeb3JsAdapter], networks: [mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet], metadata, projectId, features: { analytics: true, }})
Copy
import { createAppKit } from "@reown/appkit";import { solana, solanaTestnet, solanaDevnet } from "@reown/appkit/networks";import { mainnet, arbitrum, sepolia } from "@reown/appkit/networks";// 1. Get projectId from https://cloud.reown.comconst projectId = "YOUR_PROJECT_ID";// 2. Set up the metadata - Optionalconst metadata = { name: "AppKit", description: "AppKit Example", url: "https://example.com", // origin must match your domain & subdomain icons: ["https://avatars.githubusercontent.com/u/179229932"],};// 3. Create the AppKit instanceconst modal = createAppKit({ networks: [mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet], metadata: metadata, projectId, features: { analytics: true, },});
Controls whether WalletConnect is registered as an available WalletStandard wallet following the Solana Wallet Standard protocol. When enabled, users will see “WalletConnect” as a wallet choice alongside other Solana wallets like Phantom, Solflare, etc. when integrating wallet standard libraries
Copy
const solanaWeb3JsAdapter = new SolanaAdapter({ registerWalletStandard: true, wallets: [/* only show these specific wallets */]})