Go Wallet Toolbox v0.191.2 Fixes Wallet Queries and Broadcast Error Handling

Go Wallet Toolbox v0.191.2 Fixes Wallet Queries and Broadcast Error Handling
, ,

Developer Tools / Payments Infrastructure

In Brief

Go Wallet Toolbox has released version 0.191.2, addressing a PostgreSQL query failure affecting wallets with thousands of distinct labels or tags and correcting how its broadcasting integration handles authentication and rate limits.

The release also adds optional API-key support for the integration still named Arcade in the toolbox configuration. The broadcaster project itself was recently renamed BSV Broadcaster.

News Report

Version 0.191.2 was published on October 28 at 18:49 UTC. The release includes the database repair merged earlier that day and the broadcaster-authentication changes merged on October 25.

Go Wallet Toolbox supplies wallet and storage components for applications built on BSV Blockchain. These changes concern the software that manages wallet records and submits transactions to broadcasting services.

Repairing Queries With Thousands of Labels or Tags

The database problem arose when the toolbox loaded transaction labels or output tags through a query containing thousands of paired values. PostgreSQL could reject that query with a “stack depth limit exceeded” error.

The contribution reports encountering the failure at approximately 5,500 transactions in a token-wallet setup that assigned a separate operation identifier to each action. The trigger involved the number of distinct labels or tags being retrieved, so it should not be read as a universal transaction limit for wallets using the toolbox.

The repair changes how those relationships are loaded. It queries by transaction or output row identifiers, in batches of up to 5,000, while continuing to exclude labels, tags and links marked as deleted.

The affected paths support transaction listings, output listings with tags, and the loading of inputs and outputs for action listings. The contribution states that the repair requires no database-schema migration and preserves the existing API and returned data structures.

Separating Service Failures From Transaction Rejections

The broadcasting change addresses a different operational problem. Previously, an authentication refusal or a rate-limit response could be interpreted as rejection of the transaction itself. The broadcast router treats such rejection results as final, preventing a fallback to another service.

Version 0.191.2 classifies HTTP 401 and 403 responses as authentication errors at the service level. When another broadcaster is configured, the router can move to that service. With no fallback available, the wallet’s existing retry handling keeps the transaction queued.

HTTP 429 responses that persist after the HTTP client’s retries are handled as backpressure, using the service’s Retry-After information. Actual transaction rejection responses continue to be handled separately.

Operators can now configure an API key through wallet_services.arcade.api_key or its corresponding environment variable. The client sends it as a bearer credential on transaction submission, transaction queries, health checks and the event stream. The implementation redacts that credential from its HTTP debug-request logs.

Released Code and Verification

The database contribution adds regression tests with 9,000 labeled transactions and 9,000 tagged outputs, including checks for deleted relationships. Its final pull-request revision passed the hosted PostgreSQL test suite.

The authentication contribution includes tests for credential delivery, log redaction, rate-limit handling and fallback to ARC after a refused key.

The release workflow completed successfully, including its Linux test suite and build-and-release job.

BSV TIMES checked the release, tagged source and hosted test records. It has not independently reproduced the database workload or tested the release in a deployed wallet.

BSV TIMES Read

Wallet reliability depends on routine operations remaining usable as application activity grows. A token application that attaches identifiers to every action can expose database-query limits well before the underlying blockchain reaches a capacity constraint.

The broadcasting repair addresses an equally practical distinction: a service refusing credentials has not established that a transaction is invalid. Preserving that distinction allows the wallet to use its configured fallback and retry mechanisms.

Together, these changes improve the handling of growing wallet records and interrupted submission paths in the Go wallet stack.

Developer Context

Paweł Lewandowski, whose GitHub account is pawellewandowski98, authored the database repair in pull request #1081.

GitHub contributor galt-tr, whose public profile identifies him as Dylan, authored the API-key and broadcast-error changes in pull request #1077. Both contributions are included in the BSV Blockchain organization’s Go Wallet Toolbox release.

Source Links

Posted on October 29, 2026 (UTC)

Leave a Reply