Skip to main content
This is an enterprise-only feature. Please contact us to enable.
On React Native the Connections contract is the same as the web and iOS, run in a web auth session. Works in Expo and bare React Native with Expo modules. The whole integration is one file, FireblocksConnect.ts.
Use expo-web-browser’s openAuthSessionAsync — it’s ASWebAuthenticationSession on iOS and Chrome Custom Tabs on Android, the same “open web, return via a callback scheme” primitive, run ephemerally (no consent prompt).

1. Install the modules

All three work in Expo and bare React Native.
terminal

2. Register your URL scheme

For Expo, set it in app.json. For bare React Native, add it to Info.plist (CFBundleURLTypes) and an Android intent-filter in AndroidManifest.xml.
app.json

3. Connect and use the result

One call. The nonce is verified for you, and some wallets (Phantom) return out-of-band and are handled inside connectWallet via an expo-linking listener — so, unlike the raw iOS integration, you don’t wire onOpenURL yourself.
ConnectButton.tsx
walletImage is usually an SVG-sprite URL — render it in a react-native-webview <img> rather than <Image>.

Common pitfalls

  • Test on a physical device. Wallets don’t run in the Simulator, so real wallet round-trips require a real device.
  • Serve over HTTPS. The flow mints WalletConnect URIs via WebCrypto, which needs a secure context.
  • Phantom has no WalletConnect option; the hosted page routes it to its in-app browser and this module catches the return. Validate on device.
Last modified on August 7, 2026