Skip to main content

Recommended: JavaScript SDK for React Native

While this SDK is still supported, we recommend using newer JavaScript SDK, which is optimized for React Native, but also comes with a host of other benefits.
External wallets let users sign up and log in to your app using wallets they already own, such as MetaMask or Phantom. On mobile, these connections happen via WalletConnect, which deep links to the user’s wallet app for approval.
External wallets and embedded wallets are completely compatible. A user can start with an embedded wallet and also link their branded wallet, or vice versa.

Enable External Wallet Login

1

Enable Chains

Enable the chains you want to support in the Chains section of the dashboard. We support Ethereum, all EVM-compatible networks, Solana, and more.
2

Enable Wallet Login

In the Log in & User Profile section of the dashboard, toggle on Wallet Log in under “External Wallets”.
3

Set Up Deep Links

External wallet connections on mobile rely on deep links to redirect users between your app and their wallet app.
Make sure you’ve set up your deep link URLs correctly. See Deeplink URLs.

Multi-Wallet

In the dashboard under External Wallets, you can toggle on Multi-Wallet. When enabled, users can connect more than one wallet to their account and switch between them without signing out. Learn more on the Multi-Wallet page.

How WalletConnect Works on Mobile

When a user connects an external wallet in React Native, the SDK uses WalletConnect under the hood. The flow is:
  1. Your app presents a list of available wallets
  2. The user taps a wallet (e.g. MetaMask)
  3. The SDK generates a WalletConnect URI and deep links to the wallet app
  4. The user approves the connection in their wallet app
  5. The wallet app redirects back to your app with the connection established
This all happens automatically when you use connectWallet — you don’t need to manage WalletConnect sessions directly.

Using Our UI

Once enabled, external wallet login is available by default in the Dynamic UI. Simply show the auth flow and users will see available wallets:
React Native

Using Your UI

Fetch Available Wallets

Access the list of available wallets through the walletOptions property. Each option includes metadata about the wallet, including whether it uses WalletConnect.
React Native

Connect to a Wallet

Use connectWallet with the wallet’s key to initiate the connection. On mobile, this automatically handles the WalletConnect deep link flow — opening the wallet app for approval and returning the connected wallet when done.
React Native

Filter WalletConnect Wallets

You can filter wallets to show only WalletConnect-compatible options, or separate them into categories:
React Native
You can also filter wallets at the client level using walletsFilter in your client configuration:
React Native

Access Connected Wallets

Once a wallet is connected, access it through userWallets and primary:
React Native

Wallet Operations

After connecting, you can perform operations on any connected wallet:
React Native

Listen for Wallet Events

React to wallet state changes using event listeners:
React Native

Connected vs Authenticated

By default, external wallets use “connect-and-sign” mode, where users both connect their wallet and sign a message to prove ownership. You can also use “connect-only” mode where users just connect without signing. Read about the implications of each mode in Connected vs Authenticated to decide what’s right for your use case.

Further Reading

Multi-Wallet

Allow users to connect multiple wallets to their account.

Link/Unlink Wallets

Link additional wallets after authentication.

Wallet Events

Listen to wallet state changes and events.

External Wallets Overview

Deep dive into external wallet configuration.
Last modified on July 24, 2026