Feature Description
Add basic dust attack protection to Keeper.
A dust attack happens when someone sends a very small bitcoin amount to a wallet address, usually an old, reused, or unusual address. If the wallet later spends that small UTXO together with other coins, it may reduce the user’s privacy by linking those coins together.
Keeper should detect these suspicious small UTXOs and mark them as Do Not Spend, so they are not used automatically during normal sends.
Problem
Keeper currently allows all UTXOs to be treated as spendable unless the user manually manages them.
This means a small suspicious UTXO may get selected automatically during a send transaction. If that happens, the dust UTXO can get combined with normal wallet funds and may reveal links between wallet addresses or UTXOs.
This is a privacy issue, not a fund-loss issue.
Why This Matters
Users may not notice tiny incoming transactions.
If they later spend normally, Keeper may unknowingly include that dust UTXO in coin selection. This can weaken wallet privacy.
Keeper already has UTXO management, so this should be handled inside the existing coin control flow instead of creating a new dust-specific screen.
How Keeper Identifies It
Keeper should treat a UTXO as potential dust if:
- the UTXO amount is below 5,000 sats
- and it was received on a reused or out-of-order / unusual wallet address
If both conditions are true, Keeper marks the UTXO as:
Do Not Spend
Keeper should ignore mass-dusting transaction-pattern detection for this version.
Where This Applies
This should apply whenever Keeper scans or refreshes wallet UTXOs:
- wallet creation
- wallet import / restore
- wallet opened after app upgrade
- normal wallet refresh
- new incoming transaction scan
Every wallet-owned UTXO should have one spendability state:
If a UTXO does not yet have a state, Keeper should classify it during the scan.
Already Spent Dust
If Keeper identifies that a potential dust UTXO was already spent, it should:
- mark the related transaction as a potential dust spend
- identify any current wallet-owned descendant UTXOs affected by that spend
- mark those affected current UTXOs as Do Not Spend
User Visibility
Keeper should show this in existing wallet and UTXO areas.
Home wallet list
- Show the customary red dot on a wallet card/item if that wallet contains any Do Not Spend UTXO.
Wallet details
- Show a small non-tappable line below the wallet name/subtitle:
Includes Do Not Spend coins
More Options
- Show the customary red dot on View All Coins if the wallet has Do Not Spend coins.
Manage Coins
- Show the Do Not Spend label clearly on affected UTXOs.
UTXO Details
- Show why the coin is marked Do Not Spend.
- Allow user to explicitly mark it spendable.
Send Behaviour
Normal send coin selection should exclude Do Not Spend UTXOs.
If the user’s total wallet balance is higher than the amount available to spend because some coins are marked Do Not Spend, Keeper should explain this in the send flow.
Manual Control
Users should also be able to manually mark any UTXO as Do Not Spend, even if Keeper did not detect it as potential dust.
Users should also be able to explicitly mark a Do Not Spend UTXO as spendable from UTXO details.
Design
Use existing Keeper screens and patterns:
- Wallet home list
- Wallet details
- More Options
- View All Coins
- Manage Coins
- UTXO Details
- Send flow
Do not create a new standalone dust screen.
Feature Description
Add basic dust attack protection to Keeper.
A dust attack happens when someone sends a very small bitcoin amount to a wallet address, usually an old, reused, or unusual address. If the wallet later spends that small UTXO together with other coins, it may reduce the user’s privacy by linking those coins together.
Keeper should detect these suspicious small UTXOs and mark them as Do Not Spend, so they are not used automatically during normal sends.
Problem
Keeper currently allows all UTXOs to be treated as spendable unless the user manually manages them.
This means a small suspicious UTXO may get selected automatically during a send transaction. If that happens, the dust UTXO can get combined with normal wallet funds and may reveal links between wallet addresses or UTXOs.
This is a privacy issue, not a fund-loss issue.
Why This Matters
Users may not notice tiny incoming transactions.
If they later spend normally, Keeper may unknowingly include that dust UTXO in coin selection. This can weaken wallet privacy.
Keeper already has UTXO management, so this should be handled inside the existing coin control flow instead of creating a new dust-specific screen.
How Keeper Identifies It
Keeper should treat a UTXO as potential dust if:
If both conditions are true, Keeper marks the UTXO as:
Do Not Spend
Keeper should ignore mass-dusting transaction-pattern detection for this version.
Where This Applies
This should apply whenever Keeper scans or refreshes wallet UTXOs:
Every wallet-owned UTXO should have one spendability state:
If a UTXO does not yet have a state, Keeper should classify it during the scan.
Already Spent Dust
If Keeper identifies that a potential dust UTXO was already spent, it should:
User Visibility
Keeper should show this in existing wallet and UTXO areas.
Home wallet list
Wallet details
Includes Do Not Spend coins
More Options
Manage Coins
UTXO Details
Send Behaviour
Normal send coin selection should exclude Do Not Spend UTXOs.
If the user’s total wallet balance is higher than the amount available to spend because some coins are marked Do Not Spend, Keeper should explain this in the send flow.
Manual Control
Users should also be able to manually mark any UTXO as Do Not Spend, even if Keeper did not detect it as potential dust.
Users should also be able to explicitly mark a Do Not Spend UTXO as spendable from UTXO details.
Design
Use existing Keeper screens and patterns:
Do not create a new standalone dust screen.