I'm working on the ELIP for Silent Payments and have a reference implementation working with LWK.
I have also started prototyping what an integration would look like for LWK to support SP directly:
- Feature-gate:
silentpayments feature, default-off, gates the module (uses bech32)
- New
lwk_common types: SilentPaymentAddress + SilentPaymentScanKeys
- Key origin: add SwSigner::silent_payment_keys() deriving b_scan/b_spend from seed at an agreed BIP-352 path
- Wire send:
TxBuilder (coin selection + balancing around build_confidential_sp_txout)
- Wire receive: scan-client trait
SilentPaymentTweakClient into the blockchain clients
- Test vectors: KAT vectors shared with the ELIP
A few open questions that came up during prototyping:
- Scan-client shape: extend
Esplora/Electrum with a tweaks index vs standalone server?
- Send API surface: new
TxBuilder method vs recipient-type variant?
- HW signing: software-signer-only for v0 acceptable? (Jade/Ledger don't have an API for tweaks)
- Labels scope: full label mechanism in v0, or change-label only?
Most of the changes are expressed in the reference implementation, but I would greatly appreciate guidance on of comments on the current plan an questions.
I'm working on the ELIP for Silent Payments and have a reference implementation working with LWK.
I have also started prototyping what an integration would look like for LWK to support SP directly:
silentpaymentsfeature, default-off, gates the module (usesbech32)lwk_commontypes:SilentPaymentAddress+SilentPaymentScanKeysTxBuilder(coin selection + balancing aroundbuild_confidential_sp_txout)SilentPaymentTweakClientinto the blockchain clientsA few open questions that came up during prototyping:
Esplora/Electrumwith a tweaks index vs standalone server?TxBuildermethod vs recipient-type variant?Most of the changes are expressed in the reference implementation, but I would greatly appreciate guidance on of comments on the current plan an questions.