web3j 4.0 Released

Building on the fantastic work of our community, we have taken web3j-4.0.0 out of alpha and made it available as a full release.

As you may recall web3j-4.0.0-alpha was released in time for Devcon4, to provide our community with some sought after features, such as Reactive Streams 2.0, a BIP44 implementation, plus support for PegaSys’ Pantheon client and many other neat changes.

web3j is now using Rx Java 2


In addition to alpha release change set web3j-4.0.3 includes the following

  • Improvements to the Solidity code generation: #672
  • Remove deprecated methods: #508
  • Improve implementation of MnemonicUtils: #665
  • Update to CLI usage string: #660
  • Updated OkHttp CipherSuites to include all INFURA CiperSuites: #757
  • Remove *.bin file requirement for contract wrapper generation: #408
  • Prefix message signing according to eth_sign: #761
  • Support for Pantheon specific RPC calls #767, #792
  • Exception logging and format #746, #784, #785
  • NPE for logs without topics #708
  • NPE when an error is encountered before a listener is set #731
  • Allow use of Java keywords as Solidity function names #776
  • Add support for CLEARTEXT HTTP communication #718
  • Publish/subscribe documentation for #458 — #768
  • Fix invalid index error on node disconnection #713
  • Make “crypto” module less dependent on 3rd party libraries (ease Android integration) #618
  • Change the visibility of some methods to ease hardware integration #679

Thank you to all our community and contributors for making this possible.

What do I need to do?

If you previously upgraded to 4.0.0-alpha then the process is straightforward and no changes are required; just add a dependency onto web3j-4.0.3.

If you were on 3.6 or a slightly older release then you will need to regenerate your smart contract wrappers to use this release, in addition to migrating across your method calls to use the updated function names as per the RxJava 2.0 section; refer to the blog post on the 4.0.0-alpha release for further detail.

What’s next?

We’ve got some exciting plans for the upcoming 4.x releases, with various community-driven pull requests and blk.io contributions.

We are also working with our community on getting the Android release of web3j up onto 4.0.

For 5.x and beyond we will be looking to streamline our libraries and use Java 9’s Flows.


A big thanks to the Ethereum Community Fund for enabling this ongoing development to happen and Gitcoin for providing issue bounties.

Stay tuned, more exciting news coming soon!

The blk.io team.