bdk-cli 4.0.0

An experimental CLI wallet application and playground, powered by BDK
[package]
name = "bdk-cli"
version = "4.0.0"
edition = "2024"
authors = ["Alekos Filini <alekos.filini@gmail.com>", "Riccardo Casatta <riccardo@casatta.it>", "Steve Myers <steve@notmandatory.org>"]
homepage = "https://bitcoindevkit.org"
repository = "https://github.com/bitcoindevkit/bdk-cli"
documentation = "https://docs.rs/bdk-cli"
description = "An experimental CLI wallet application and playground, powered by BDK"
keywords = ["bitcoin", "wallet", "descriptor", "psbt", "taproot"]
readme = "README.md"
license = "MIT"

[dependencies]
bdk_wallet = { version = "3.1.0", features = ["rusqlite", "keys-bip39", "compiler", "std"] }
clap = { version = "4.6", features = ["derive","env"] }
clap_complete = "4.6"
dirs = {  version = "6.0.0" }
env_logger = "0.11.10"
log = "0.4"
serde_json = "1.0"
thiserror = "2.0.18"
tokio = { version = "1", features = ["full"] }
cli-table = "0.5.0"
tracing = "0.1.44"
tracing-subscriber = "0.3.20"
toml = "1.1.0"
serde= {version = "1.0", features = ["derive"]}
tap = "1.0.1"

# Optional dependencies
bdk_bitcoind_rpc = { version = "0.22.0", features = ["std"], optional = true }
bdk_electrum = { version = "0.24.0", optional = true }
bdk_esplora = { version = "0.22.2", features = ["async-https", "tokio"], optional = true }
bdk_kyoto = { version = "0.17.0", optional = true }
bdk_redb = { version = "0.2.0", optional = true }
bdk_sp = { version = "0.2.0", optional = true }
shlex = {  version = "1.3.0", optional = true }
payjoin = { version = "0.25.0", features = ["v1", "v2", "io", "_test-utils"], optional = true}
reqwest = { version = "0.13.2", default-features = false, features = ["rustls"], optional = true }
url = { version = "2.5.8", optional = true }
bdk_message_signer = { version = "0.2.0", optional = true }
bitcoin-payment-instructions = { version = "0.7.0", optional = true}

[features]
default = ["repl", "sqlite"]

# To use the app in a REPL mode
repl = ["shlex"]

# Available database options
sqlite = ["bdk_wallet/rusqlite"]
redb = ["bdk_redb"]

# Available blockchain client options
cbf = ["bdk_kyoto", "_payjoin-dependencies"]
electrum = ["bdk_electrum", "_payjoin-dependencies"]
esplora = ["bdk_esplora", "_payjoin-dependencies"]
rpc = ["bdk_bitcoind_rpc", "_payjoin-dependencies"]
dns_payment = ["bitcoin-payment-instructions"] 

# Internal features
_payjoin-dependencies = ["payjoin", "reqwest", "url", "sqlite"]
message_signer = ["bdk_message_signer"]

# Use this to consensus verify transactions at sync time
verify = []

# Extra utility tools
# Compile policies
compiler = []

# Experimental silent payment sending capabilities
silent-payments = ["bdk_sp"]

[dev-dependencies]
predicates = "3.0"
tempfile = "3.8"
assert_cmd = "2.2.2"
bdk_testenv = "0.13.1"