// the find
okx/go-wallet-sdk
Multi-chain golang signature sdk, supports bitcoin, ethereum, solana, ton, etc.
A Go library from OKX for offline wallet operations — key generation, address derivation, transaction construction, and signing — across 20+ chains. Each chain lives in its own Go module under `coins/`, so you only pull in what you need. Built for exchange/wallet infrastructure teams who need deterministic, network-free signing across heterogeneous chains.
- Per-chain Go modules means Bitcoin doesn't drag in Solana's dependencies. You can `go get github.com/okx/go-wallet-sdk/coins/bitcoin` and stop there.
- Bitcoin coverage is genuinely deep: legacy, SegWit, Taproot, PSBT, BRC20, Atomicals, Runes, Doginals — not just basic P2PKH.
- The build script with `build_failures.log` and selective re-run (`sh build.sh failed`) is a practical choice for a repo with this many independent modules — CI for a monorepo of Go modules is annoying to get right.
- Tests use hardcoded hex fixtures rather than live network calls, which is the correct approach for signing code — reproducible and offline.
- Each chain is a separate Go module with its own `go.mod`, but there's no workspace file (`go.work`) to tie them together for local development. You're stuck using the shell script and can't do a single `go test ./...` from the root.
- Documentation is shallow: each `coins/X/README.md` shows a few function calls with no explanation of the signing model, key derivation paths, or which HD standard is being used. If you're implementing a new chain and need to understand the pattern, you're reading source.
- No versioned releases on individual modules — CHANGELOG exists but the modules aren't tagged in a way that gives Go's module proxy a clean `@v1.2.3` to pin. You're effectively always pulling HEAD.
- The Aptos module has both a root package and a `v2/` subdirectory with a different API surface and no migration guide. If you start with the root package, you'll discover the v2 redesign later and have to refactor.