Java Cryptocurrency libraries work with the Bitcoin protocol to maintain a wallet. They send/receive cryptocurrency transactions without storing a local copy.
One such library is bitcoinj. These open-source libraries have many advanced features implemented in Java and can be used by any JVM-compatible programming language, like Python. With these libraries, you can create components for building Bitcoin, Ethereum, Altcoin, Litecoin, and other such popular crypotocurrencies. You can also create and maintain the bitcoin wallet, integrate with popular crypto-exchanges, enable automated trading, and so on. You can use these to incorporate blockchain into a Java project, create wallets, and manage transactions between nodes, often without having to write your own integration code.
Below is our list of the 48 best Java cryptocurrency libraries that are open-source in 2021. XChange is a Java library of streamlined APIs for interaction with more than 60 Bitcoin and Altcoin exchanges. It has an MIT license and modular components with minimal dependency on third-party applications. Another library, bitcoin-wallet, is a wallet app for your Android device that works as a standalone Bitcoin payment platform with no centralized backend requirement. With this, you can integrate Bitcoin payments into your Android app. On the other hand, Best is an Apache 2.0 licensed enterprise-grade Ethereum client that is Java-based and MainNet compatible. Depending on your requirements, you can choose any of these open-source libraries for your project.
bitcoinj:
- It is a Java library for working with the Bitcoin protocol.
- This library provides functionality for creating and managing Bitcoin wallets.
- It is a lightweight library. This makes it suitable for applications with resource constraints.
bitcoinjby bitcoinj
A library for working with Bitcoin
bitcoinjby bitcoinj
Java 4582 Version:v0.17-alpha1 License: Permissive (Apache-2.0)
bisq:
- It is a Java library used in Security, Cryptography, and Bitcoin applications.
- It is a decentralized, open-source cryptocurrency exchange platform.
- It allows users to trade various cryptocurrencies in a pop manner. It does not need central authority.
bisqby bisq-network
A decentralized bitcoin exchange network
bisqby bisq-network
Java 4332 Version:v1.9.10 License: Strong Copyleft (AGPL-3.0)
web3j:
- Web3j is a Java library for working with the Ethereum blockchain.
- It enables developers familiar with Java to take part in blockchain development.
- It helps developers build secure and reliable apps. This handles the intricacies of blockchain interactions.
web3jby web3j
Lightweight Java and Android library for integration with Ethereum clients
web3jby web3j
Java 4656 Version:v4.10.0 License: Others (Non-SPDX)
XChange:
- Used in Financial Services, Fintech, Security, Cryptography, Ethereum, Bitcoin applications.
- It provides a consistent API for interacting with a diverse set of exchanges.
- It is crucial for facilitating exchanges, handling market data, and executing trading strategies.
XChangeby knowm
XChange is a Java library providing a streamlined API for interacting with 60+ Bitcoin and Altcoin exchanges providing a consistent interface for trading and accessing market data.
XChangeby knowm
Java 3625 Version:Current License: Permissive (MIT)
bitcoin-wallet:
- A Bitcoin wallet is crucial for managing and securing users' Bitcoin holdings.
- The wallet stores private keys, allowing users to control and access their Bitcoin.
- It generates and manages Bitcoin addresses for receiving payments.
bitcoin-walletby bitcoin-wallet
Bitcoin Wallet app for your Android device. Standalone Bitcoin node, no centralized backend required.
bitcoin-walletby bitcoin-wallet
Java 3220 Version:v5.16 License: No License
BitHub:
- BitHub is a Java Cryptocurrency library.
- Used in Blockchain Bitcoin applications.
- The BTC and BitHub are experiments in funding privacy OSS.
BitHubby signalapp
BTC + BitHub = An experiment in funding privacy OSS.
BitHubby signalapp
Java 985 Version:Current License: No License
exchange-core:
- It refers to the core functionality responsible for handling cryptocurrency exchange-related operations.
- The exchange-core handles executing buy and sell orders on the cryptocurrency market.
- It implements the logic for matching buy and sell orders. It is a fundamental aspect of any exchange.
exchange-coreby mzheravin
Ultra-fast matching engine written in Java based on LMAX Disruptor, Eclipse Collections, Real Logic Agrona, OpenHFT, LZ4 Java, and Adaptive Radix Trees.
exchange-coreby mzheravin
Java 921 Version:exchange-core-0.5.3 License: Permissive (Apache-2.0)
besu:
- It is compatible with the Ethereum protocol.
- It facilitates the execution of smart contracts on the Ethereum Virtual Machine (EVM).
- It supports interoperability between different blockchain networks.
besuby hyperledger
An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
besuby hyperledger
Java 1178 Version:23.4.1 License: Permissive (Apache-2.0)
subzero:
- subzero is a Java library used in Security, Cryptography, Ethereum, Bitcoin applications.
- It refers to a specific library feature, module, or concept.
- It is Block's Bitcoin Cold Storage solution.
bxbot:
- It is a Java library used in Blockchain, Cryptocurrency, Bitcoin applications.
- It is a simple Bitcoin trading bot in Java for trading on cryptocurrency exchanges.
- It addresses the needs of developers working with cryptocurrency-related tasks in Java.
wallet-android:
- wallet-android in a Java cryptocurrency library. It refers to a component responsible for managing cryptocurrency wallets on Android devices.
- It provides an interface for managing digital assets on a mobile platform.
- It facilitates the creation, signing, and broadcasting of transactions on the Blockchain.
wallet-androidby mycelium-com
Mycelium Bitcoin Wallet for Android
wallet-androidby mycelium-com
Java 592 Version:Current License: Others (Non-SPDX)
CoinExchange_CryptoExchange_Java:
- CoinExchange_CryptoExchange_Java is a Java Cryptocurrency library.
- It helps in Security, Cryptography, and Bitcoin applications.
- It is the best Java open-source cryptocurrency exchange platform.
CoinExchange_CryptoExchange_Javaby jammy928
The best Java open source crypto currency exchange platform, bitcoin exchange based on Java | BTC exchange | ETH exchange | digital currency exchange | trading platform | matching trading engine. This project is based on the development of Spring Cloud microservices and can be used to build and secondary development of digital currency exchanges. It has a complete source code for matching trading engines, back-end management (back-end + front-end), front-end (transaction page, activity page, personal center, etc.), Android APP source code, Apple APP source code, currency wallet RPC source code. Contact Email: 877070886@qq.com
CoinExchange_CryptoExchange_Javaby jammy928
Java 920 Version:Current License: Permissive (Apache-2.0)
samourai-wallet-android:
- samourai-wallet-android is a Java Cryptocurrency library.
- It helps with Networking, Router, and Bitcoin applications.
- It is a Bitcoin Wallet focused on privacy when transacting on the Bitcoin network.
samourai-wallet-androidby Samourai-Wallet
Bitcoin Wallet strongly focused on privacy when transacting on the bitcoin network
samourai-wallet-androidby Samourai-Wallet
Java 534 Version:0.99.93 License: Permissive (Unlicense)
DiabloMiner:
- It is a Java-based open-source mining software.
- It mines cryptocurrencies using the OpenCL framework.
- It provides the necessary functions for mining cryptocurrencies.
DiabloMinerby Diablo-D3
OpenCL miner for Bitcoin
DiabloMinerby Diablo-D3
Java 525 Version:Current License: Strong Copyleft (GPL-3.0)
thunder:
- thunder is a Java library used in Blockchain, Ethereum, Bitcoin applications.
- Wallet / Node implementation of the lightning.network P2P protocol.
- The lightning.network enables Off-Chain Bitcoin Payment Channels using smart contracts.
thunderby blockchain
Off-Chain Bitcoin payments using smart contracts
thunderby blockchain
Java 514 Version:v0.1.2-alpha License: Strong Copyleft (AGPL-3.0)
presto-ethereum:
- It is a Java library used in Big Data, Ethereum, and Oracle applications.
- Presto is a powerful interactive querying engine that enables running SQL queries.
- Ethereum blockchain analytics works without knowing how to play with JS API.
presto-ethereumby xiaoyao1991
Presto Ethereum Connector -- SQL on Ethereum
presto-ethereumby xiaoyao1991
Java 450 Version:Current License: Permissive (Apache-2.0)
multibit:
- multibit is a Java library used in Blockchain, Cryptocurrency, and Bitcoin applications.
- This can be crucial for precision in financial transactions. It ensures accurate and flexible handling of various amounts.
- Multibit support allows for more granular control over the transacted cryptocurrency amounts.
xchange-stream:
- xchange-stream is a Java library used in Networking, Websocket, Bitcoin applications.
- It provides a simple and consistent streaming API for interacting with Bitcoin.
- It interacts with Bitcoin and other cryptocurrency exchanges.
xchange-streamby bitrich-info
XChange-stream is a Java library providing a simple and consistent streaming API for interacting with Bitcoin and other crypto currency exchanges via WebSocket protocol. It is build on top of of XChange library providing new interfaces for streaming API. User can subscribe for live updates via reactive streams of RxJava library.
xchange-streamby bitrich-info
Java 400 Version:xchange-stream-parent-4.4.2 License: Permissive (Apache-2.0)
bither-android:
- bither-android is a Java Cryptocurrency library.
- It helps with Blockchain, Cryptocurrency, Ethereum, Bitcoin, and Electron applications.
- Bither is a secure Bitcoin wallet.
bither-androidby bither
Bither - a simple and secure Bitcoin wallet!
bither-androidby bither
Java 390 Version:Current License: Permissive (Apache-2.0)
Upchain-wallet:
- Upchain-wallet is a JavaScript Cryptocurrency library.
- It helps with Blockchain, Cryptocurrency, and Ethereum applications.
- It is a powerful Ethereum Android Wallet & DApp Browser.
Upchain-walletby xilibi2003
以太坊钱包(支持DApp 浏览器)- A Powerful Ethereum Android Wallet & DApp Browser
Upchain-walletby xilibi2003
JavaScript 526 Version:Current License: Strong Copyleft (AGPL-3.0)
teku:
- teku is a Java Cryptocurrency library.
- It helps with Blockchain and Ethereum applications.
- It is a Java implementation of the Ethereum 2.0 Beacon Chain.
tekuby ConsenSys
Java Implementation of the Ethereum 2.0 Beacon Chain
tekuby ConsenSys
Java 545 Version:23.5.0 License: Permissive (Apache-2.0)
nuls:
- It provides a modular architecture. It can be beneficial for developers building blockchain apps in Java.
- It emphasizes interoperability, enabling communication and interaction between different blockchains.
- It supports many consensus mechanisms, including PoC and PoS.
ta4j-origins:
- ta4j-origins are a Java Cryptocurrency library.
- It helps with Blockchain, Cryptocurrency, Ethereum, and Bitcoin applications.
- It is a Java library for technical analysis.
ta4j-originsby mdeverdelhan
A Java library for technical analysis ***Not maintained anymore, kept for archival purposes, see #192***
ta4j-originsby mdeverdelhan
Java 356 Version:Current License: Permissive (MIT)
cointrader:
- It is a Java library used in Blockchain and cryptocurrency applications.
- Coin Trader is a Java-based backend for trading cryptocurrencies.
- It provides complex event processing and triggering, data collection & export, and backtesting.
cointraderby timolson
Coin Trader is a Java-based backend for algorithmically trading cryptocurrencies. It provides data collection and export, complex event processing and triggering, and backtesting - paper trading - live trading.
cointraderby timolson
Java 427 Version:Current License: Others (Non-SPDX)
Lunary-Ethereum-Wallet:
- It helps with Blockchain, Cryptocurrency, Ethereum, and Bitcoin applications.
- It is a designed, easy-to-use, secure, and open-source Ethereum Wallet for Android.
- It provides developers with tools to integrate Ethereum functionality into their apps.
Lunary-Ethereum-Walletby manuelsc
A beautiful, secure and native Ethereum Wallet for Android
Lunary-Ethereum-Walletby manuelsc
Java 354 Version:v1.39 License: Strong Copyleft (GPL-3.0)
donations:
- Donations in a Java cryptocurrency library. It helps in sustaining the development and maintenance of the library.
- It can also foster a sense of community engagement. It encourages developers to contribute and collaborate.
- It enables developers to deliver a robust and up-to-date tool for users.
donationsby SufficientlySecure
Donations library for Android. Supports Google Play Store, Flattr, PayPal, and Bitcoin
donationsby SufficientlySecure
Java 342 Version:Current License: Permissive (Apache-2.0)
alpha-wallet-android:
- It provides an interface for users to manage their cryptocurrency wallets.
- It facilitates the creation and signing of transactions.
- It likely adheres to industry standards and Ethereum Improvement Proposals (EIPs).
alpha-wallet-androidby AlphaWallet
An advanced Ethereum mobile wallet
alpha-wallet-androidby AlphaWallet
Java 481 Version:v3.63 License: Permissive (MIT)
BitcoinChecker:
- It is a Java library used in Blockchain, Cryptocurrency, and Bitcoin applications.
- It is a library, or a tool designed for checking Bitcoin-related information.
- It allows developers to access real-time market data and check app transaction status.
BitcoinCheckerby mobnetic
DataModule for Bitcoin Checker android app
BitcoinCheckerby mobnetic
Java 328 Version:Current License: No License
lighthouse:
- lighthouse refers to a beacon or a reference point for developers.
- It helps maintain consistency in coding standards and design patterns across the library.
- By establishing a lighthouse, the library encourages community collaboration.
lighthouseby vinumeris
Lighthouse: a peer to peer crowdfunding app that uses Bitcoin
lighthouseby vinumeris
Java 311 Version:29 License: Others (Non-SPDX)
eventeum:
- It is a Java library used in Blockchain, Cryptocurrency, Ethereum, and Prometheus applications.
- An Ethereum event listener that bridges your smart contract events and backend microservices.
- its importance in a Java cryptocurrency context would likely revolve around event handling.
eventeumby ConsenSys
A resilient Ethereum event listener that bridges your smart contract events and backend microservices
eventeumby ConsenSys
Java 239 Version:v0.9.0 License: Permissive (Apache-2.0)
huobi_Java:
- It is a Java library used in Web Services, REST applications.
- It is a Java SDK for Huobi Spot API.
- It might offer functionalities like accessing market data and placing trades.
huobi_Javaby HuobiRDCenter
Java SDK for Huobi Spot API
huobi_Javaby HuobiRDCenter
Java 219 Version:v2.1.0 License: Permissive (Apache-2.0)
bitcoin-android:
- It provides functionality for working with Bitcoin transactions and blockchain-related tasks on apps.
- Its importance lies in enabling developers to integrate Bitcoin functionality into Android apps.
- It allows sending and receiving Bitcoin & check balances. Also, it performs other cryptocurrency-related operations.
bitcoin-androidby barmstrong
Send and receive bitcoins from your Android phone!
bitcoin-androidby barmstrong
Java 207 Version:Current License: Permissive (Apache-2.0)
ETHWallet:
- An ETHWallet in a Java cryptocurrency library is important for managing Ethereum wallets.
- It allows you to generate, import, and manage Ethereum addresses. Also allows us to generate public keys, and private keys.
- It secures and controls access to Ethereum assets within a Java application.
multibit-hd:
- It is a Java library used in Blockchain, Cryptocurrency, Bitcoin applications.
- It was a Bitcoin wallet that aimed to enhance security and usability features.
- It Supports external hardware wallets available through the MultiBit Hardware project.
multibit-hdby Multibit-Legacy
Deprecated Bitcoin Wallet
multibit-hdby Multibit-Legacy
Java 172 Version:v0.5.1 License: Others (Non-SPDX)
bitcoin-transaction-explorer:
- It provides a way to interact with the Bitcoin blockchain.
- It enables the exploration of address-related information.
- It allows developers to retrieve information about transactions, addresses, and blocks.
bitcoin-transaction-explorerby yogh-io
Simple and pure block explorer you can run on top of a full node
bitcoin-transaction-explorerby yogh-io
Java 165 Version:beta License: Permissive (MIT)
blockchain-java:
- It provides a decentralized and secure method for managing transactions.
- It ensures transparency and immutability of the transaction history.
- It enables programmable and automated execution of predefined rules within the blockchain network.
blockchain-javaby wangweiX
A simplified blockchain implementation in Java
blockchain-javaby wangweiX
Java 209 Version:Current License: Permissive (Apache-2.0)
status-keycard:
- status-keycard is a Java library used in Web Site, Ecommerce, Ethereum, and Bitcoin apps.
- Keycard is an implementation of a BIP-32 HD wallet running on Javacard 3.0.4.
- It supports both NFC and ISO7816 physical interfaces. It is compatible with any Android phone equipped with NFC and all USB Smartcard readers.
status-keycardby status-im
Our Javacard Implementation for making secure transactions within Status and Ethereum
status-keycardby status-im
Java 163 Version:3.0.2 License: Permissive (Apache-2.0)
mercury:
- mercury is a Java Cryptocurrency library.
- It helps with Security, Cryptography, Ethereum, and Bitcoin applications.
- It is a decentralized cryptocurrency exchange.
mercuryby mappum
:currency_exchange: Decentralized cryptocurrency exchange
mercuryby mappum
Java 160 Version:0.0.2-alpha License: Permissive (MIT)
react-native-geth:
- It is a package for React Native. It allows developers to integrate this library into their React Native apps.
- It is a popular implementation of the Ethereum protocol.
- It allows developers to access functionalities such as creating wallets and sending transactions.
react-native-gethby YsnKsy
Ethereum Light-Client implementation for React Native allow you to [ Generate and manage Ethereum accounts, sign transactions and data - Interact with the Ethereum Blockchain, send transactions, create and interact with contracts - Run your own Light Node or connect to an external node providers ]
react-native-gethby YsnKsy
Kotlin 160 Version:v0.3.1 License: Permissive (MIT)
web3j-spring-boot-starter:
- It is a Java library used in Security, Spring Boot, and Spring applications.
- It is significant for integrating Web3j. It is a Java library for working with Ethereum in Spring Boot applications.
- It simplifies the configuration and setup process. This makes it easier to interact with the Ethereum blockchain through Spring Boot.
web3j-spring-boot-starterby web3j
Spring Boot Starter for web3j
web3j-spring-boot-starterby web3j
Java 214 Version:v1.6.0 License: No License
erc20-rest-service:
- It helps with Blockchain, Cryptocurrency, Ethereum, Spring Boot, Spring, JPA applications.
- It provides a RESTful API for interacting with ERC-20 tokens.
- It is an ERC-20 token standard RESTful service using Spring Boot and web3j.
erc20-rest-serviceby web3labs
ERC-20 token standard RESTful service using Spring Boot and web3j
erc20-rest-serviceby web3labs
Java 155 Version:Current License: No License
okcoin-client:
- okcoin-client is a Java cryptocurrency library.
- It is a Java library used in Blockchain, Cryptocurrency, Bitcoin applications.
- It acts as a OKCoin API Wrapper in Java.
okcoin-clientby sutra
OKCoin API Wrapper in Java.
erc20-rest-service:
- erc20-rest-service is a Java Cryptocurrency library.
- It helps with Blockchain, Cryptocurrency, Ethereum, Spring Boot, Spring, JPA applications.
- It is an ERC-20 token standard RESTful service using Spring Boot and web3j.
erc20-rest-serviceby blk-io
ERC-20 token standard RESTful service using Spring Boot and web3j
erc20-rest-serviceby blk-io
Java 145 Version:Current License: No License
teku:
- It is a Java library used in Blockchain, and Ethereum applications.
- It is a Java implementation of the Ethereum 2.0 Beacon Chain.
- It is changing; hence the recommended building from the latest master.
tekuby PegaSysEng
Java Implementation of the Ethereum 2.0 Beacon Chain
tekuby PegaSysEng
Java 143 Version:0.12.6 License: Permissive (Apache-2.0)
BitcoinVisualizer:
- It is a Java library used in Blockchain, Ethereum, and Bitcoin applications.
- It helps users understand the flow of transactions on Blockchain. This makes it easier to track and analyze.
- It can provide insights into trends, volatility, and potential trading opportunities.
BitcoinVisualizerby thallium205
Creates a graph of the bitcoin blockchain and visually displays the "owner network" to the user's browser.
BitcoinVisualizerby thallium205
Java 141 Version:Current License: No License
iota-java:
- It allows developers to interact with the IOTA Tangle. It is the underlying data structure of the IOTA cryptocurrency.
- Developers can harness the benefits of the IOTA network within their Java projects.
- It provides a convenient way for developers to integrate IOTA into their apps.
iota-javaby iotaledger
IOTA Java API Library. Find documentation on
iota-javaby iotaledger
Java 140 Version:1.0.0-beta9 License: Permissive (Apache-2.0)
api-v1-client-java:
- It refers to a client library. It interacts with a specific version (v1) of a cryptocurrency exchange's API.
- It enforces a consistent structure for interacting with the exchange's API.
- It abstracts away low-level details. It provides a more straightforward interface for developers to work with.
api-v1-client-javaby blockchain
Blockchain Bitcoin Developer APIs - Java
api-v1-client-javaby blockchain
Java 138 Version:v2.0.2 License: Permissive (MIT)
abcore:
- It is a Java library used in Blockchain, Cryptocurrency, Bitcoin applications.
- It is an Android app that fetches Bitcoin core daemon built for Android using NDK.
- It makes it easier to run the Bitcoin Core daemon node on Android set-top box devices.
FAQ
1: What is a Java cryptocurrency library?
A Java cryptocurrency library is a set of tools, functions, and classes written in Java. It eases the integration of cryptocurrency-related functionalities into Java applications.
2: Which cryptocurrencies does the Java library support?
The supported cryptocurrencies depend on the specific library. Ensure that the library supports the cryptocurrencies you intend to work with. Those libraries are Bitcoin, Ethereum, and others.
3: How do I integrate the Java cryptocurrency library into my project?
This integration involves adding the library to your project's dependencies. Refer to the library documentation for detailed instructions on integration.
4: Is the library compatible with blockchain protocols?
Yes, most Java cryptocurrency libraries interact with specific blockchain protocols. It ensures compatibility with the Blockchain you plan to work on. The Blockchain is like Bitcoin's Blockchain or Ethereum's network.
5: Does the library handle wallet functionalities?
Many Java cryptocurrency libraries provide features for wallet management. It includes key generation, transaction signing, and balance inquiry. Check the documentation for details.