Skip to main content

Legacy Wallet Support

Bitcoin Core v30 completely removed Berkeley DB legacy wallet support, forcing users to migrate to descriptor wallets. Bitcoin Knots maintains full legacy wallet support — one reason Knots adoption surged 850% in 2025.

Why This Matters

FeatureCore v30Knots v29.2
Legacy wallet creationRemovedSupported
Berkeley DB walletsRemovedSupported
dumpprivkey RPCDescriptor onlyBoth types
importprivkey RPCDescriptor onlyBoth types
Direct key managementLimitedFull

Many users need legacy wallets for:

  • Older hardware wallets with specific BIP32 paths
  • Cold storage setups using direct private key management
  • Business workflows built around importprivkey/dumpprivkey
  • Compatibility with older software and scripts
  • Migration at your own pace — not forced by an upgrade

Creating a Legacy Wallet

Via RPC

# Create a legacy wallet (descriptors=false is the key parameter)
bitcoin-cli createwallet "mylegacy" false false "" false false

Parameters:

PositionNameValueDescription
1wallet_name"mylegacy"Name of wallet
2disable_private_keysfalseEnable private keys
3blankfalseCreate with keys
4passphrase""Optional encryption
5avoid_reusefalseAddress reuse policy
6descriptorsfalseLegacy wallet

Via GUI

  1. File → Create Wallet
  2. Uncheck "Descriptor Wallet"
  3. Set wallet name and options

Legacy Wallet Commands

Export Private Keys

# Dump a single address's private key
bitcoin-cli -rpcwallet=mylegacy dumpprivkey "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"

# Dump the HD master private key (Knots-only)
bitcoin-cli -rpcwallet=mylegacy dumpmasterprivkey

Import Private Keys

# Import a WIF private key
bitcoin-cli -rpcwallet=mylegacy importprivkey "5KJvsngHeMpm..." "label" false

# Import multiple (importmulti)
bitcoin-cli -rpcwallet=mylegacy importmulti '[{"scriptPubKey":{"address":"..."},"keys":["..."]}]'

Backup and Restore

# Backup wallet
bitcoin-cli -rpcwallet=mylegacy backupwallet "/path/to/backup.dat"

# Wallet file location
~/.bitcoin/wallets/mylegacy/wallet.dat

HD Wallet Derivation

Legacy wallets use BIP32/44 derivation paths:

m/44'/0'/0'/0/0  # First receiving address
m/44'/0'/0'/0/1 # Second receiving address
m/44'/0'/0'/1/0 # First change address

Migration to Descriptor Wallet

If you eventually want to migrate (optional in Knots):

# Migrate legacy to descriptor wallet
bitcoin-cli -rpcwallet=mylegacy migratewallet
Migration Notes
  • Creates a new descriptor wallet
  • Old wallet becomes read-only backup
  • Watchonly items go to separate watchonly wallet
  • Make a backup before migrating

Descriptor Wallets (Default in v23+)

Since Knots v23.0, new wallets default to descriptor format. Key differences:

FeatureLegacyDescriptor
DatabaseBerkeley DBSQLite
Key modelKey-basedScript-based
dumpprivkeyWorksNot available
importprivkeyWorksNot available
Output descriptorsNoYes

To create a descriptor wallet explicitly:

bitcoin-cli createwallet "mydesc" false false "" false true

Knots-Specific Wallet Commands

CommandDescription
dumpmasterprivkeyExport HD master key (legacy)
sweepprivkeysImport and sweep in one step
importfromcoldcardImport Coldcard wallet

See Also