Skip to content

Metamask

Thiendekaco edited this page Apr 4, 2024 · 3 revisions

@subwallet-connect/metamask

Wallet module for connecting MetaMask Wallet SDK to SubConnect

The MetaMask SubConnect module provides a reliable, secure, and seamless connection from your dapp to the MetaMask browser extension and MetaMask Mobile. See MetaMask SDK Developer Docs

MetaMask SDK ConnectionFlow

Install

npm i @subwallet-connect/metamask

If using this package with the @subwallet-connect/injected-wallets module

When utilizing this package alongside the @subwallet-connect/injected-wallets module, ensure to list this package prior to the initialized injected-wallets module within the wallets list of the SubConnect init. This order prioritizes the SDK when a MetaMask browser wallet is detected, allowing the SDK to take precedence.

Options

// For a complete list of options check https://docs.metamask.io/wallet/how-to/connect/set-up-sdk/
interface MetaMaskSDKOptions {
  dappMetadata: {
    url?: string;
    name?: string;
    base64Icon?: string;
  },
  /**
   * If MetaMask browser extension is detected, directly use it without prompting the user.
   */
  extensionOnly?: boolean;
}

Usage

import Onboard from '@subwallet-connect/core'
import metamaskSDK from '@subwallet-connect/metamask'

// initialize the module with options
const metamaskSDKWallet = metamaskSDK({options: {
  extensionOnly: false,
  dappMetadata: {
    name: 'Demo SubConnect'
  }
}})

const onboard = Onboard({
  // ... other Onboard options
  wallets: [
    metamaskSDKWallet,
    //... other wallets
    // Make sure to pass in before or above the injected-wallets module
    injectedWalletModule
  ]
})

const connectedWallets = await onboard.connectWallet()
console.log(connectedWallets)
Clone this wiki locally