bitcoindevkit / bitcoindevkit/bdk-cli
Add BIP-329 wallet label support
- Dominant language
- Rust
- Stars
- 141
- Forks
- 99
- Avg merge
- 6d 14m
- Merged PRs (30d)
- 1
Description
**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., `.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](https://github.com/bitcoindevkit/bdk_wallet/issues/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](https://crates.io/crates/bip329).
Contributor guide
Assessment
This issue has not been assessed yet.