[Docs] Mini App wallet provider migration guide needed: Base App in-app browser (post-April 2026)
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 62/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- javascript
- Domain
- documentation
Research direction
Locate the mini-app wallet documentation and review its existing provider and SDK guidance first. Use the supplied Base App and Warpcast behavior, timeout patterns, upstream issue, and reference commit to add the migration section; done means the docs explain detection, injected-provider fallback, and safe handling of hanging SDK calls.
Written by the indexing model from the issue text.
Description
Problem
Base App's April 2026 update changed how mini-apps are launched: they now open in a standard in-app WebView instead of a Farcaster mini-app host. This is a breaking change for any mini-app that uses @farcaster/miniapp-sdk for wallet access.
The current docs don't cover:
- How to detect Base App in-app browser vs. true Farcaster embed (Warpcast)
- How to fall back to injected EIP-1193 provider (
window.ethereum/coinbaseWalletExtension) in Base App - The
sdk.actions.ready()/sdk.wallet.getEthereumProvider()hang issue specific to Base WebView
This causes mini-apps to silently hang on transactions — no error, no timeout, just an indefinite loading state.
Suggested Addition
A "Wallet Provider Migration for Base App 2026" section in the mini-app docs covering:
Detection pattern
// Base App (post-April 2026) does NOT act as Farcaster mini-app host.
// sdk.isInMiniApp() returns false — use injected EIP-1193 instead.
async function getProvider(sdk) {
const isEmbed = await Promise.race([
sdk.isInMiniApp(),
new Promise(resolve => setTimeout(() => resolve(false), 1000))
]);
if (isEmbed) {
return sdk.wallet.getEthereumProvider(); // Warpcast / true Farcaster host
}
// Base App or regular browser: use injected wallet
return window.coinbaseWalletExtension
?? window.ethereum
?? null;
}
ready() timeout pattern
// In Base App, ready() never resolves — wrap with timeout:
await Promise.race([
sdk.actions.ready(),
new Promise((_, reject) => setTimeout(() => reject(), 5000))
]).catch(() => { /* continue, Base App doesn't need ready() ack */ });
Working Reference Implementation
This exact pattern was implemented and verified on Base mainnet in a real mini-app:
- Commit: https://github.com/schoolkamsergj/base-invaders/commit/64fb7b2b5b9f4e142d5d85642353fd4e62512cca
- Live app: https://base-invaders-nine.vercel.app
- What was fixed: daily check-in and leaderboard transactions hanging indefinitely in Base App, working correctly in Warpcast
Impact
Any mini-app using @farcaster/miniapp-sdk for wallet transactions that:
- Was built before April 2026
- Relies on
getEthereumProvider()from the SDK - Is listed in Base App discovery
...will silently break for all Base App users without this migration.
Related SDK Issue
Filed upstream: farcasterxyz/miniapps#608
Happy to contribute a PR with the docs addition if that would help.
- Dominant language
- JavaScript
- Stars
- 337
- Forks
- 798
- Avg merge
- 19h 15m
- Merged PRs (30d)
- 57
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from base/docs
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
Similar issues
-
area/install-update comp/cli comp/desktop P3 sweeper:risk-compatibility type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
NousResearch/hermes-agent#122386 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
security
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
IBM/node-sdk-core#373 ·
-
docs web/
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100