bitcold

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

$ npm install -g bitcold

$ Quick Start

terminal
Connecting to terminal...
1

Install

$ npm install -g bitcold
2

Create a wallet

$ bitcold wallet create my-wallet
3

Sign a transaction

$ bitcold tx sign --from my-wallet@default --to bc1q... --amount 50000 --fee 1500 --utxo <txid:vout: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 and export via terminal QR code for air-gapped transfer.

> Command Reference

wallet create <alias>

$ bitcold wallet create [wallet-alias] [options]
  • --mnemonicimport an existing BIP39 mnemonic phrase
  • --mnemonic-lengthword count (12 | 15 | 18 | 21 | 24, default 12)
  • --passphraseBIP39 passphrase for derivation preview only (never saved, for plausible deniability)
  • --show-mnemonicdisplay the mnemonic after creation
  • --entropy-bitssupply your own binary entropy (dice rolls / coin flips)
Examples
Create a wallet with alias
$ bitcold wallet create my-wallet
Import from mnemonic with passphrase
$ bitcold wallet create imported --mnemonic "word1 word2 word3 ..." --passphrase "my-passphrase"
Generate 24-word mnemonic and display it
$ bitcold wallet create secure-wallet --mnemonic-length 24 --show-mnemonic
Create from custom entropy (coin flips / dice rolls)
$ bitcold wallet create dice-wallet --entropy-bits 10110100... # 128/256 bits
Note Your wallet data is stored locally in ~/.bitcold/ and encrypted using AES-256-GCM. The derivation keys are protected via scrypt. Never share your passphrase or the files in this directory.

wallet show <alias-or-address-ref>

$ bitcold wallet show wallet[@account[:index]] [options]
  • --privatereveal private keys
  • --mnemonicreveal mnemonic phrase
Examples
Show wallet with private keys
$ bitcold wallet show my-wallet --private
Show specific account
$ bitcold wallet show my-wallet@savings
Show specific address details
$ bitcold wallet show my-wallet@default:5 --private

wallet receive <account-ref>

$ bitcold wallet receive wallet@account[:index] [options]
  • --changeuse change chain
  • Display a receive address and its QR code.
Examples
Standard receive address
$ bitcold wallet receive my-wallet@account_0
Reference with index
$ bitcold wallet receive my-wallet@account_0:5

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]
  • --yesskip confirmation prompt
Examples
Remove with confirmation prompt
$ bitcold wallet remove my-wallet
Skip confirmation
$ bitcold wallet remove my-wallet --yes

wallet account add <wallet> [account]

$ bitcold wallet account add my-wallet savings [options]
  • -i, --indexBIP84 account index
Examples
Add account with auto-generated alias
$ bitcold wallet account add my-wallet
Add with custom alias and derivation index
$ bitcold wallet account add my-wallet savings --index 5

wallet account remove <wallet> <account>

$ bitcold wallet account remove my-wallet savings [options]
  • --yesskip confirmation prompt
Examples
Remove with confirmation
$ bitcold wallet account remove my-wallet savings
Skip confirmation
$ bitcold wallet account remove my-wallet savings --yes

tx sign

$ bitcold tx sign --from wallet@account[:index] --to bc1q... --amount 50000 --fee 1500 --utxo <txid:vout:value> [options]
  • --fromsender as wallet@account[:index]
  • --torecipient address or wallet@account[:index]reference
  • --amountamount in satoshis
  • --feefee in satoshis
  • --utxoUTXO input as txid:vout:value(repeatable)
  • --qrdisplay signed tx as terminal QR code
Examples
Basic transaction signing
$ bitcold tx sign --from my-wallet@account_0 --to bc1q... \ --amount 50000 --fee 1000 \ --utxo abc123...:0:60000
Multiple UTXOs
$ bitcold tx sign --from my-wallet@account_0 --to bc1q... \ --amount 1500 --fee 500 \ --utxo abc123...:0:1000 \ --utxo def456...:0:500 \ --utxo 789abc...:0:500
Output as QR code for air-gapped transfer
$ bitcold tx sign --from my-wallet@account_0 --to bc1q... \ --amount 50000 --fee 1000 \ --utxo abc123...:0:60000 --qr
Send to another local wallet
$ bitcold tx sign --from my-wallet@account_0 --to other-wallet@savings \ --amount 50000 --fee 1000 \ --utxo abc123...:0:60000

> Configuration