Skip to main content
This is an enterprise-only feature. Please contact us to enable.
On Flutter the hosted connect page contract is the same as every other platform, using Chrome Custom Tabs on Android and ASWebAuthenticationSession on iOS. The basic integration is fireblocks_connect.dart. For a fully native wallet list with signing (and optional send), see Flutter headless.
flutter_web_auth_2 wraps both platform auth-session APIs in one call. It is the Flutter equivalent of iOS’s ASWebAuthenticationSession and Android’s Chrome Custom Tabs.
fireblocks_connect.dart
models.dart

1. Add dependencies

pubspec.yaml

2. Register your URL scheme

For iOS, add to ios/Runner/Info.plist.
Info.plist
For Android, add inside your <activity> in AndroidManifest.xml.
AndroidManifest.xml
Phantom connects inside its own in-app browser, and its “Return to app” button opens <scheme>://wallet-return without any connection data while the system browser is still waiting for the result. Your app must accept that URL without acting on it:
  • iOS. Turn off Flutter’s deep linking in Info.plist so the URL does not push a route. If your app routes deep links itself, ignore the wallet-return host there.
  • Android. Catch the host in its own activity that only finishes. It must not reach MainActivity, because resuming the Flutter app makes flutter_web_auth_2 cancel the pending authenticate().
Info.plist
AndroidManifest.xml
WalletReturnActivity.kt

3. Connect and use the result

connect_button.dart
Pass locale and theme (plain strings, e.g. 'es_LA', 'dark') the same way to override the hosted page’s UI locale and theme. walletImage is usually an SVG-sprite URL. Render it in a WebViewWidget rather than Image.network.
Real wallet round-trips require a physical device.
Last modified on October 1, 2026