- Hierarchical-deterministic derivation of native segwit addresses. - Receive payments to native segwit addresses. - Spend and sign payments from native segwit addresses. - Watch-only wallets with native segwit addresses (zpub/vpub). - WalletAppKit, Wallet-tool and Wallet-template are taught to deal with segwit-enabled wallets. Be aware this adds a new field in the wallet protobuf: output_script_type in Key, which keeps track of the script type of DeterministicKeyChains. Protobufs will be migrated; old DeterministicKeyChains are assumed to be of type P2PKH. Includes some code by Fabrice Drouin.
Welcome to bitcoinj
The bitcoinj library is a Java implementation of the Bitcoin protocol, which allows it to maintain a wallet and send/receive transactions without needing a local copy of Bitcoin Core. It comes with full documentation and some example apps showing how to use it.
Technologies
- Java 7 for the core modules, Java 8 for everything else
- Gradle 3.4+ - for building the project
- Google Protocol Buffers - for use with serialization and hardware communications
Getting started
To get started, it is best to have the latest JDK and Gradle installed. The HEAD of the master branch contains the latest development code and various production releases are provided on feature branches.
Building from the command line
To perform a full build use
gradle clean build
You can also run
gradle javadoc
to generate the JavaDocs.
The outputs are under the build directory.
Building from an IDE
Alternatively, just import the project using your IDE. IntelliJ has Gradle integration built-in and has a free Community Edition. Simply use File | New | Project from Existing Sources and locate the build.gradle in the root of the cloned project source tree.
Example applications
These are found in the examples module.
Where next?
Now you are ready to follow the tutorial.


