1. Wallets
  2. Walletconnect

Wallets

Walletconnect

Wallet module for connecting Wallet Connect to web3-onboard

WARNING

Not all Wallets support WalletConnect V2 currently. For an up to date list please see the WalletConnect Explorer

Install

Options

        type WalletConnectOptions = {
	bridge?: string; // default = 'https://bridge.walletconnect.org'
	qrcodeModalOptions?: {
		mobileLinks: string[]; // set the order and list of mobile linking wallets
	};
	connectFirstChainId?: boolean; // if true, connects to the first network chain provided
	/**
	 * Optional function to handle WalletConnect URI when it becomes available
	 */
	handleUri?: (uri: string) => Promise<unknown>;
} & (
	| {
			/**
			 * Defaults to version: 1 - this behavior will be deprecated after the WalletConnect v1 sunset
			 */
			version?: 1;
	  }
	| {
			/**
			 * Project ID associated with [WalletConnect account](https://cloud.walletconnect.com)
			 */
			projectId: string;

			/**
			 * Defaults to version: 1 - this behavior will be deprecated after the WalletConnect v1 sunset
			 */
			version: 2;
			/**
			 * List of Required Chain(s) ID for wallets to support in number format (integer or hex)
			 * Defaults to [1] - Ethereum
			 * The chains defined within the web3-onboard config will define the
			 * optional chains for the WalletConnect module
			 */
			requiredChains?: number[] | undefined;
			/**
			 * `undefined` by default, see https://docs.walletconnect.com/2.0/web3modal/options
			 */
			qrModalOptions?: Web3ModalConfig;
	  }
);

      

Usage

        import Onboard from '@web3-onboard/core';
import walletConnectModule from '@web3-onboard/walletconnect';

const wcV1InitOptions = {
	bridge: 'YOUR_CUSTOM_BRIDGE_SERVER',
	qrcodeModalOptions: {
		mobileLinks: ['metamask', 'argent', 'trust']
	},
	connectFirstChainId: true
};

const wcV2InitOptions = {
	version: 2,
	/**
	 * Project ID associated with [WalletConnect account](https://cloud.walletconnect.com)
	 */
	projectId: 'abc123...',
	/**
	 * Optional function to handle WalletConnect URI when it becomes available
	 */
	handleUri: (uri) => console.log(uri)
};

// initialize the module with options
// If version isn't set it will default to V1 until V1 sunset
const walletConnect = walletConnectModule(wcV2InitOptions || wcV1InitOptions);

// can also initialize with no options...
// Defaults to V1 until V1 sunset
// const walletConnect = walletConnectModule()

const onboard = Onboard({
	// ... other Onboard options
	wallets: [
		walletConnect
		//... other wallets
	]
});

const connectedWallets = await onboard.connectWallet();
console.log(connectedWallets);

      

Build Environments

For build env configurations and setups please see the Build Env section here