Let users sign in to your Android app with wallets they already own, such as MetaMask or Phantom.
External wallets — also called externally owned accounts (EOAs) — are wallets users bring to your app, such as MetaMask, Phantom, or Rainbow. They are different from embedded wallets, which Dynamic creates and manages for the user.When external wallet login is enabled, users can sign up or log in by connecting an existing wallet through the Dynamic auth UI. The SDK handles the wallet app handoff and returns the connected wallet.
Go to Chains & Networks in the Dynamic Console and enable the chains you want to support (e.g. EVM, Solana).
Go to Log in & User Profile in the Dynamic Console and toggle on Wallet Log in under External Wallets.
Go to Security → Whitelist Mobile Deeplink and add the same URL you use for redirectUrl (e.g. myapp://). This is required for the wallet app to return to your app after approval.
appOrigin is required for external wallet connections. Use the HTTPS origin that represents your app (for example, https://your-app.com).
External wallet connections open the wallet app using deep links. The wallet app then redirects back to your app using the redirectUrl you configured.The SDK includes AuthCallbackActivity to handle OAuth and wallet redirects. Add the intent filter in android/app/src/main/AndroidManifest.xml:
The simplest way to let users connect an external wallet is to show the Dynamic auth UI. The SDK presents available wallet options, opens the selected wallet app, and handles the redirect automatically.
val sdk = DynamicSDK.getInstance()sdk.ui.showAuth()