海狸 ETH 钱包开发全记录:从零到钱包连接协议支持

·

📌 项目缘起

从一个对 NFT 存储的好奇心开始,我曾先用 IPFS 做了一款小工具,借此熟悉了链上存储的模式。但“看懂 NFT”只是第一步,我更想深挖 dApp 与钱包之间的交互逻辑,于是决定亲手写一款以太坊钱包——取名「海狸」。动手一周后,核心功能已全部跑通,现将关键步骤、踩坑心得与扩展规划一并整理,供后来者快速上手 以太坊钱包开发

🗂 核心功能清单

  1. 多账户钱包 创建钱包、导入钱包(私钥、助记词)。
  2. 余额与行情 实时 ETH 余额、法币汇率自动换算。
  3. 转账收发 普通转账、签名交易一次搞定。
  4. walletConnect 协议 已完整对接 V2,并兼容 V1。
👉 想快速看到海狸钱包 Demo?点击下方 GPU 环境可秒级体验全功能。

🔧 技术选型

🚀 功能拆解与开发进度

模块状态备注
钱包创建管理同时支持 HD 钱包与裸私钥。
网络切换一键转战以太坊主网 / 测试网 / BSC。
转账支持 EIP-1559 手续费调节。
多语言🔄中/英 已完成,日/韩计划中。
夜间模式🔄颜色主题跟随系统。
以太坊 APIInfura & Alchemy 双节点备用。
汇率 API每 30 秒拉取一次 CoinGecko 数据。
walletConnect V2 Sign会话建立、签交易、签消息。
walletConnect V2 Auth可颁发链下身份凭证。
walletConnect V1 兼容🔄通过[Bridge 迁移脚本]已跑通测试网。

首页布局

添加钱包流程

  1. 主界面点击 “钱包列表” → 底部弹出菜单:

    • 创建新钱包(自动给出助记词)。
    • 导入:私钥、助记词宽匹配,BIP-44 / BIP-32 路径 自动识别。
  2. 多重加密:使用 SecureStore 存私钥,默认 Android Keystore / iOS Keychain。

转账体验

卡包管理

交易记录

🔐 walletConnect V2 深度实操

如果想让去中心化应用与钱包安全通信,walletConnect V2 是当前最优解,优势在于:

接入体验细节

  1. 钱包端实现 @walletconnect/[email protected],监听 session_proposal 事件。
  2. 建立会话后可返回 accounts 列表供 dApp 调取;支持多条链共用一个会话。
  3. 已覆盖三类授权:

    • eth_sendTransaction(标准转账/合约调用);
    • personal_sign(消息签名认证登录);
    • eth_signTypedData_v4(拍卖挂单、NFT 订单签名)。
👉 如何 10 分钟内跑通 walletConnect demo?点我获取全栈代码与环境说明。

常见错误速查

📈 下一步规划

  1. 插件市场:允许高级用户把代码片段塞进钱包内部运行时(沙盒)。
  2. NFT 画廊:整合 IPFS 网关预览 + 链上元数据解析。
  3. DApp 入口:集成 WalletLink + 自定义白名单,缩短「发现 → 交易」路径。
  4. L2 友好:Arbitrum、Optimism 网络免手动添加 RPC。

🔥 常见问题 (FAQ)

Q1:助记词放本地会不会不安全?
A:助记词加密后存 Keychain,App 卸载数据即消失,物理隔离最安全。若怕被系统备份截走,可关闭云备份开关。

Q2:为什么金额和链上浏览器展示差 0.01 USD?
A:汇率每 30 秒更新一次,不同平台取价源差异会导致微幅跳动;可在设置里切换 Binance / CoinGecko / CoinMarketCap 来源。

Q3:walletConnect 能连仿盘「测试网」吗?
A:测试链默认写进 namespaces,若 dApp 链接仍失败,多半是 [WalletConnect 中继 URL 属地] 被封,换海外节点即可。

Q4:以后支持 BTC、Solana 吗?
A:优先深耕 EVM 生态,再扩展到比特币/ Solana,但底层仍会保留「多链抽象层」以方便后续集成。

Q5:当年私钥输错次数过多会不会锁定账户?
A:不会;密码层只会做延时抖动验证,默认 5 次重试后每次+1 秒,防止暴力破解。

Q6:如何贡献代码?
A:在本机 pnpm install 完成依赖,运行 pnpm android:dev 即可本地调试;遵循 commitlint 规范提 PR 即可。