Skip to content

docs: add wallet provider migration guide for Base App WebView (2026)#1433

Open
schoolkamsergj wants to merge 1 commit into
base:masterfrom
schoolkamsergj:fix/wallet-provider-base-app-webview-2026
Open

docs: add wallet provider migration guide for Base App WebView (2026)#1433
schoolkamsergj wants to merge 1 commit into
base:masterfrom
schoolkamsergj:fix/wallet-provider-base-app-webview-2026

Conversation

@schoolkamsergj
Copy link
Copy Markdown

Summary

Adds a new technical guide covering the breaking wallet provider change introduced by Base App's April 2026 update.

Base App now opens mini-apps in a standard WebView instead of a Farcaster mini-app host. This causes sdk.wallet.getEthereumProvider() to hang indefinitely — no error, no timeout — breaking any mini-app that relies on the SDK for wallet access.

This guide documents the issue and provides a working detection + fallback pattern.

What's added

docs/apps/technical-guides/wallet-provider-base-app-webview-2026.mdx

  • Detection pattern using sdk.isInMiniApp() to distinguish Base App WebView from true Farcaster embed (Warpcast)
  • Fallback to injected EIP-1193 (window.ethereum / window.coinbaseWalletExtension) for Base App WebView context
  • Comparison table: which SDK calls work vs hang in Base App WebView
  • Full wagmi example with farcasterMiniApp() + injected() connectors and auto-connect hook

Context

Discovered while building a mini-app on Base mainnet. The app silently hung on every transaction when opened via Base App — no console error, no rejection, just an indefinite loading state. Root cause: sdk.isInMiniApp() returns false in Base App WebView, so the Farcaster host is never present.

Fixes #1420

Tested

  • Verified on Android with Base App (post-April 2026 update)
  • Confirmed window.ethereum injected provider works correctly as fallback
  • sdk.isInMiniApp() correctly returns false in Base App WebView, true in Warpcast

Closes base#1420

Base App's April 2026 update changed mini-app launch behavior from a
Farcaster mini-app host to a standard WebView. This breaks
sdk.wallet.getEthereumProvider() — it hangs indefinitely.

This guide covers:
- How to detect Base App WebView vs true Farcaster embed
- How to fall back to injected EIP-1193 (window.ethereum)
- Why sdk.isInMiniApp() returns false in Base App WebView
@cb-heimdall
Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/2
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Docs] Mini App wallet provider migration guide needed: Base App in-app browser (post-April 2026)

2 participants