Skip to content

android: send near-max leaves unspendable dust change #815

@piotr-iohk

Description

@piotr-iohk

What happened?

When sending near-max on-chain from a wallet with 40,000 sats, sending 39,500 sats leaves 359 sats as change.
That remaining change is dust and cannot be spent.

Expected behavior

No unspendable dust should be left after send.
If the leftover change would be dust, it should be added to either the recipient amount or the fee, and the UI should clearly inform the user how dust is handled.

Steps to Reproduce

  1. Fund wallet with 40,000 sats.
  2. Create an on-chain send for 39,500 sats.
  3. Confirm and broadcast transaction.
  4. Observe remaining wallet balance is 359 sats (unspendable dust).

Logs / Screenshots / Recordings

logs.zip

Screen.Recording.2026-03-02.at.10.22.01.mov

Bitkit Version

2.0.3 (master at eeb6511039c26b614b0ca07269ced9c690c626be)

Device / OS

Android Emulator Pixel_6 (sdk_gphone64_arm64), Android 13 (API 33)

Reproducibility

Always

Additional context

  • Current behavior differs from iOS handling tracked in bitkit-ios#200.
  • Cross-platform behavior should be consistent for dust handling in near-max sends.
  • Desired UX: if dust is absorbed into fee or recipient, explicitly surface that to the user.
  • Current observed minimum spendable amount from wallet is 547 sats (+ fees); this likely reflects a dust threshold, so leaving 359 sats change results in effectively unspendable funds.

Similar issues check

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions