Go-wallet-sdk 是一个基于 Go 语言的钱包解决方案,包括了各条公链不同的密码学算法和常用功能,可以使用它离线进行私钥、地址的创建,组装交易,以及进行签名等等。本文档将详细介绍如何使用此 SDK。目前,它已经支持各种主流的区块链,每种币种类别都有独立的模块实现,我们将在未来持续增加对更多区块链的支持。
作为一个 Go SDK,可以轻松地集成到 Web 应用、移动应用或桌面应用中。
要使用签名 SDK,首先需要安装它,你可以使用 go get
安装来获取到最新版本。
我们的签名 SDK 支持两种类型的包:公共包和单币种模块。
公共包,针对所有币种:
go get -u github.com/okx/go-wallet-sdk/crypto
集成单个币种,以 ETH 和 BTC 为例:
集成 ETH:
go get -u github.com/okx/go-wallet-sdk/coins/ethereum
集成 BTC:
go get -u github.com/okx/go-wallet-sdk/coins/bitcoin
以下是签名 SDK 中每个模块的具体功能介绍。
包名 | 模块 | 描述 |
---|---|---|
github.com/okx/go-wallet-sdk/crypto | crypto | 我们提供关于 bip32、bip39、ecdsa、ed25519 等的通用函数。 |
github.com/okx/go-wallet-sdk/coins/aptos | aptos | Aptos SDK 用于与 Aptos 区块链交互,包含可用于 web3 钱包的各种函数。 |
github.com/okx/go-wallet-sdk/coins/bitcoin | bitcoin | Bitcoin SDK 用于与 Bitcoin 主网或测试网交互,包含可用于 web3 钱包的各种函数。SDK 不仅支持 Bitcoin,还支持以下链:BTC, BSV, DOGE, LTC, TBTC。 |
github.com/okx/go-wallet-sdk/coins/cosmos | cosmos | Cosmos SDK 用于与 Cosmos 区块链交互,包含可用于 web3 钱包的各种函数。 |
github.com/okx/go-wallet-sdk/coins/eos | eos | EOS SDK 用于与 EOS 区块链交互,包含可用于 web3 钱包的各种函数。SDK 不仅支持 EOS,还支持 WAX。 |
github.com/okx/go-wallet-sdk/coins/ethereum | ethereum | Ethereum SDK 用于与 Ethereum 区块链或 EVM 区块链交互,包含可用于 web3 钱包的各种函数。 |
github.com/okx/go-wallet-sdk/coins/flow | flow | Flow SDK 用于与 Flow 区块链交互,包含可用于 web3 钱包的各种函数。 |
github.com/okx/go-wallet-sdk/coins/near | near | Near SDK 用于与 Near 协议交互,包含与 Near 生态系统交互时需要的主要函数。 |
github.com/okx/go-wallet-sdk/coins/polkadot | polkadot | Polkadot SDK 用于与 Polkadot 区块链交互,包含与 Polkadot 生态系统交互时需要的主要函数。 |
github.com/okx/go-wallet-sdk/coins/solana | solana | Solana SDK 用于与 Solana 链交互,包含与 Solana 生态系统交互时需要的主要函数。 |
github.com/okx/go-wallet-sdk/coins/stacks | stacks | Stacks SDK 用于与 Stacks 区块链交互,包含可用于 web3 钱包的各种函数。 |
github.com/okx/go-wallet-sdk/coins/starknet | starknet | Starknet SDK 用于与 Starknet 区块链交互,包含可用于 web3 钱包的各种函数。 |
github.com/okx/go-wallet-sdk/coins/sui | sui | SUI SDK 用于与 SUI 区块链交互,包含可用于 web3 钱包的各种函数。 |
github.com/okx/go-wallet-sdk/coins/tron | tron | TRX SDK 用于与 TRON 区块链交互,包含可用于 web3 钱包的各种函数。 |
github.com/okx/go-wallet-sdk/coins/zkspace | zkspace | ZKSpace SDK 用于与 ZK 合约交互,包含可用于 web3 钱包的各种函数。SDK 不仅支持 ZKSpace,还支持 zkSync。 |
这是一个包含了 BIP32, BIP39, ECDSA, ED25519 等常用的安全加密和签名算法的实现,例如:
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/crypto
Aptos SDK 主要用集成 Aptos 区块链,包含有私钥生成、私钥派生、生成地址、交易转帐等功能函数。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/aptos
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新的地址 |
ValidateAddress | 验证地址的有效性 |
SignRawTransaction | 对交易进行签名 |
Aptos 交易支持类型有:
"transfer"、"tokenTransfer"、"tokenMint"、"tokenBurn"、"tokenRegister"、"dapp"、"simulate"、"offerNft"、"claimNft"、"offerNft_simulate"、"claimNft_simulate"
关于 aptos-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
bitcoin-sdk 是一个用于集成 Bitcoin 区块链的 SDK,它支持 Bitcoin 的主网和测试网,并提供了一系列的功能函数,使开发者能够更方便地与 Bitcoin 区块链进行交互。除了 BTC,它还支持 BSV、DOGE、LTC 和 TBTC 等币种。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/bitcoin
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新的地址 |
SignTx | 对交易进行签名 |
GenerateUnsignedPSBTHex | PSBT生成交易 |
关于 bitcoin-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
Cosmos SDK 是一个用于集成 Cosmos 架构的区块链的工具包,它提供了一系列的功能函数,包括生成私钥、派生私钥、生成地址和交易转账等。它支持的币种包括:
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/cosmos
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
Transfer | 签署交易 |
SignMessage | 签署消息 |
关于 cosmos-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
EOS SDK 是一个用于集成 EOS 区块链的工具包,它提供了一系列的功能函数,包括生成私钥、派生私钥、生成地址和交易序列化等。除了 EOS 外,它还支持 WAX 币种。 这些功能函数使开发者能够更方便地与 EOS 区块链进行交互,包括创建和管理钱包,发送和接收交易,以及查询区块链信息等。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/eos
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
SignTransaction | 签署交易 |
关于 eos-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
Ethereum SDK 是一个用于集成 Ethereum 区块链和其他支持 EVM(以太坊虚拟机)的区块链的工具包。它提供了一系列的功能函数,包括生成私钥、派生私钥、生成地址和交易转账等。 这些功能函数使开发者能够更方便地与 Ethereum 区块链进行交互,包括创建和管理钱包,发送和接收交易,以及查询区块链信息等。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/ethereum
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
SignTransaction | 签署交易 |
SignMessage | 签署消息 |
关于 ethereum-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
Flow 区块链是一个新一代的、面向未来的区块链平台,它专为高性能应用和游戏而设计。 Flow SDK 是一个用于集成 Flow 区块链的工具包,包含多种用于集成 web3 钱包的功能函数。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/flow
支持函数:
函数名称 | 功能 |
---|---|
CreateNewAccountTx | 创建地址 |
SignTx | 签署交易 |
Flow 交易支持类型有:Account 和 Transfer
关于 flow-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
Near 协议是一个可扩展的区块链平台,它通过使用新颖的共识机制和分片技术,实现了高吞吐量和低延迟的交易处理。Near SDK 使开发者能够更方便地开发和部署在 Near 区块链上的应用。 Near SDK 是一个用于集成 Near 协议的工具包,包含多种用于集成 web3 钱包的功能函数。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/near
支持函数:
函数名称 | 功能 |
---|---|
NewAccount | 通过种子获取地址 |
SignTransaction | 签署交易 |
关于 near-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
Polkadot 是一个多链异构的区块链平台,它允许各种区块链网络以共享的安全模型并行运行,同时还能实现链与链之间的信息和价值的无缝转移。 Polkadot SDK 是一个用于集成 Polkadot 区块链的工具包,包含多种用于集成 web3 钱包的功能函数。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/polkadot
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过种子获取地址 |
SignTx | 签署交易 |
关于 polkadot-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
Solana 是一个高性能的区块链平台,它通过创新的共识算法和区块产生机制,实现了高吞吐量和低延迟的交易处理。 Solana SDK 是一个用于集成 Solana 区块链的工具包,包含多种用于集成 web3 钱包的功能函数。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/solana
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
SignTransaction | 签署交易 |
关于 solana-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
Stacks 是一个开源的区块链平台,它允许开发者在 Bitcoin 区块链上构建智能合约和去中心化应用。 Stacks SDK 主要用集成 Stacks 区块链,包含多种用于集成 web3 钱包的功能函数。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/stacks
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
Transfer | 签署交易 |
关于 stacks-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
StarkNet 是一个去中心化的、可扩展的区块链网络,它使用了零知识证明技术来提高交易处理的效率和安全性。 StarkNet SDK 是一个用于集成 StarkNet 区块链的工具包,它提供了一系列的功能函数,使开发者能够更方便地与 StarkNet 区块链进行交互。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/starknet
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
CreateSignedContractTx | 签署交易 |
关于 starknet-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
SUI SDK 是一个用于集成 SUI 区块链的工具包,包含多种用于集成 web3 钱包的功能函数。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/sui
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
SignTransaction | 签署交易 |
SignMessage | 签署消息 |
注意:与 secp256k1 不同的是,ed25519 的私钥派生只支持 hard 模式的派生,详情参见:https://github.com/satoshilabs/slips/blob/master/slip-0010.md
关于 sui-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
TRON SDK 是一个用于集成 SUI 区块链的工具包,包含多种用于集成 web3 钱包的功能函数。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/tron
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
SignTransaction | 签署交易 |
关于 tron-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
ZKSpace SDK 主要用集成 ZK 合约,包含多种用于集成 web3 钱包的功能函数,除了 ZKSpace 外,还支持 ZKSync。
通过 go get
获取最新版本的包:
go get -u github.com/okx/go-wallet-sdk/coins/zkspace
支持函数:
函数名称 | 功能 |
---|---|
NewAddress | 通过私钥获取新地址 |
CreateSignTransferTx | 签署交易 |
交易签名支持 data 类型有:transfer 和 changePubkey
关于 zkspace-sdk 包支持的功能函数和使用案例,更加详细内容可以查看 github 文档。
在 github 上,每个模块对应的 package 下有一个 tests
目录,放有各个币种模块的测试用例,可以通过测试用例了解到更多关于 SDK 中函数的用法。
币种 | 测试用例 |
---|---|
BTC | 测试用例 |
ETH | 测试用例 |
Cosmos | 测试用例 |
Aptos | 测试用例 |
EOS | 测试用例 |
Solana | 测试用例 |
Stacks | 测试用例 |
Starknet | 测试用例 |
Sui | 测试用例 |
Tron | 测试用例 |
Zkspace | 测试用例 |
Flow | 测试用例 |
Near | 测试用例 |
Polkadot | 测试用例 |
币族 | 币种 | 派生路径 |
---|---|---|
BTC | BTC | 常规地址: m/44'/0'/0/0'/0 隔离见证: m/49'/0'/0/0'/0 m/84'/0'/0/0'/0 m/86'/0'/0/0'/0 |
BTC | BCH | m/44'/145'/0'/0/0 |
BTC | BSV | m/44'/236'/0'/0/0 |
BTC | LTC | m/44'/2'/0'/0/0 |
BTC | Doge | m/44'/3'/0'/0/0 |
BTC | TBTC | m/44'/0'/0/0'/0 |
BTC | Omni usdt | m/44'/0'/0/0'/0 |
ETH | ETH | m/44'/60'/0'/0/0 |
ETH | Arbitrum One | m/44'/60'/0'/0/0 |
ETH | Arbitrum Nova | m/44'/60'/0'/0/0 |
ETH | Avalanche C | m/44'/60'/0'/0/0 |
ETH | Boba | m/44'/60'/0'/0/0 |
ETH | BNB Chain | m/44'/60'/0'/0/0 |
ETH | Base | m/44'/60'/0'/0/0 |
ETH | Core | m/44'/60'/0'/0/0 |
ETH | Cronos(EVM) | m/44'/60'/0'/0/0 |
ETH | Celo | m/44'/60'/0'/0/0 |
ETH | Conflux(EVM) | m/44'/60'/0'/0/0 |
ETH | Endurance | m/44'/60'/0'/0/0 |
ETH | EthereumPoW | m/44'/60'/0'/0/0 |
ETH | EthereumFair | m/44'/60'/0'/0/0 |
ETH | Filecoin EVM | m/44'/60'/0'/0/0 |
ETH | Fantom | m/44'/60'/0'/0/0 |
ETH | Flare | m/44'/60'/0'/0/0 |
ETH | Gnosis | m/44'/60'/0'/0/0 |
ETH | Goerli | m/44'/60'/0'/0/0 |
ETH | HAQQ Network | m/44'/60'/0'/0/0 |
ETH | Klaytn | m/44'/60'/0'/0/0 |
ETH | KCC | m/44'/60'/0'/0/0 |
ETH | Kava EVM | m/44'/60'/0'/0/0 |
ETH | Linea | m/44'/60'/0'/0/0 |
ETH | Metis | m/44'/60'/0'/0/0 |
ETH | Moonebeam | m/44'/60'/0'/0/0 |
ETH | Moonriver | m/44'/60'/0'/0/0 |
ETH | Mantle | m/44'/60'/0'/0/0 |
ETH | Omega Network | m/44'/60'/0'/0/0 |
ETH | OKTC | m/44'/60'/0'/0/0 |
ETH | Optimism | m/44'/60'/0'/0/0 |
ETH | opBNB | m/44'/60'/0'/0/0 |
ETH | Polygon | m/44'/60'/0'/0/0 |
ETH | Polygon zkEVM | m/44'/60'/0'/0/0 |
ETH | PulseChain | m/44'/60'/0'/0/0 |
ETH | Sepolia | m/44'/60'/0'/0/0 |
ETH | zkSync Era | m/44'/60'/0'/0/0 |
ETH | ZetaChian | m/44'/60'/0'/0/0 |
Cosmos | Atom | m/44'/118'/0'/0/0 |
Cosmos | Axelar | m/44'/118'/0'/0/0 |
Cosmos | Cronos | m/44'/394'/0'/0/0 |
Cosmos | Osmos | m/44'/118'/0'/0/0 |
Cosmos | Evmos | m/44'/60'/0'/0/0 |
Cosmos | Iris | m/44'/118'/0'/0/0 |
Cosmos | Juno | m/44'/118'/0'/0/0 |
Cosmos | Kava | m/44'/459'/0'/0/0 |
Cosmos | Kujira | m/44'/118'/0'/0/0 |
Cosmos | Secret | m/44'/529'/0'/0/0 |
Cosmos | Sei | m/44'/118'/0'/0/0 |
Cosmos | Stargaze | m/44'/118'/0'/0/0 |
Cosmos | Terra | m/44'/330'/0'/0/0 |
Aptos | Aptos | m/44'/637'/0'/0/0 |
EOS | EOS | m/44'/194'/0'/0/0 |
Solana | Solana | m/44'/501'/0'/0/0 |
Stacks | Stacks | m/44'/5757'/0'/0/0 |
ETH layer 2 | Starknet | m/44'/9004'/0'/0/0 |
SUI | SUI | m/44'/784'/0'/0/0 |
TRX | TRON | m/44'/195'/0'/0/0 |
ETH layer 2 | ZKSpace | m/44'/60'/0'/0/0 |
ETH layer 2 | zkSync | m/44'/60'/0'/0/0 |