Skip to content

Configuring external wallets

Privy supports displaying many different external wallets in the login modal. Some supported external wallets may come with additional functionality that can be configured on the config.externalWallets property of the PrivyProvider.

INFO

As of today, Coinbase Wallet is the only configurable external wallet with their Smart Wallet feature.

Coinbase Smart Wallet

Privy supports connecting through both the Coinbase Smart Wallet and legacy Coinbase Wallet extension and mobile app. By default, Privy disables the Smart Wallet for backwards compatibility but you can easily enable it per the instructions below.

TIP

Smart Wallet supports a limited number of chains. If using all or smartWalletOnly connection options, be sure that your PrivyProvider default chain and supported chains list is a subset of Coinbase's supported list.

In order to enable or optionally enable the Smart Wallet, you can set the config.externalWallets.coinbaseWallet.connectionOptions property of the PrivyProvider:

tsx
<PrivyProvider
  appId="your-privy-app-id"
  config={{
    externalWallets: { 
      coinbaseWallet: { 
        // Valid connection options include 'eoaOnly' (default), 'smartWalletOnly', or 'all'
        connectionOptions: 'smartWalletOnly', 
      }, 
    }, 
    ...insertTheRestOfYourPrivyProviderConfig,
  }}
>
  {children}
</PrivyProvider>

The following are valid connectionOptions property values:

  • eoaOnly: (default) The Privy SDK will only surface the Coinbase Wallet extension or Coinbase Wallet mobile app QR code. Users who do not have it installed will be prompted to install it.
  • smartWalletOnly: The Privy SDK will surface the Coinbase Smart Wallet for all users.
  • all: The Privy SDK will detect whether the user has the Coinbase wallet extension installed. It will pop up the Coinbase wallet extension if they do and the Smart Wallet otherwise.