Web3j is the JVM integration library for Ethereum, used by Java, Android and Kotlin developers. It provides you with account and transaction management, and full type safety of smart contract integration from code. This means that when you write Java code with Java types, they will be mapped in a type-safe manner to Ethereum types. Although JVM is not a proof-based language, this type-safety gives your code a certain level of guarantee when it is running.
Web3j has a native build tool integration that supports core Ethereum, Geth and Parity. It also supports Hyperledger Besu, JP Morgan’s Quorum and last year we announced an Aion integration too.
Why do we have Web3j?
Web3j is for specific developers for working with Ethereum. Historically, it has been a dependency and effect, that people pull into their projects to integrate with Ethereum. We’re well aware of the challenges presented by this process. That’s why we’re always considering developers who are new to Ethereum, and blockchain generally, thinking of ways to make the onboarding process as simple as possible. Until now, the journey looks like this:
As part of simplifying this process, we’ve extended the Web3j command line interface (CLI). But we didn’t stop there! We’ve focused on making the developer experience better, especially for those who are working with this technology for the first time.
We’re pleased to say that we’ve made it as simple as 1,2,3!
The Web3j SDK brings together many different components of the Web3j ecosystem - build automation, core integration library, CLI tool, automated unit, and integration testing. With our latest improvements, we’ve made creating a new project, adding Web3j build dependency, creating and compiling a smart contract and creating the JVM bindings much easier.
We’ve also been working on the Web3j unit module to allow you to improve the automated and integration testing of your contracts. Rather than having to spin up a node, or use Ganache for integration testing, Web3j runs an EVM in process in your tests meaning that you can test your contracts as if you’re testing any other piece of Java code.
We’ve got big plans for improving the Web3j SDK over the next 12 months -
- We aim to minimise friction for developers during the onboarding process so it’s much easier for overall adoption.
- We want to automate test generation based on contracts, so you have enough information about a smart contract to be able to infer these pieces of information, not just the integration test but unit tests as well.
- We want an integrated EVM, something lightweight so developers can quickly see if contracts are working without having to deploy through a real network.
- We want to include Vyper support. There is a growing amount of interest in using Vyper as a language for smart contract development and we want to make sure we support it with a seamless developer experience.
- We want to automate a RESTful API generation off the back of smart contracts, saving developers from having to create a restful service on top of the application that integrates with the blockchain.
As you can see we are aiming big for 2020 and we won't stop there!
You can get started quickly and easily with the Web3j SDK here and make sure to subscribe for more news and updates!