Developer Tools / Wallets & Identity
In Brief
BSV Blockchain’s Go development toolkit has released v1.7.4 to fix a data exchange problem that could tell an application funds were spendable when the wallet had marked them otherwise. Published on November 6 (UTC), the release also strengthens checks on payment information and aligns message authentication with shared wallet standards.
News Report
The Go SDK is a software development kit used inside wallets and services written in Go. It provides transaction handling, wallet interfaces and verification tools. Users receive these changes as application developers adopt the new version.
Preserving the Wallet’s Availability Information
Wallets track funds in separate transaction outputs. An application requesting those records needs to know which ones the wallet considers available to spend.
The older binary message format could not represent a “not spendable” status. A record carrying that status could therefore be read by the application as spendable.
Version 1.7.4 adds an optional format that preserves the status of each output. Both sides need support for this format. When the older format is used, the updated SDK refuses a result containing a non-spendable output instead of silently changing its meaning.
Wallet builders also need to check their existing responses: an unset availability field defaults to “not spendable” and can now make a request using the older format fail.
Matching Message Authentication Rules
Another correction aligns message authentication codes, known as HMACs, with the convention documented in BRC-56 and BRC-100. These codes help software check a message’s authenticity and integrity.
The correction affects keys whose previous encoding included leading zero bytes. Some codes produced by older Go SDK versions will consequently no longer verify. Developers need to review stored codes and values derived from them; the update provides no automatic migration.
Stricter Checks on Payment Information
Atomic BEEF packages carry a particular transaction together with supporting information needed to check it. The release now rejects packages containing transactions unrelated to that payment, tightening a rule that earlier Go SDK versions did not enforce.
A separate correction rejects an invalid form of proof used to establish a transaction’s inclusion in a block. Another prevents oversized numbers in certain wallet messages from being silently converted into smaller values. These include fields that count records or identify which transaction output is being referenced.
The contributions include regression tests for the corrected behavior, including compatibility checks against TypeScript SDK test data.
BSV TIMES Read
The common thread is preserving meaning between independently built wallets and applications. Data can arrive successfully and still be interpreted incorrectly—for example, when “not available to spend” becomes “spendable.” Correcting these mismatches is part of making shared wallet standards dependable in everyday use.
The compatibility changes also require deliberate adoption. Updating a library needs to be accompanied by checks that existing wallet responses and stored authentication values still behave as intended.
Developer Context
GitHub contributor parthod0x authored the format for reporting spendable status and the block-inclusion proof correction. codenlighten contributed the stricter Atomic BEEF and numeric checks. Go SDK maintainer Darren (sirdeggen) authored the message authentication alignment.
Source Links
- BSV Go SDK v1.7.4 — release
- Optional spendable-status format and compatibility tests — PR #390
- Message authentication alignment and migration implications — PR #389
- Atomic BEEF checks for unrelated transactions — PR #393
- Block-inclusion proof correction — PR #391
- Checks against oversized wallet-message values — PR #392
- Changelog included in v1.7.4
- Go SDK — project overview and maintainers
Posted on November 8, 2026 (UTC)

Leave a Reply