Description
Base App's April 2026 update changed mini-app launch behavior from a
Farcaster mini-app host to a standard WebView. This causes
sdk.wallet.getEthereumProvider() to hang indefinitely — no error,
no timeout, no rejection.
Root Cause
sdk.isInMiniApp() returns false in Base App WebView since the
Farcaster host is not present. Any code that calls
sdk.wallet.getEthereumProvider() without checking this first will
hang forever.
Impact
- Any mini-app relying on the Farcaster SDK for wallet access is
silently broken when opened via Base App
- No console error, no rejection — just an indefinite loading state
- Affects all developers who built mini-apps before April 2026
Suggested Fix
Detect Base App WebView using sdk.isInMiniApp() and fall back to
injected EIP-1193 provider:
const isInMiniApp = await sdk.isInMiniApp();
const provider = isInMiniApp
? await sdk.wallet.getEthereumProvider()
: window.ethereum ?? window.coinbaseWalletExtension;
References
Description
Base App's April 2026 update changed mini-app launch behavior from a
Farcaster mini-app host to a standard WebView. This causes
sdk.wallet.getEthereumProvider()to hang indefinitely — no error,no timeout, no rejection.
Root Cause
sdk.isInMiniApp()returnsfalsein Base App WebView since theFarcaster host is not present. Any code that calls
sdk.wallet.getEthereumProvider()without checking this first willhang forever.
Impact
silently broken when opened via Base App
Suggested Fix
Detect Base App WebView using
sdk.isInMiniApp()and fall back toinjected EIP-1193 provider:
References