Skip to main content
Checks whether a specific wallet provider supports connecting via a hardware wallet vendor (e.g., Ledger). Use this before presenting hardware wallet options to the user, or to filter the list of available providers to only those compatible with a hardware device.

Usage

import {
  getAvailableWalletsToConnect,
  canConnectWithHardwareWallet,
} from '@dynamic-labs-sdk/client';

const ledgerProvider = getAvailableWalletsToConnect().find((provider) =>
  canConnectWithHardwareWallet({
    walletProviderKey: provider.key,
    hardwareWalletVendor: 'ledger',
  })
);

if (ledgerProvider) {
  console.log(`${ledgerProvider.name} supports Ledger`);
}

Parameters

ParameterTypeDescription
walletProviderKeystringThe key identifying the wallet provider. Use getAvailableWalletsToConnect() to get available providers and their keys
hardwareWalletVendorHardwareWalletVendorThe hardware wallet vendor to check for. Currently 'ledger'
clientDynamicClient (optional)The Dynamic client instance. Only required when using multiple clients.

Returns

booleantrue if the wallet provider declares support for the given hardware wallet vendor, false otherwise.

Examples

Filter providers to Ledger-compatible ones

import {
  canConnectWithHardwareWallet,
  getAvailableWalletsToConnect,
} from '@dynamic-labs-sdk/client';

const allProviders = getAvailableWalletsToConnect();

const ledgerProviders = allProviders.filter((provider) =>
  canConnectWithHardwareWallet({
    walletProviderKey: provider.key,
    hardwareWalletVendor: 'ledger',
  })
);

Connect with the first available Ledger provider

import {
  getAvailableWalletsToConnect,
  canConnectWithHardwareWallet,
  connectWithWalletProvider,
} from '@dynamic-labs-sdk/client';

const ledgerProvider = getAvailableWalletsToConnect().find((provider) =>
  canConnectWithHardwareWallet({
    walletProviderKey: provider.key,
    hardwareWalletVendor: 'ledger',
  })
);

if (ledgerProvider) {
  const walletAccount = await connectWithWalletProvider({
    walletProviderKey: ledgerProvider.key,
    hardwareWalletVendor: 'ledger',
  });
}