bdk-cli icon indicating copy to clipboard operation
bdk-cli copied to clipboard

Add BIP-329 wallet label support

Open Musab1258 opened this issue 8 months ago • 0 comments

Describe the enhancement

This enhancement aims to integrate BIP-329 ("Wallet Labels Export Format") support into bdk-cli. This will allow users to:

  1. Set and manage human-readable labels for wallet items such as transactions (TXIDs), addresses, and UTXOs (outputs).
  2. Import labels from other BIP-329 compliant wallets or previously exported bdk-cli label files.
  3. Export labels in the standard BIP-329 JSONL format for backup or use in other compatible wallet software.
  4. View these labels alongside relevant items in existing bdk-cli list commands (e.g., transactions, unspent).

The implementation will leverage the external bip329 crate for parsing, managing, and persisting label data in a separate .jsonl file (e.g., <wallet_name>.labels.jsonl) within the wallet's data directory.

Use case

Users of bdk-cli will benefit from this feature in several ways:

  • Improved Wallet Management: Instead of relying solely on cryptic identifiers (TXIDs, long addresses), users can add descriptive labels (e.g., "Payment from Steve," "Savings Address," "Coinjoin UTXO"). This significantly improves transaction history comprehension and overall wallet organization.
  • Enhanced Interoperability: By adhering to the BIP-329 standard, users can easily migrate their label data to or from other Bitcoin wallets that support this BIP, reducing vendor lock-in and improving the portability of their wallet metadata.
  • Better Record Keeping: Labels provide context for financial activities, which can be useful for personal accounting or tax purposes.
  • Streamlined Debugging/Testing: Developers using bdk-cli to test BDK applications can label specific test transactions or UTXOs for easier identification and tracking.

Additional context

  • This feature request was originally discussed in bdk_wallet issue 168.
  • The current proposed approach by @notmandatory (https://github.com/bitcoindevkit/bdk_wallet/issues/168#issuecomment-2819699276) is to implement this in bdk-cli.
  • The implementation will use the existing bip329 crate.

Musab1258 avatar May 10 '25 09:05 Musab1258