[Docs] Mini App wallet provider migration guide needed: Base App in-app browser (post-April 2026)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 62/100
- Issue 类型
- 文档
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- javascript
调研方向
找到 mini-app wallet 文档,并先审查其中现有的 provider 和 SDK 指南。使用所提供的 Base App 和 Warpcast 行为、超时模式、upstream issue 和 reference commit 添加迁移部分;完成的标准是文档说明检测、injected-provider fallback 以及对挂起的 SDK 调用进行安全处理。
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- JavaScript
- 星标
- 337
- 派生
- 798
- 平均合并
- 19 小时 12 分钟
- 30 天内合并 PR
- 60
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
base/docs 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 92/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 92/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 95/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 95/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 95/100
维护者通常 1 天内回复
相似的 Issue
-
Complexity: Small P-Feature: Projects page ready for merge team role: back end/devOps role: front end size: 0.25pt
难度 1/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 67/100
bellingcat/toolkit#905 ·
-
self-care self-care:docs-build-time-investigator
难度 2/5 半天 新手友好度 76/100
githubnext/gh-aw-cao#14191 ·
维护者通常 1 天内回复
-
effort:low impact:medium RAG status: auto-triaged
难度 2/5 1-3 小时 新手友好度 84/100
mastra-ai/mastra#25229 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
sugarlabs/musicblocks#8984 ·
维护者通常 1 天内回复