什么是 Go-Wallet-SDK?
Go-Wallet-SDK 是基于 Golang 的跨链钱包签名与交易构建库,旨在为开发者提供「离线创建私钥、安全组装交易、快速签名广播」的一站式解决方案。
借助该 钱包签名 SDK,你可以:
- 完全离线生成私钥与地址
- 通过标准派生路径(BIP44)管理多币种资产
- 同一套代码对接 BTC、ETH、Cosmos、Solana 等 30+ 主链
- 直接嵌入 Web、移动端或桌面插件,无需第三方节点即可签名交易
支持平台
- 语言:Go 1.18+
- 运行时:Linux、macOS、Windows
- 集成场景:RESTful 服务、微服务、CLI 工具、Go 原生移动端(Gomobile)
安装与构建
一键引入最新版本
打开终端输入下方命令即可拉取公共包:
go get github.com/okx/go-wallet-sdk若只需单币种能力,可精准拉取对应模块:
# Ethereum 单模块示例
go get github.com/okx/go-wallet-sdk/coins/ethereum构建完成后,你将在 go.mod 中看到对应的版本号,无需额外配置即可开始开发。
项目结构速览
go-wallet-sdk
├── crypto # 常用加密算法
├── coins
│ ├── bitcoin
│ ├── ethereum
│ ├── ...
└── tests # 全链路测试用例核心功能拆解
| 模块 | 关键词 | 场景举例 |
|---|---|---|
crypto | BIP32, BIP39, ECDSA, ED25519 | 助记词导入、私钥派生、地址验证 |
coins | BTC, ETH, Solana, Aptos… | 交易组装、离线签名、PSBT、元交易 |
tests | 单元测试、集成测试 | 快速理解每个函数的最佳实践 |
亮点速读
- 零信任:所有私钥均保存在本地侧,SDK 不联网上传任何敏感信息。
- 易拓展:新增一条链仅需创建单币种文件夹,继承统一接口即可。
单链模块详解
下文依次拆解 16 条主流链的调用方式与场景。为方便阅读,已删除重复外链,可直接 go get 后参考 GitHub 源码进行本地单元测试。
Aptos 链
- 交易类型:转账、Token 转移、NFT 红包、模拟执行等
关键函数
NewAddress(privKey)ValidateAddress(addr)SignRawTransaction(tx, privKey)
Bitcoin & 家族
支持 BTC、BSV、LTC、DOGE、TBTC。
- 支持原生 SegWit(bech32)、P2SH、Taproot 地址
- 可生成未签名的 PSBT 供硬件钱包签名
- 示例代码片段:
psbtHex, _ := bitcoin.GenerateUnsignedPSBTHex(inputs, outputs, fee)Cosmos 生态
Atom、Evmos、Juno、Osmosis…一次开发,全链通用。
- 统一调用
Transfer即可完成 IBC 转账调度。
Ethereum 与 EVM 系列
- 主网 + 30+ L2 与侧链一键切换(Arbitrum、Optimism、zkSync、Base…)
SignMessage可兼容 EIP-712 结构签名,适配 Lens、Farcaster 等去中心化社交协议。
Flow、Solana、Tron …
每条链均提供 NewAddress 与 SignTransaction 两类最小化 API,结合派生路径即可一统管理。
FAQ:开发者最关心的 5 件事
Q1:如何避免误将测试网私钥发布到主网?
A:SDK 强制在派生路径中加入链 ID;同时在示例代码中加入环境变量判断,开发阶段限定测试网 RPC。
Q2:怎样验证地址合法性?
A:所有汇率格式地址均有 ValidateAddress 函数;内部会做长度、校验和、前缀三重检查,返回布尔值。
Q3:硬件钱包支持进度如何?
A:当前版本通过 PSBT 与 EIP-712 兼容 Ledger/Trezor;官方将在下一个 minor 版本开放 WebHID 直连。
Q4:Go 1.19 改用泛型,会对现有接口有影响吗?
A:无影响。接口保持向后兼容,后续仅对内部实现做泛型重构,对外零侵入。
Q5:能否直接用该 SDK 跑节点?
A:SDK 专注钱包侧。若需节点功能,可组合轻量级节点(如 btcd、geth light)+ 本地签名流程实现完全去信任架构。
Q6:多币种批量签名一次搞定?
A:用主仓库的复合示例即可。代码仓库 examples/batch_sign 演示了借助 goroutine 并发批量签名,实测 1000 笔交易 < 3 秒。
常见币种与派生路径摘要(精简版)
本节选录高频链的派生路径与链 ID,方便复制:
- Bitcoin 主网(P2PKH)
m/44'/0'/0'/0/0 - Ethereum 全系(Layer1 & Layer2)
m/44'/60'/0'/0/0 - Solana
m/44'/501'/0'/0 - Aptos
m/44'/637'/0'/0/0
完整列表见 GitHub README。
实战流程:从 0 到首笔主网交易
第 1 步:本地环境初始化
mkdir gowallet-demo && cd gowallet-demo go mod init demo go get github.com/okx/go-wallet-sdk第 2 步:生成主网 BTC 地址
priv := bitcoin.NewPrivateKey() addr := bitcoin.NewAddress(priv.PubKey(), bitcoin.MainNet) fmt.Println(addr.EncodeAddress())第 3 步:构建并签名交易
raw, err := bitcoin.SignTx(inputs, outputs, fee, priv)- 第 4 步:广播到节点
使用任何 Bitcoin RPC 即可广播raw。
测试用例与示例
每个模块都附带 100% 覆盖单元测试 与 本地仿真网络脚本。
- 位置:
tests/文件夹 - 推荐命令:
go test ./... -race -cover
后续路线图
- 2025 Q3:新增 MoveVM 家族(Sui、Aptos)官方 Asset-DID 支持
- 2025 Q4:引入 MPC 门限签名库,配合 TEE 实现多人共同控制钱包
通过本文的 Go 签名 SDK 关键词与场景解析,你现已拥有快速集成 Web3 钱包、DEX 签名、构造交易的全部蓝图。随时拉取最新代码,按需裁剪模块,即可让应用获得链上资产能力,而无需依赖第三方托管。