From df8783082922d45ea29e40e590f5a71e4397af34 Mon Sep 17 00:00:00 2001 From: Novo Date: Tue, 7 Apr 2026 11:34:31 +0200 Subject: [PATCH] BIP-352: warn against stopping scan due to wallet policy filtering Adds a warning to the "if no matches are found, stop" scanning step. Without it, wallet developers may be tempted to apply policy filtering (e.g. dust) before deciding to continue, causing subsequent outputs for the same sender to be missed. --- bip-0352.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0352.mediawiki b/bip-0352.mediawiki index 21bca34fc5..90ddd28aa0 100644 --- a/bip-0352.mediawiki +++ b/bip-0352.mediawiki @@ -357,7 +357,7 @@ If each of the checks in ''[[#scanning-silent-payment-eligible-transactions|Scan ****** Add ''Pk + label'' to the wallet ****** Remove ''output'' from ''outputs_to_check'' and rescan ''outputs_to_check'' with ''k++'' ***** If a label is not found, negate ''output'' and check a second time''' Why negate the output?''' Unfortunately taproot outputs are X-only, meaning we don't know what the correct Y coordinate is. This causes this specific calculation to fail 50% of the time, so we need to repeat it with the other Y coordinate by negating the output. -*** If no matches are found, stop +*** If no matches are found, stop'''WARNING:''' The decision to continue scanning (increment ''k'') must be based on whether a cryptographic match was found, not on whether the wallet considers the output spendable or relevant. A match that is later filtered by wallet policy (e.g. dust) must still trigger a rescan with ''k++''; stopping early may cause subsequent outputs for the same sender to be missed. ==== Spending ====