Web3j: Web3 Java Ethereum Ðapp API
Web3j is a lightweight, highly modular, reactive, type safe Java and
Android library for working with Smart Contracts and integrating with
clients (nodes) on the Ethereum network:
This allows you to work with the Ethereum
blockchain, without the additional overhead of having to write your own
integration code for the platform.
The Java and the Blockchain talk provides
an overview of blockchain, Ethereum and Web3j.
Features
Complete implementation of Ethereum's
JSON-RPC client
API over HTTP and IPC
Ethereum wallet support
Auto-generation of Java smart contract wrappers to create, deploy,
transact with and call smart contracts from native Java code
(Solidity
and
Truffle
definition formats supported)
Reactive-functional API for working with filters
Support for Parity's
Personal,
and Geth's
Personal
client APIs
Support for Alchemy and Infura, so you don't have to run
an Ethereum client yourself
Comprehensive integration tests demonstrating a number of the above
scenarios
Command line tools
Android compatible
Support for JP Morgan's Quorum via
web3j-quorum
It has five runtime dependencies:
RxJava for its
reactive-functional API
OKHttp
for HTTP connections
Jackson Core for fast
JSON serialisation/deserialization
Jnr-unixsocket for *nix
IPC (not available on Android)
It also uses JavaPoet for
generating smart contract wrappers.
QuickStart
The simplest way to start your journey with Web3j is to create a project.
We provide this functionality using the Web3j CLI. This latter can be installed as follows:
For Unix:
curl -L get.web3j.io | sh && source ~/.web3j/source.sh
For Windows, in Powershell:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/web3j/web3j-installer/master/installer.ps1'))
Create a new project by running:
$web3j new
Or use our Maven or Gradle plugins.
Please head to the Web3j Documentation for further instructions on using Web3j.
Maven
Java:
org.web3j
core
4.8.4
Android:
org.web3j
core
4.6.0-android
Gradle
Java:
compile ('org.web3j:core:4.8.4')
Android:
compile ('org.web3j:core:4.6.0-android')
Build instructions
Web3j includes integration tests for running against a live Ethereum
client. If you do not have a client running, you can exclude their
execution as per the below instructions.
To run a full build (excluding integration tests):
$ ./gradlew check
To run the integration tests, you will need to set up these variables in order to pull the Docker
images from the Docker Hub registry:
registry.username
registry.password
Then run the following command:
$ ./gradlew -Pintegration-tests=true :integration-tests:test
Check the Docker client API
for more information on configuration options.
Commercial support and training
Commercial support and training is available from
web3labs.com.
License
Apache 2.0