feat(sdk): label AuthFetch BRC-105 payment actions for recovery - #432
Open
shruggr wants to merge 4 commits into
Open
feat(sdk): label AuthFetch BRC-105 payment actions for recovery#432shruggr wants to merge 4 commits into
shruggr wants to merge 4 commits into
Conversation
Always apply brc105 <prefix> <suffix> on 402 payment createAction calls, and accept optional caller labels so apps can find and recover stranded payments via listActions without changing wire headers.
Wallet labels are lowercased; base64 prefix/suffix would be lossy. Store hex of the nonce bytes so derivation can be recovered for refunds.
Contributor
Author
|
I'm happy to make this optional and would love any feedback you guys want to offer. Automatic payments need to be able to be linked back to the application request which made the request somehow. If there is some alternatives I'm missing, I'd be happy to consider those as well. |
shruggr
marked this pull request as ready for review
August 5, 2026 03:20
shruggr
requested review from
BraydenLangley,
sirdeggen,
tonesnotes and
ty-everett
as code owners
August 5, 2026 03:20
Release note candidates are maintainer-owned; leave versioning ledger untouched.
Match other createAction callers; wallet validateLabel already trims and lowercases.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Why
BRC-105 payments can be broadcast by AuthFetch without the payment reaching the server. When that happens the money is on-chain, the server never internalized it, and the client has almost no way to find the payment again: only a human-readable description, no labels, and derivation data stuck in output
customInstructionsthat apps cannot query vialistActions. Apps that need to account for or recover stranded payments (e.g. refund flows) are stuck.What
brc105 <hexPrefix> <hexSuffix>(hex of the base64 nonce bytes so wallet label lowercasing is lossless).labelsonfetchoptions for app-level discovery.Recovery path once a payment is found: hex → bytes → base64 → original prefix/suffix for the server.
Test plan
Notes