Go Paymail v0.28.0 Adds Signed Profile Lookup for Wallets

Go Paymail v0.28.0 Adds Signed Profile Lookup for Wallets
, ,

Wallets & Identity / Developer Tools

In Brief

Go Paymail has released version 0.28.0 with support for looking up signed public profiles by handle and finding a profile from a known identity key.

The release brings BRC-235 lookup capabilities into the shared Go toolkit, giving wallet developers client and server components for connecting familiar handle@domain names with identity keys used in payments on BSV Blockchain.

News Report

Version 0.28.0 was published on October 29 at 18:11 UTC. Its main feature contribution, pull request #247, merged earlier that evening.

BRC-235, Paymail Public Profile Lookup, also entered the BRC repository on October 29. A companion specification, BRC-236, describes profile registration, updates and release of a handle. The Go release implements the lookup side.

The contribution describes existing profile-lookup behavior in Go MessageBox Server as the starting point. This release moves that functionality into reusable library components; it does not establish that every existing service has adopted them.

From a Handle to an Identity Key

A forward lookup accepts a partial handle, a complete handle or a full paymail name. Results contain profile certificates signed by the identity key named in each certificate.

The client checks the signature and profile fields before returning verified results. When someone enters a complete handle@domain, it accepts only an exact match. Partial searches produce suggestions, with up to ten results processed.

Wallet interfaces using those suggestions must show the full paymail name and let the user choose. A display name is optional and does not uniquely identify the recipient.

Reverse lookup starts with an identity key and asks a specified domain for its associated profile. It can help an interface display a recognizable name beside a key, but it operates within that domain rather than searching a global directory.

Wallets can use the resulting identity key when constructing BRC-29 payments.

What Verification Establishes

The Go client rejects profiles with invalid signatures, a different domain, a mismatched requested key or a marker showing that the handle was released. It also checks certificate structure and field-size limits.

These checks establish that the profile was signed by its stated identity key and matches the lookup request. They do not remove the domain operator’s control over which key holds a handle.

BRC-235 explicitly allows for that remaining trust boundary: an operator can assign or reassign names, withhold profiles or return an older profile. The specification recommends that applications remember previously used keys and warn when a later lookup returns a different key for the same paymail.

Profiles are public. Reverse lookup also makes an identity key easier to associate with a name, which matters when the same key is used across different services.

Server Support and Release Boundaries

The Go toolkit lets operators advertise only the two new lookup capabilities. Existing default server configurations remain unchanged, and operators supply the profile registry through the new service interface.

There is one compatibility consideration for developers: ClientInterface gains two methods. Projects with their own implementations of that interface, including mocks, need to add them.

The corresponding TypeScript contribution merged on October 29 and prepares @bsv/paymail 2.5.0. At the time of checking, npm still listed 2.4.12 as the latest published version.

BRC-236’s registration rules are a separate specification. Their inclusion in the repository should not be interpreted as a complete registration implementation in this Go release.

The Go contribution’s hosted tests, fuzz tests and lint checks passed. Tests include invalid certificates, mismatched identities, result limits and servers exposing only the new capabilities. BSV TIMES reviewed the tagged source and test records; it has not independently tested a live deployment.

BSV TIMES Read

The practical development is a shared, verifiable lookup interface for wallets that work with identity keys. Familiar names can support recipient selection, while applications retain a cryptographic check on the profile returned by the directory.

That can reduce duplicated implementation work across wallet and server projects. Its usefulness will depend on services adopting the capabilities and interfaces clearly handling exact names, changed keys and unavailable profiles.

The release also makes the division of responsibility explicit: the key holder signs the profile, the domain operator manages the name, and the wallet checks the response before using it.

Developer Context

Darren “Deggen” Kellenschwiler, whose GitHub account is sirdeggen, authored BRC-235 and BRC-236 and the associated Go and TypeScript contributions.

BSV Association lists his work under Distributed Applications. His other standards work includes BRC-178’s paid-query model and coauthorship of BRC-74, the BSV Unified Merkle Path format.

Source Links

Posted on October 30, 2026 (UTC)

Leave a Reply