WalletListEntry array to the config.appearance.walletList property. When users login with, connect, or link an external wallet in your app, the possible options (e.g. MetaMask, Rainbow, WalletConnect) will be presented to users in the order you configure them in this array.
When your React web app is accessed through the in-app browser of a mobile wallet (e.g., Rainbow,
Phantom, etc.) and that wallet is selected as a login option, the Privy SDK will automatically
detect the wallet object and prompt the user to connect in app. However, if your app is accessed
via a standard browser (e.g., Chrome, Safari, etc.), Privy will default to using WalletConnect for
mobile wallet connection.
walletList to the connectWallet method:
Available Wallet List Entries
Special Entries
| Entry | Chain Support | Platform | Description |
|---|---|---|---|
detected_ethereum_wallets | Ethereum | Desktop | All detected Ethereum browser extensions not explicitly listed elsewhere |
detected_solana_wallets | Solana | Desktop | All detected Solana browser extensions not explicitly listed elsewhere |
wallet_connect | Both* | Both | Shows ALL WalletConnect registry wallets (100+ options) as individual buttons (*see limitation) |
wallet_connect_qr | Ethereum | Desktop | Shows single “WalletConnect” button with QR code for Ethereum |
wallet_connect_qr_solana | Solana | Desktop | Shows single “WalletConnect” button with QR code for Solana |
About
detected_*_wallets: These entries only include wallets that are not explicitly
listed elsewhere in your walletList. For example, if you include both 'metamask' and
'detected_ethereum_wallets', MetaMask will appear at the position of 'metamask', not under
detected_ethereum_wallets.Ethereum Wallets
metamask- MetaMask browser extension and mobile walletcoinbase_wallet- Coinbase Walletrainbow- Rainbow walletzerion- Zerion walletsafe- Safe (formerly Gnosis Safe)uniswap- Uniswap Walletkraken_wallet- Kraken Walletbinance- Binance Walletokx_wallet- OKX Walletbybit_wallet- Bybit Walletbitget_wallet- Bitget Wallet (formerly BitKeep)cryptocom- Crypto.com DeFi Walletuniversal_profile- Universal Profileronin_wallet- Ronin Walletbase_account- Base Account (formerly Coinbase Smart Wallet)
Solana Wallets
phantom- Phantom wallet (supports both Ethereum and Solana)solflare- Solflare walletbackpack- Backpack walletjupiter- Jupiter wallethaha_wallet- Haha wallet
Deprecated Entries
-
detected_wallets- Deprecated. Usedetected_ethereum_walletsordetected_solana_walletsinstead -
rabby_wallet- Deprecated. Rabby Wallet is no longer supported
Understanding WalletConnect Options
wallet_connect vs wallet_connect_qr vs wallet_connect_qr_solana
- wallet_connect
- wallet_connect_qr
- wallet_connect_qr_solana
Shows: A searchable list of 100+ individual WalletConnect-supported wallets, each with its
own connection button.Best for:
- Desktop users who want to browse available wallets
- Supporting the long-tail of wallets not explicitly in your list
- When you want users to see all WalletConnect options
WalletConnect Configuration FAQ
Why do I see wallets I didn’t configure?
If you includewallet_connect in your walletList, Privy will show ALL wallets from the WalletConnect registry that support your configured chains. To show only specific wallets, remove wallet_connect and list individual wallets explicitly.
Why isn’t my wallet showing up?
Common causes and solutions:- Chain mismatch - Solana wallets require
walletChainType: 'solana-only'or'ethereum-and-solana'
-
Not in walletList - The wallet must be explicitly included or covered by
detected_*_wallets -
Mobile browser limitations - Wallets aren’t injected in mobile web browser environments, with the exception of the in-app browser for a few wallets (see In-App Browsers). Thus,
detected_*_walletswill show empty in mobile environments
- Extension not installed - Browser extension wallets only appear if installed (unless using
wallet_connect)
What does detected_ethereum_wallets / detected_solana_wallets do?
These entries show ALL wallets that Privy detects (via EIP-6963, window.ethereum, or mobile in-app browsers) that aren’t explicitly listed elsewhere in your walletList.
Important ordering rule:
Why am I seeing “No wallets found” on mobile?
This typically happens when you only havedetected_*_wallets or wallet_connect_qr entries in your walletList on mobile browsers where they aren’t supported.
Fix:
Can I use WalletConnect’s modal directly?
No. Privy handles wallet connections through its own UI for a consistent experience. Attempting to use WalletConnect’s modal directly will result in an error:wallet_connect, wallet_connect_qr, or wallet_connect_qr_solana in your walletList.
How does wallet ordering work?
Wallets appear in the exact order you specify inwalletList. Wallets matching detected_*_wallets entries appear at that position in the list, sorted alphabetically within their group.
How do I support a wallet that’s not in the detected list?
- If the wallet supports WalletConnect: Add
wallet_connectto yourwalletListas a fallback - If it’s a popular wallet: Check if it has a dedicated entry in the list above
- If it’s a new/niche wallet: Use
wallet_connectto provide access through the WalletConnect registry
Platform Considerations
Mobile Browser Limitations
Wallets aren’t injected in mobile web browser environments, with the exception of the in-app browser for a few wallets (see In-App Browsers section below). Thus, addingdetected_ethereum_wallets or detected_solana_wallets will show empty in mobile environments.
On mobile:
- ✅ Works: Specific wallet names (like
'metamask','phantom'),wallet_connect(full registry) - ❌ Doesn’t work:
wallet_connect_qr,wallet_connect_qr_solana,detected_ethereum_wallets,detected_solana_wallets
In-App Browsers
On mobile, some wallets will connect via the in-app browser of that wallet’s mobile app. These wallets include:- Phantom (Ethereum and Solana)
- Backpack (Ethereum and Solana)
- OKX Wallet (Ethereum and Solana)
- Solflare (Solana only)
- Jupiter Wallet (Solana only)
- The wallet is automatically detected
- No additional configuration needed
- The detected wallet is prioritized regardless of
walletListorder
Desktop Optimization
For desktop-focused apps, emphasize detected wallets and browser extensions:Dynamic Platform Configuration
You can show different wallets based on the user’s platform:Quick Reference
Wallet List Entry Cheat Sheet
Wallet List Entry Cheat Sheet
| Entry | Shows | Platform | Chain Support |
|---|---|---|---|
detected_ethereum_wallets | All detected EVM browser extensions | Desktop (browser extensions), Mobile (in-app browsers only) | Ethereum |
detected_solana_wallets | All detected Solana browser extensions | Desktop (browser extensions), Mobile (in-app browsers only) | Solana |
wallet_connect | List of 100+ WalletConnect wallets | Desktop, Mobile | Both |
wallet_connect_qr | Universal QR code button | Desktop only | Ethereum |
wallet_connect_qr_solana | Universal QR code button | Desktop only | Solana |
metamask | MetaMask option | Desktop (extension), Mobile (deep link/in-app) | Ethereum |
phantom | Phantom option | Desktop (extension), Mobile (deep link/in-app) | Solana (+ Ethereum with config) |
coinbase_wallet | Coinbase Wallet option | Desktop, Mobile | Ethereum |
rainbow | Rainbow option | Desktop, Mobile | Ethereum |
wallet_connect_qr and wallet_connect_qr_solana are desktop-only features and will not display on mobile browsers.Solana wallets require: externalWallets.solana.connectors configuration and appropriate walletChainType setting.Using the Base Account (formerly Coinbase Smart Wallet)
Using the Base Account (formerly Coinbase Smart Wallet)
Coinbase Smart Wallet is now Base Account. If you support Coinbase Smart Wallet, you should add the
base_account option to your walletList while keeping coinbase_wallet if you’d like to maintain support for existing Coinbase Smart Wallet users.For more details, see the Base Account migration guide.Related Resources
- Wallet List Configuration Recipes - Practical examples for common use cases
- Configuring External Connectors - Setting up Solana and EVM connectors
- Connecting External Wallets - Using the
connectWalletmethod

