feat: add Nostr zap support (NIP-57) for splitpayments#1
Open
feat: add Nostr zap support (NIP-57) for splitpayments#1
Conversation
When splitting payments to LNURL/Lightning Address targets that support Nostr zaps, the extension now sends a NIP-57 zap request so recipients are notified via Nostr. Adds per-wallet settings for configuring a Nostr private key (hex or nsec), encrypted at rest. Includes security audit fixes for input validation and error handling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
c84fb41 to
82abdf4
Compare
Add nostr_signing schema for NIP-57 zap request (kind 9734) so nsecbunker can auto-discover signing needs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
lnbits-extension-settings-btn-dialogcomponent (matching the lnurlp extension pattern)Changes
parse_nostr_private_key()accepting hex or nsec formatSplitPaymentSettingsmodel with wallet-scopednostr_private_keym005creates settings table,m006adds wallet column as primary keyencrypt_internal_message/decrypt_internal_messageGET/PUT/DELETE /api/v1/settingsendpoints usingrequire_admin_keyhandle()to getLnurlPayResponse, then custom callback withnostrquery param for zap-capable targets; falls back toexecute_pay_request()otherwiseTest plan
splitpayments: sent zap request for <target>appears in logs🤖 Generated with Claude Code