概述
Go Signing SDK 是一款基于 Go 语言开发的区块链钱包解决方案,集成了多种主流公链的加密算法与核心功能。开发者可通过该 SDK 实现私钥创建、地址生成、交易组装与签名等操作,大幅降低多链钱包的开发门槛。本文档将详细介绍其核心功能、安装方法与应用场景。
当前版本已支持比特币、以太坊、Cosmos 等数十条主流区块链,每条链均以独立模块形式提供实现。未来将持续扩展更多公链支持,助力开发者快速构建安全可靠的 Web3 应用。
适用平台
作为标准的 Go 语言 SDK,它可轻松集成至各类应用中:
- Web 应用程序(后端服务)
- 移动端应用(Android/iOS 跨平台开发)
- 桌面应用程序(Windows/macOS/Linux)
安装与构建
通过 Go GET 安装
使用以下命令获取最新版本:
go get github.com/okx/go-wallet-sdkSDK 提供两种包类型:
- 公共包:包含跨链通用功能(如加密算法、编码工具)
- 单币种模块:按链独立封装(如以太坊、比特币等)
以 ETH 和 BTC 为例的集成方式:
// ETH 集成
import "github.com/okx/go-wallet-sdk/coins/ethereum"
// BTC 集成
import "github.com/okx/go-wallet-sdk/coins/bitcoin"核心功能模块
加密算法库 (crypto)
提供区块链开发中常用的安全算法实现:
- BIP32/BIP39:分层确定性钱包规范,支持助记词生成与密钥派生
- ECDSA/ED25519:椭圆曲线数字签名算法,满足不同链的签名需求
- 哈希与编解码:SHA256、Base64 等通用工具函数
多链支持模块 (coins)
每个币种对应独立模块,目前包含以下主流区块链:
| 模块名称 | 支持链 | 核心功能 |
|---|---|---|
bitcoin | BTC, BSV, DOGE, LTC, TBTC | 地址生成、PSBT 交易签名 |
ethereum | ETH 及所有 EVM 兼容链 | 交易签名、消息签名 |
cosmos | ATOM, IRIS, OSMO 等 13 条链 | 转账交易签名 |
solana | SOL | 账户创建、交易签名 |
polkadot | DOT | 地址派生、交易构建 |
aptos | APT | 多类型交易处理 |
| 其他模块 | EOS, NEAR, SUI 等 | 各链专属功能封装 |
详细功能说明
以太坊模块 (ethereum)
专为 ETH 及 EVM 兼容链设计,提供:
NewAddress():从私钥生成标准地址SignTransaction():交易签名SignMessage():消息签名
比特币模块 (bitcoin)
支持比特币及分叉链的核心功能:
NewAddress():生成隔离见证/传统地址SignTx():交易签名GenerateUnsignedPSBTHex():创建 PSBT 交易
Cosmos 生态模块
覆盖 Cosmos 生态 13 条主流链:
// 支持链包括:ATOM, AXELAR, CRONOS, EVMOS, IRIS, JUNO, KAVA, KUJIRA, OSMOS, SECRET, SEI, STARGAZE, TERRA特色模块亮点
- Flow 模块:专为高性能应用链设计,支持账户创建与交易签名
- Starknet 模块:集成零知识证明技术,提供合约交易签名功能
- zkSync 模块:支持 Layer2 交易的签名与地址生成
测试与验证
每个模块均提供完整测试用例,位于 GitHub 仓库的 tests 目录下。开发者可通过这些测试代码:
- 了解 API 调用方式
- 验证签名逻辑正确性
- 学习不同链的交易构建模式
常见问题
如何选择适合的派生路径?
不同链使用不同的 BIP44 派生路径:
- 比特币:
m/44'/0'/0'/0/0 - 以太坊:
m/44'/60'/0'/0/0 - Cosmos:
m/44'/118'/0'/0/0 - 完整路径表可在文档末节查看
是否支持硬件钱包集成?
SDK 专注于软件层面的密钥管理,如需连接硬件钱包,建议结合相应的硬件 SDK 共同使用。本 SDK 可处理交易数据的组装与验证环节。
如何处理不同链的交易手续费?
各模块已内置手续费计算逻辑:
- UTXO 链(如比特币):支持动态手续费计算
- 账户模型链(如以太坊):支持 Gas Price 和 Gas Limit 设置
- 具体参数请参考各模块的文档说明
遇到签名错误如何排查?
- 确认使用的派生路径与链类型匹配
- 检查交易数据格式是否符合链要求
- 查看对应模块的测试用例参考正确用法
- 验证私钥格式是否正确解码
是否支持国密算法?
当前版本主要支持国际标准算法(SECP256K1、ED25519等),如需国密算法支持可关注后续版本更新。
如何贡献代码或反馈问题?
欢迎通过 GitHub 提交 Issue 或 Pull Request,包括:
- 新链的支持建议
- 现有功能的改进方案
- 测试用例的补充
支持的币种与派生路径
| 链类型 | 币种 | 派生路径 |
|---|---|---|
| BTC | BTC | m/44'/0'/0'/0/0 |
| ETH | ETH及所有EVM链 | m/44'/60'/0'/0/0 |
| Cosmos | ATOM | m/44'/118'/0'/0/0 |
| Aptos | APT | m/44'/637'/0'/0/0 |
| Solana | SOL | m/44'/501'/0'/0/0 |
| 其他 | 完整列表参见文档 | - |
通过本 SDK,开发者可快速构建支持多链的钱包应用,专注于业务逻辑而非底层加密细节。持续更新的链支持和经过验证的算法实现,为 Web3 项目提供安全可靠的基础设施保障。