Skip to main content

Connect to Core Mobile

Core Mobile connects to dapps over WalletConnect. It is not an injected wallet: none of the extension detection methods will find it, and window.avalanche does not exist in mobile browsers.

How the flow works

  1. Your dapp displays a WalletConnect pairing — a QR code on desktop, or a deep link on mobile.
  2. The user scans or taps it and approves the session in Core Mobile.
  3. Your dapp gets a session and sends requests (eth_sendTransaction, personal_sign, …) over the WalletConnect relay; each one appears in Core Mobile for approval.

Using Reown AppKit

WalletConnect's client SDK is Reown AppKit (the successor to Web3Modal — older guides may still use that name). With the Wagmi adapter:

import { createAppKit } from '@reown/appkit/react';
import { WagmiAdapter } from '@reown/appkit-adapter-wagmi';
import { avalanche, avalancheFuji } from '@reown/appkit/networks';

// Get a projectId at https://dashboard.reown.com
const projectId = 'YOUR_PROJECT_ID';

const wagmiAdapter = new WagmiAdapter({
networks: [avalanche, avalancheFuji],
projectId,
});

createAppKit({
adapters: [wagmiAdapter],
networks: [avalanche, avalancheFuji],
projectId,
metadata: {
name: 'Example dapp',
description: 'Example dapp description',
url: 'https://example.com',
icons: ['https://example.com/icon.png'],
},
});

AppKit renders the connection modal; users find Core in the wallet list, or scan the QR code directly from Core Mobile.

Already using Wagmi or RainbowKit? Both bundle WalletConnect support — configure a projectId and Core Mobile works alongside the extension with no extra code.

Session behaviour worth knowing

  • Sessions survive app restarts, but the relay requires the wallet to come online to receive requests — prompt mobile users to open Core when a request seems stuck.
  • chainChanged and accountsChanged arrive over the session like their injected counterparts; handle them the same way.