Package org.bitcoinj.base

The base package provides fundamental types for bitcoinj. These types must have minimal dependencies. The criteria for allowed dependencies for base types are:
  • No dependencies on other packages of bitcoinj
  • No API dependencies on external libraries other than the core JDK
  • Implementation dependencies on Guava are allowed for now (but should be avoided as much as possible)

Temporary exception: In the 0.17 release, we are allowing some dependencies on other packages, e.g. to NetworkParameters provided that those references are in deprecated methods. This will smooth migration by allowing users to, for example, replace import org.bitcoinj.base.Address with import org.bitcoinj.core.Address as first step of conversion and remove usages of the deprecated methods in a second step.

The base package will help us make bitcoinj more modular as we will use it to break circular dependencies between existing packages. We are also considering splitting base into a separate JAR/module in a future release.