I intend to establish an efficient and secure scheme for protection of wallets. For this , I need source code that implements wallet ecryption as mentioned in https://en.bitcoin.it/wiki/Wallet_encryption

1 Answer 1


BitcoinJ is the Java open source library used by many popular wallets, including Bitcoin Wallet for Android, MultiBit, GreenAddress GreenBits, and lots more.

It supports some sort of encryption of private keys, although it may not be AES-256-CBC (but it probably is).

HD Wallets

It's worth noting that BitcoinJ was recently upgraded to support creating and using BIP32 hierarchical deterministic (HD) wallets. This is an option, and the old method of generating separate random keys is still available.

When used in HD mode, as the wallets listed above do[1], it won't store the private keys directly, but will simply generate them on demand from the HD root seed, so it's only the HD root seed that needs to kept encrypted. Also users are strongly encouraged to keep a paper backup of the root seed, meaning that digital backups of the encrypted key are usually not needed.

[1] MultiBit currently doesn't do it, but the in-beta-test MultiBit HD does.

Bitcoin Core Wallet

In addition, Bitcoin Core developer Jonas Schnelli is working on splitting off and replacing Bitcoin Core's backend wallet code, so you may not want to start on any major projects without coordinating with him.

One of the proposed objectives for his project---although I haven't heard his take on this---is adding HD support to the wallet code. (In any case, HD support will likely be added as an option; at least one core dev would like to keep random-derived private keys for some applications because they've been much better studied than HD derivation.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.