Skip to content

useWalletConnections

A connection is one approved wallet instance (walletId) — one extension slot or one WalletConnect session. The same brand can appear more than once. This is not a row from useAvailableWallets.

This hook reads those instances from WalletsProvider, plus the active wallet. To open a wallet, use useConnectWallet. Field list: Connected wallets (Core).

Example

tsx
import { useConnectWallet, useWalletConnections } from '@swapped/connect-sdk/react'

function ConnectedWallets() {
  const {
    connections,
    isRestoring,
    connectionState,
    activeWalletId,
    setActiveWallet,
  } = useWalletConnections({
    sort: 'connectedAt',
  })
  const { disconnect } = useConnectWallet()

  if (isRestoring) return <p>Restoring…</p>

  return (
    <ul>
      {connections.map(connection => (
        <li key={connection.walletId}>
          <button
            type="button"
            onClick={() => setActiveWallet(connection.walletId)}
          >
            {connection.name} · {connection.transport}
            {connection.walletId === activeWalletId ? ' (active)' : ''}
          </button>
          <button
            type="button"
            onClick={() => void disconnect(connection.walletId)}
          >
            Disconnect
          </button>
        </li>
      ))}
    </ul>
  )
}

Options

FieldMeaning
sort?'connectedAt' — newest first. 'balanceDesc' — highest USD total first (uses cached balances)

Returns

FieldMeaning
connectionsWalletConnection[] (sorted if sort is set)
activeWalletIdActive instance id, or null
activeWalletActive WalletConnection, or null
setActiveWallet(walletId)Select a connected instance
isRestoringBackground restore still running
pairingUriCurrent WalletConnect URI
pairingDeeplinkUrlCurrent WalletConnect mobile deep link
connectionStateFull WalletsConnectionState (connectingProviders, errors, …)

WalletConnection fields: walletId, provider, transport, name, icon, namespaces, accounts, connectedAt, isRestored, status (connected / checking / needsReconnect), expiresAt, requiresPopup. sessionTopic is WalletConnect-only (support / debug). Details: Connected wallets (Core).

sortWalletConnections is exported from @swapped/connect-sdk if you sort a list yourself.

Sign / send use status === 'connected'. Connected wallets persist across restartSession().