bsv-wallet-cli 0.2.21

Self-hosted BSV wallet CLI and BRC-100 server, wire-compatible with MetaNet Client
Documentation
[workspace]
members = [".", "mcp"]
resolver = "2"

[package]
name = "bsv-wallet-cli"
version = "0.2.21"
edition = "2021"
license = "MIT"
authors = ["John Calhoun"]
description = "Self-hosted BSV wallet CLI and BRC-100 server, wire-compatible with MetaNet Client"
repository = "https://github.com/Calhooon/bsv-wallet-cli"
homepage = "https://github.com/Calhooon/bsv-wallet-cli"
keywords = ["bsv", "bitcoin", "wallet", "brc-100"]
categories = ["command-line-utilities", "cryptography::cryptocurrencies"]

[lib]
name = "bsv_wallet_cli"
path = "src/lib.rs"

[[bin]]
name = "bsv-wallet"
path = "src/main.rs"

# Companion binary: ONE public ARC/Arcade callback receiver, store-and-forward
# by callback token — wallet daemons poll /pull outbound and drain their queue.
[[bin]]
name = "bsv-wallet-relay"
path = "src/bin/bsv-wallet-relay.rs"

[dependencies]
bsv-wallet-toolbox = { package = "bsv-wallet-toolbox-rs", version = "0.3.60", features = ["sqlite"] }
bsv-sdk = { package = "bsv-rs", version = "0.3.4", features = ["full"] }
tokio = { version = "1", features = ["full"] }
clap = { version = "4", features = ["derive"] }
dotenvy = "0.15"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
chrono = "0.4"
hex = "0.4"
url = "2"
axum = "0.8"
sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"] }
tower-http = { version = "0.6", features = ["cors", "trace"] }
axum-server = { version = "0.7", features = ["tls-rustls"], optional = true }
reqwest = { version = "0.12", features = ["json"] }

[features]
default = []
tls = ["axum-server"]

[dev-dependencies]
tempfile = "3"
tower = { version = "0.5", features = ["util"] }

# Pinned to the sibling checkout until bsv-wallet-toolbox-rs 0.3.55 is
# published: carries 16669d4 (CheckForProofs adopts proof-less
# transactions — the receive-proof gap, 2026-08-29), the sighash-aware
# caller-complete funding rule (ANYONECANPAY covenant inputs get a funding
# input + change), definitive broadcast rejections (465 / Arcade REJECTED)
# failing create_action, `sendWithResults: unproven` on an accepted
# broadcast, and `retire_undeliverable_txid` (the served wallet's async
# post-broadcast retire path). The LOW runner image copies
# ../bsv-wallet-toolbox-rs alongside this crate (LOW_RUNNER_TOOLBOX), so the
# fleet CLI builds against exactly that tree. Drop this block when 0.3.55
# lands on crates.io.
[patch.crates-io]
bsv-wallet-toolbox-rs = { path = "../bsv-wallet-toolbox-rs" }