web3j

Project

 

Status
CII Badge
DescriptionHyperledger Web3j is a highly modular, reactive, type safe Java and Android library for working with Smart Contracts and integrating with clients (nodes) on the Ethereum network.

Web3j is the Java and Android integration library for Ethereum. It was created back in 2016 by Web3 Labs founder, Conor Svensson, to provide the plumbing for enterprise developers to work with Ethereum-compatible blockchains.

During the past two decades, many large enterprises invested heavily in the Java Virtual Machine (JVM) platform for building out their internal platforms. However, public blockchain networks were not designed with the enterprise users in mind.

Web3j was created to provide a straightforward integration path for enterprises using the JVM platform to work with Ethereum technology.

Web3j is a 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


Web3j was first created back in 2016 out of the need to simplify working with Ethereum networks using the Java and Android platforms (collectively referred to as the JVM from herein). Web3J intends to make it as simple as possible for enterprise developers to integrate with the leading blockchain network Ethereum.


In the 7 years since Web3j's initial creation a vibrant community has been built. Key project metrics include:


  • 4.8k GitHub stars
  • 192 contributors
  • 106 releases
  • 1.7k forks
  • Over 1000 resolved issues
  • Over 2 million downloads


Web3j is a successful open source project and a key piece of open source infrastructure for the Ethereum ecosystem.


Key Characteristics

Ease of Integration with Existing Systems: Hyperledger Web3j is a lightweight, highly modular Java library that can be easily integrated into existing enterprise systems. This makes it an ideal choice for organizations looking to adopt blockchain technology without overhauling their current infrastructure.

Comprehensive Ethereum Support: As a Java library for working with the Ethereum blockchain, Hyperledger Web3j provides comprehensive support for a number of Ethereum components and ecosystems. This includes smart contract deployment and integration, transaction signing, wallet creation and management, and querying blockchain data, making it a versatile tool for enterprise blockchain applications.

Highly Modular: Hyperledger Web3j is a highly modular project that enables users of the library to easily select the components they need for their project. If a project just wants to use the cryptography components of Hyperledger Web3j, they can. Or they can opt just to use the RPC capabilities for querying nodes but not the smart contract capabilities. All of this is straightforward due to its modular nature.

Powerful Build Tools: Hyperledger Web3j enables developers to stay in  their JVM environment when developing using the library. It takes care of Solidity code compilation and testing via its build tools providing a highly integrated development experience.

Smart Contract Wrappers: Hyperledger Web3j simplifies the interaction with smart contracts by generating Java smart contract wrappers. This allows enterprise developers to deploy and interact with smart contracts as if they were Java objects, significantly reducing the learning curve and development time.

Reactive Functional Programming: The library supports reactive functional programming, enabling developers to easily write code to ingest historic and real-time blockchain data. This is particularly beneficial for enterprises dealing with complex systems and large volumes of data.

Secure Transaction Management: Hyperledger Web3j provides robust features for secure transaction management, including offline transaction signing. This ensures that private keys remain secure, which is a critical concern for enterprise applications.

Compatibility with Popular Java Tools: Hyperledger Web3j is compatible with popular Java tools and frameworks like Spring Boot, making it easier for Java developers to adopt and integrate into their existing workflows.

Active Community and Support: Hyperledger Web3j already has a strong and active community, providing enterprises with access to a wealth of knowledge and support. This community-driven development ensures continuous improvements and updates, keeping the library aligned with the latest blockchain innovations.

Reduced Blockchain Complexity: By abstracting the complexities of the Ethereum blockchain, Hyperledger Web3j allows enterprise technologists to focus on building business logic rather than dealing with the intricacies of blockchain technology.

Performance and Scalability: Designed with performance in mind, Hyperledger Web3j is suitable for enterprise-grade applications that require high throughput and scalability.

Support for Both Public and Private Networks: Hyperledger Web3j fully supports integrating with public and private Ethereum networks. For instance, it supports Hyperledger Besu's transaction privacy and private network API.

Synergies with Hyperledger Besu: Hyperledger Besu and Hyperledger Web3j already have reciprocal relationships, with both projects leveraging one another.

Participation

We're really keen to get contributions from the Hyperledger community and find maintainers from more organizations. This will help the project thrive further.

The easiest way to get started is to try out Hyperledger Web3j and create your own project via the Web3j command line interface:

curl -L get.web3j.io |sh
web3j new

You can then dig around the project structure that gets created.

If you have an RPC endpoint and wallet with a balance to pay for gas fees, you can run the application with:

web3j run <network_url> <wallet_path> <wallet_password>

From here we encourage you to check out the project home page at github.com/web3j/web3j and the documentation at docs.web3j.io.

You can chat to the Hyperledger Web3j community and maintainers at the Hyperledger Discord.

Documentation

Documentation for the project can be found here:

docs.web3j.io

Project Management and Issue Tracking


Repositories

You can find the repositories for Web3j here:

github.com/web3j/web3j

Communication

Mailing List

Chat (for questions and ephemeral discussions)

Questions are welcome and best asked in Hyperledger Discord.  

Learn more about Hyperledger Discord here, get the invite and check out one of the many Web3J project channels.  

Meeting

Comin soon. 

Calendar

History

  • Proposed by

    • Conor Svensson, December 15, 2023

  • Approved 

    • TOC Approval January 11, 2024

Getting Involved

You are invited to get involved with the Web3j project.  Here are some ways you can get started.

  1. Join our Community calls happening every 2 weeks, check calendar - https://lists.hyperledger.org/g/web3j/calendar
  2. File us an issue report or pull request.
  3. Join communication channels and introduce yourself and ask questions (details below)
  4. Grab a good first issue based on your level of experience/technical area(s) of expertise or interests:
    1. All Good First Issues

Communication

Mailing List

Chat (for questions and ephemeral discussions)

Questions are welcome and best asked in Hyperledger Discord.  Learn more about Hyperledger Discord here, get the invite and check out one of the many Cactus project channels.  

Daily Meetings

update

https://lists.hyperledger.org/g/web3j/calendar

Calendar of Public Meetings

Recent space activity

Space contributors