> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reown.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Multichain

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

## Installation

<Tabs>
  <Tab title="Wagmi + Solana">
    <CodeGroup>
      ```bash npm theme={null}
      npm install @reown/appkit @reown/appkit-adapter-wagmi @reown/appkit-adapter-solana
      ```

      ```bash Yarn theme={null}
      yarn add @reown/appkit @reown/appkit-adapter-wagmi @reown/appkit-adapter-solana
      ```

      ```bash Bun theme={null}
      bun a @reown/appkit @reown/appkit-adapter-wagmi @reown/appkit-adapter-solana
      ```

      ```bash pnpm theme={null}
      pnpm add @reown/appkit @reown/appkit-adapter-wagmi @reown/appkit-adapter-solana
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Wagmi + Bitcoin">
    <CodeGroup>
      ```bash npm theme={null}
      npm install @reown/appkit @reown/appkit-adapter-wagmi @reown/appkit-adapter-bitcoin
      ```

      ```bash Yarn theme={null}
      yarn add @reown/appkit @reown/appkit-adapter-wagmi @reown/appkit-adapter-bitcoin
      ```

      ```bash Bun theme={null}
      bun a @reown/appkit @reown/appkit-adapter-wagmi @reown/appkit-adapter-bitcoin
      ```

      ```bash pnpm theme={null}
      pnpm add @reown/appkit @reown/appkit-adapter-wagmi @reown/appkit-adapter-bitcoin
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Ethers5 + Solana">
    <CodeGroup>
      ```bash npm theme={null}
      npm install @reown/appkit @reown/appkit-adapter-ethers5 @reown/appkit-adapter-solana
      ```

      ```bash Yarn theme={null}
      yarn add @reown/appkit @reown/appkit-adapter-ethers5 @reown/appkit-adapter-solana
      ```

      ```bash Bun theme={null}
      bun a @reown/appkit @reown/appkit-adapter-ethers5 @reown/appkit-adapter-solana
      ```

      ```bash pnpm theme={null}
      pnpm add @reown/appkit @reown/appkit-adapter-ethers5 @reown/appkit-adapter-solana
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Ethers + Solana">
    <CodeGroup>
      ```bash npm theme={null}
      npm install @reown/appkit @reown/appkit-adapter-ethers @reown/appkit-adapter-solana
      ```

      ```bash Yarn theme={null}
      yarn add @reown/appkit @reown/appkit-adapter-ethers @reown/appkit-adapter-solana
      ```

      ```bash Bun theme={null}
      bun a @reown/appkit @reown/appkit-adapter-ethers @reown/appkit-adapter-solana
      ```

      ```bash pnpm theme={null}
      pnpm add @reown/appkit @reown/appkit-adapter-ethers @reown/appkit-adapter-solana
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Core">
    <CodeGroup>
      ```bash npm theme={null}
      npm install @reown/appkit
      ```

      ```bash Yarn theme={null}
      yarn add @reown/appkit
      ```

      ```bash Bun theme={null}
      bun a @reown/appkit
      ```

      ```bash pnpm theme={null}
      pnpm add @reown/appkit
      ```
    </CodeGroup>
  </Tab>
</Tabs>

## Integration

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.

<Tabs>
  <Tab title="Wagmi + Solana">
    ```ts theme={null}
    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://dashboard.reown.com
    const projectId = 'YOUR_PROJECT_ID'

    // 1. Create the Wagmi adapter
    export const wagmiAdapter = new WagmiAdapter({
      ssr: true,
      projectId,
      networks
    })

    // 2. Create Solana adapter
    const solanaWeb3JsAdapter = new SolanaAdapter()

    // 3. Set up the metadata - Optional
    const 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 instance
    const modal = createAppKit({
      adapters: [wagmiAdapter, solanaWeb3JsAdapter],
      networks,
      metadata,
      projectId,
      features: {
        analytics: true,
      }
    })
    ```
  </Tab>

  <Tab title="Wagmi + Bitcoin">
    ```ts theme={null}
    import { createAppKit } from '@reown/appkit'
    import { BitcoinAdapter } from '@reown/appkit-adapter-bitcoin'
    import { WagmiAdapter } from '@reown/appkit-adapter-wagmi'

    import { mainnet, arbitrum, sepolia, bitcoin, bitcoinTestnet, bitcoinSignet } from '@reown/appkit/networks'

    const networks: [AppKitNetwork, ...AppKitNetwork[]] = [mainnet, arbitrum, sepolia, bitcoin, bitcoinTestnet, bitcoinSignet]

    // 0. Get projectId from https://dashboard.reown.com
    const projectId = 'YOUR_PROJECT_ID'

    // 1. Create the Wagmi adapter
    export const wagmiAdapter = new WagmiAdapter({
      ssr: true,
      projectId,
      networks
    })

    // 2. Set up Bitcoin Adapter
    const bitcoinAdapter = new BitcoinAdapter({
      projectId
    })

    // 3. Set up the metadata - Optional
    const 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 instance
    const modal = createAppKit({
      adapters: [wagmiAdapter, bitcoinAdapter],
      networks,
      metadata,
      projectId,
      features: {
        analytics: true,
      }
    })
    ```
  </Tab>

  <Tab title="Ethers + Solana">
    ```ts theme={null}
    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 adapter
    export const ethersAdapter = new EthersAdapter()

    // 1. Create Solana adapter
    const solanaWeb3JsAdapter = new SolanaAdapter()

    // 2. Get projectId from https://dashboard.reown.com
    const projectId = 'YOUR_PROJECT_ID'

    // 3. Set up the metadata - Optional
    const 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 instance
    const modal = createAppKit({
    adapters: [ethersAdapter, solanaWeb3JsAdapter],
    networks,
    metadata,
    projectId,
    features: {
    analytics: true,
    }
    })

    ```
  </Tab>

  <Tab title="Ethers5 + Solana">
    ```ts theme={null}
    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 adapter
    export const ethersAdapter = new EthersAdapter()

    // 1. Create Solana adapter
    const solanaWeb3JsAdapter = new SolanaAdapter()

    // 2. Get projectId from https://dashboard.reown.com
    const projectId = 'YOUR_PROJECT_ID'

    // 3. Set up the metadata - Optional
    const 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 instance
    const modal = createAppKit({
      adapters: [ethersAdapter, solanaWeb3JsAdapter],
      networks: [mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet],
      metadata,
      projectId,
      features: {
        analytics: true,
      }
    })
    ```
  </Tab>

  <Tab title="Core">
    ```ts theme={null}
    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://dashboard.reown.com
    const projectId = "YOUR_PROJECT_ID";

    // 2. Set up the metadata - Optional
    const 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 instance
    const modal = createAppKit({
      networks: [mainnet, arbitrum, sepolia, solana, solanaTestnet, solanaDevnet],
      metadata: metadata,
      projectId,
      features: {
        analytics: true,
      },
    });
    ```
  </Tab>
</Tabs>

## Solana Adapter Configuration

The `SolanaAdapter` accepts configuration options to customize its behavior.

### registerWalletStandard

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

```ts theme={null}
const solanaWeb3JsAdapter = new SolanaAdapter({
  registerWalletStandard: true,
  wallets: [/* only show these specific wallets */]
})
```

### wallets

Array of custom Solana wallet adapters to include alongside the default WalletConnect functionality.

```ts theme={null}
import { HuobiWalletAdapter } from '@solana/wallet-adapter-wallets'

const solanaWeb3JsAdapter = new SolanaAdapter({
  registerWalletStandard: true,
  wallets: [new HuobiWalletAdapter()]
})
```
