BSV Go monorepo — SDK, wallet toolbox, overlay services, messaging, and supporting infrastructure.
packages/sdk/ — Core SDK, transaction building, script templates
packages/wallet/ — Wallet toolbox, 402-pay
packages/overlays/ — Overlay services, discovery
packages/messaging/ — Paymail
packages/network/ — Broadcast, broadcast-client
packages/middleware/ — BSV auth middleware
infra/ — Deployable services (Dockerfile + cmd/server)
conformance/ — Conformance runner (see PLAN_GO.md in mbga)
Libraries live in packages/ (workspace modules). Runnable services live in infra/ (each with its own Dockerfile and cmd/server/main.go), mirroring ts-stack's split. Apps (ARC, Arcade, merkle-service, go-broadcast-app) remain separate repos.
| Module | Path |
|---|---|
| go-sdk | github.com/bsv-blockchain/go-sdk |
| go-subtree | github.com/bsv-blockchain/go-subtree |
| go-script-templates | github.com/bsv-blockchain/go-script-templates |
| Module | Path |
|---|---|
| go-wallet-toolbox | github.com/bsv-blockchain/go-wallet-toolbox |
| go-402-pay | github.com/bsv-blockchain/go-402-pay |
| go-402-pay/echo | github.com/bsv-blockchain/go-402-pay/echo |
| go-402-pay/fiber | github.com/bsv-blockchain/go-402-pay/fiber |
| go-402-pay/gin | github.com/bsv-blockchain/go-402-pay/gin |
| Module | Path |
|---|---|
| go-overlay-services | github.com/bsv-blockchain/go-overlay-services |
| go-overlay-discovery-services | github.com/bsv-blockchain/go-overlay-discovery-services |
| Module | Path |
|---|---|
| go-paymail | github.com/bsv-blockchain/go-paymail |
| Module | Path |
|---|---|
| go-broadcast-client | github.com/bitcoin-sv/go-broadcast-client |
| go-broadcast | github.com/mrz1836/go-broadcast |
| Module | Path |
|---|---|
| go-bsv-middleware | github.com/bsv-blockchain/go-bsv-middleware |
Deployable services with their own Dockerfile + cmd/server/main.go. Kept separate from packages/ to match ts-stack and to allow independent release cadences.
| Service | Path | Module |
|---|---|---|
| go-message-box-server | infra/go-message-box-server |
github.com/bsv-blockchain/go-message-box-server |
| go-uhrp-storage-server | infra/go-uhrp-storage-server |
github.com/bsv-blockchain/go-uhrp-storage-server |
| go-chaintracks | infra/go-chaintracks |
github.com/bsv-blockchain/go-chaintracks |
- Go 1.26.0
This repo uses a Go workspace (go.work) to link all modules locally. No changes to import paths are required.
# Build all packages in the workspace
go build ./...
# Test all packages
go test ./...go build ./packages/sdk/...
go build ./packages/wallet/...Each subdirectory is a self-contained Go module with its own go.mod. You can work inside any module directory independently:
cd packages/sdk/go-sdk
go test ./...Dependencies flow inward toward the SDK:
Overlays / Messaging / Middleware
|
Wallet
|
Network
|
SDK
Middleware is used by any domain. Conformance tests all domains against shared vector sets.
Each package was originally a standalone repo — commit history is preserved via git subtree. To pull upstream changes for a package:
git subtree pull --prefix=packages/sdk/go-sdk ~/git/go/go-sdk mainThe Go conformance runner consumes the shared vector corpus published by ts-stack. See conformance/README.md for the runner CLI and PLAN_GO.md in the mbga repo for the migration plan and corpus consumption strategy.
See individual package directories for license terms.