bitcold

A lightweight CLI for generating Bitcoin cold wallets, managing keys, and signing transactions offline.

$ npm install -g bitcold

$ Quick Start

1

Install

$ npm install -g bitcold
2

Create a wallet

$ bitcold wallet create --alias my-wallet
3

Sign a transaction

$ bitcold tx sign --from my-wallet@default --to bc1q... --amount 50000 --fee 1500 --utxo <hash:index:value>

# Features

Offline-first & Encrypted

Generate wallets and sign transactions entirely offline. Wallet data is encrypted locally with AES-256-GCM, keys derived via scrypt.

HD Wallet (BIP84)

Hierarchical deterministic wallets with BIP39 mnemonic phrases and native SegWit (P2WPKH) addresses.

Multi-account

Derive multiple accounts per wallet with custom aliases and independent derivation indices.

Transaction Signing & QR

Construct and sign raw Bitcoin transactions with full UTXO control. Export signed tx as terminal QR codes for air-gapped transfer.

# Documentation

Wallet Management

Create, import, view, rename, and delete wallets. Manage multiple derived accounts per wallet with custom aliases and derivation indices.

Transactions

Sign raw transactions with full UTXO control, export via terminal QR code for air-gapped transfer, and broadcast through configurable providers.

> Command Reference

wallet create

$ bitcold wallet create [options]
  • --alias — wallet name
  • --mnemonic — import an existing BIP39 mnemonic phrase
  • --mnemonic-length — word count (12 | 24, default 12)
  • --passphrase — prompt for encryption passphrase
  • --show-mnemonic — display the mnemonic after creation
  • --ephemeral — generate once, never save to disk
  • --entropy-bits — supply your own binary entropy (dice rolls / coin flips)

wallet show <alias>

$ bitcold wallet show my-wallet [options]
  • --private — reveal private keys
  • --mnemonic — reveal mnemonic phrase

wallet list

$ bitcold wallet list
  • List all saved wallets and their accounts.

wallet rename <alias> <new-alias>

$ bitcold wallet rename old-name new-name
  • Rename an existing wallet.

wallet remove <alias>

$ bitcold wallet remove my-wallet [options]
  • --yes — skip confirmation prompt

wallet account add <wallet> [account]

$ bitcold wallet account add my-wallet savings [options]
  • --index — BIP44 account index

wallet account remove <wallet> <account>

$ bitcold wallet account remove my-wallet savings [options]
  • --yes — skip confirmation prompt

tx sign

$ bitcold tx sign --from wallet@account --to bc1q... --amount 50000 --fee 1500 --utxo <hash:index:value> [options]
  • --from — sender as wallet@account
  • --to — recipient address
  • --amount — amount in satoshis
  • --fee — fee in satoshis
  • --utxo — UTXO input as txid:vout:value (repeatable)
  • --broadcast — broadcast after signing
  • --qr — display signed tx as terminal QR code

tx broadcast

$ bitcold tx broadcast --tx <raw-hex> [options]
  • --tx — raw signed transaction hex
  • --provider — broadcast API provider

> Configuration