Context
Part of #6965 — Dust Attack Protection and Donate Dust.
This issue covers excluding Do Not Spend UTXOs from coin selection, enforcing balance restrictions in the send flow, displaying Do Not Spend state in UTXO management screens, and the manual coin selection warning. See also:
Goal
Ensure Do Not Spend UTXOs are never used automatically during normal sends, the available balance shown to users reflects only spendable coins, and users get an explicit warning before manually selecting a Do Not Spend coin.
Send Flow
Automatic coin selection
- Normal send excludes all Do Not Spend UTXOs from coin selection
- Available / spendable balance shown to the user excludes Do Not Spend UTXOs
- Total wallet balance may include all wallet-owned UTXOs
Insufficient spendable balance
If total wallet balance is enough to cover the send amount but spendable balance is not enough:
- Show helper copy: Some coins are marked Do Not Spend and are not available for this payment.
- Show button: View Coins → opens Manage Coins
- Use existing insufficient balance error alongside this helper copy
Manual UTXO selection — Do Not Spend coin warning
When the user manually selects a Do Not Spend coin in the manual coin selection flow, show a warning modal/bottom sheet:
Title: Use Do Not Spend Coin?
Body: This coin was marked Do Not Spend to help protect wallet privacy. Spending it with other coins may reduce privacy.
Buttons:
- Use Coin — include the selected coin in manual selection
- Cancel — return to manual coin selection
Do not show this warning during automatic coin selection (Do Not Spend coins are excluded automatically).
Manage Coins Screen
- All wallet-owned UTXOs remain visible, including Do Not Spend coins
- Show Do Not Spend label clearly on affected coins using warning-style label treatment
- Existing labels (Change, Self) continue to work alongside Do Not Spend
- Do Not Spend coins are excluded from normal send selection
- User can tap a coin to open UTXO Details
- Select to Send existing manual flow continues to work
- If eligible Do Not Spend coins exist, show Donate Dust CTA (see Dust Donation issue)
UTXO Details (spend restriction aspect)
- System-marked Do Not Spend cannot be overridden by tapping a label like a normal tag
- User must explicitly press Mark Spendable to override
Acceptance Criteria
Copy Requirements
Use these exact labels:
- Do Not Spend
- Some coins are marked Do Not Spend and are not available for this payment.
- View Coins
- Use Do Not Spend Coin?
- This coin was marked Do Not Spend to help protect wallet privacy. Spending it with other coins may reduce privacy.
- Use Coin
Design Requirements
- Reuse existing send flow screens
- Reuse existing manual coin selection flow
- Reuse existing confirmation modal / bottom sheet component
- Reuse existing UTXO label/chip component
- Use warning-style treatment for Do Not Spend label
- Do not create new standalone screens
Context
Part of #6965 — Dust Attack Protection and Donate Dust.
This issue covers excluding Do Not Spend UTXOs from coin selection, enforcing balance restrictions in the send flow, displaying Do Not Spend state in UTXO management screens, and the manual coin selection warning. See also:
Goal
Ensure Do Not Spend UTXOs are never used automatically during normal sends, the available balance shown to users reflects only spendable coins, and users get an explicit warning before manually selecting a Do Not Spend coin.
Send Flow
Automatic coin selection
Insufficient spendable balance
If total wallet balance is enough to cover the send amount but spendable balance is not enough:
Manual UTXO selection — Do Not Spend coin warning
When the user manually selects a Do Not Spend coin in the manual coin selection flow, show a warning modal/bottom sheet:
Title: Use Do Not Spend Coin?
Body: This coin was marked Do Not Spend to help protect wallet privacy. Spending it with other coins may reduce privacy.
Buttons:
Do not show this warning during automatic coin selection (Do Not Spend coins are excluded automatically).
Manage Coins Screen
UTXO Details (spend restriction aspect)
Acceptance Criteria
Copy Requirements
Use these exact labels:
Design Requirements