Skip to content

Availability ​

Wallets the partner can offer for signature verification on this device - not already-connected instances, and not Connect payment methods.

getAvailable intersects enabled signature integrations with wallets this SDK can drive, then adds what the page can see (extensions / EIP-6963). Coinbase is not in this list - that path is Coinbase.

How to run a verification after the user picks a row: Verify wallet.

Methods ​

MethodWhat it does
getAvailable({ network? })Signature wallets this device can offer. Pass network to keep one family (evm / solana). Each row’s provider goes into verify()
requiresDeepLink(provider)true when this device opens verification inside the wallet app instead of WalletConnect. Collect address first
supportsWalletConnect(provider)true when you should show a WalletConnect QR from onUri for this wallet on this device
ts
const wallets = await client.wallets.getAvailable({ network: 'evm' })

Pass network to keep wallets that support that family (evm → EVM, solana → Solana). Omit it to list every signature wallet.

The integrations list is cached for 10 minutes. If that request fails, the SDK still returns configured signature wallets so the picker can render.

WalletVerificationAvailableWallet ​

Same routing fields as Connect AvailableWallet, except icon is a light / dark pair.

FieldMeaning
providerIntegrationProvider - pass this to verify()
nameLabel to show in the picker
icon{ light, dark } CDN URLs, each string | null
isInstalledExtension is visible on this page
injectedNamespacesNamespaces the installed extension covers (eip155, solana, bip122). Empty if not installed
supportsWalletConnectWalletConnect is offered for this wallet on this device. false when the wallet uses a browse deeplink
transportsTransports usable right now (injected and/or walletconnect)
isPopupConnectionInjected connect for this wallet opens a popup
isDeepLinkConnectionThis device opens verification in the wallet app (for example Phantom / Coinbase Wallet on mobile; MetaMask / Bitget on iOS)
qrScanTargetHow to label a desktop QR: 'camera' (browse URL), 'wallet-app' (WalletConnect wc: URI), or null

transports is empty when neither injected nor WalletConnect is usable right now. The wallet can still appear; isDeepLinkConnection is the other path.

Picker UI ​

SituationWhat to show
isInstalledConnect / verify button
Desktop, not installed, supportsWalletConnectWalletConnect QR (onUri)
isDeepLinkConnectionOpen in wallet / browse QR (onDeeplinkUrl). address is required
isPopupConnectionAllow popups; the SDK opens a tab for connect and sign
ts
if (client.wallets.requiresDeepLink(wallet.provider)) {
  // collect `address`, then verify() - see Verify wallet
}

if (client.wallets.supportsWalletConnect(wallet.provider)) {
  // ready to show a WalletConnect QR from onUri
}

qrScanTarget === 'camera' means the QR is an HTTPS URL the phone camera can open. 'wallet-app' means a WalletConnect URI the wallet app scans.

A provider with no SDK wallet config throws WALLET_NOT_SUPPORTED if you try to verify it.