关于 building-with-base-account
building-with-base-account 是面向开发者的 Base Account 集成技能,介绍 SDK 快速入门及各项功能的参考资料。它还列出交易验证、弹窗处理和凭据保护等关键要求。
主要功能
- 01SDK 安装与初始化示例
- 02登录认证与后端验证指引
- 03支付、订阅及子账户参考
- 04批量交易与 Gas 赞助能力指引
- 05安全和弹窗处理要求
适用场景
- 01在应用中集成 Base Account
- 02实现登录或 USDC 支付
- 03开发订阅、子账户或批量交易功能
- 04排查弹窗及钱包调用问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ base/ skills --skill building-with-base-account安装后在 Claude Code 中输入/building-with-base-account确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/authentication.mdcapabilities.mdpayments.mdprolinks.mdsub-accounts.mdsubscriptions.mdtroubleshooting.md详细介绍
使用 Base Account 构建
Base Account 是一个 ERC-4337 智能钱包,提供通用单点登录、一键 USDC 支付和多链支持(Base、Arbitrum、Optimism、Zora、Polygon、BNB、Avalanche、Lordchain、Ethereum Mainnet)。
快速入门
npm install @base-org/account @base-org/account-ui
import { createBaseAccountSDK } from '@base-org/account';
const sdk = createBaseAccountSDK({
appName: 'My App',
appLogoUrl: 'https://example.com/logo.png',
appChainIds: [8453], // Base Mainnet
});
const provider = sdk.getProvider();
功能参考
请阅读与你正在实现的功能相关的参考文档:
| 功能 | 参考文档 | 阅读时机 |
|---|---|---|
| 使用 Base 登录 | references/authentication.md | 钱包身份验证、SIWE、后端验证、SignInWithBaseButton、Wagmi/Privy 配置 |
| Base Pay | references/payments.md | 一键 USDC 支付、payerInfo、服务端验证、BasePayButton |
| 订阅 | references/subscriptions.md | 定期扣款、支出权限、CDP 钱包配置、扣款/撤销生命周期 |
| 子账户 | references/sub-accounts.md | 应用专属嵌入式钱包、密钥生成、资金注入 |
| 功能 | references/capabilities.md | 批量交易、Gas 赞助(Paymaster)、原子执行、auxiliaryFunds、归因 |
| Prolinks | references/prolinks.md | 可分享的支付链接、二维码、编码后的交易 URL |
| 故障排除 | references/troubleshooting.md | 弹窗问题、Gas 用量、不支持的调用、迁移、文档链接 |
关键要求
安全
- 跟踪交易 ID,防止重放攻击
- 验证发送方与通过身份验证的用户一致,防止冒充
- 使用代理,防止 Paymaster URL 暴露在前端
- Paymaster 提供商必须符合 ERC-7677
- 切勿在客户端暴露 CDP 凭据(仅限订阅后端)
弹窗处理
- 在用户点击“登录”之前生成 nonce,避免弹窗拦截器阻止弹窗
- 使用
Cross-Origin-Opener-Policy: same-origin-allow-popups same-origin会导致 Base Account 弹窗无法正常工作
Base Pay
- Base Pay 可独立于 SIWB 使用——调用
pay()无需身份验证 getPaymentStatus()中的testnet参数必须与pay()调用一致- 切勿仅根据链上余额禁用操作——请检查
auxiliaryFunds功能
子账户
- 每个会话都要在使用前调用
wallet_addSubAccount - 更换设备或浏览器后,所有权可能发生变化
- 导入时仅支持 Coinbase Smart Wallet 合约
智能钱包
- ERC-6492 包装器可在钱包部署前验证签名
- Viem 的
verifyMessage/verifyTypedData会自动处理此问题
边缘情况和最新 API 变更
- 面向 AI 优化的文档:docs.base.org/llms.txt
- 完整参考文档:docs.base.org/base-account
评论
支持 Markdown