Java/Kotlin/Android Development Toolkit for the Neo Blockchain
neow3j: A Java/Kotlin/Android Development Toolkit for the Neo Blockchain
Neow3j is a development toolkit that provides easy and reliable tools to build Neo dApps and Smart Contracts using the Java platform (Java, Kotlin, Android). It is an open-source project developed by the community and maintained by AxLabs.
Visit neow3j.io for more information and technical documentation.
Quickstart
Neow3j is composed of an SDK for dApp development and a devpack for smart contract development -- which also includes a compiler (JVM to NeoVM). The following sections describe how to get started with them! :rocket:
SDK
To make use of all neow3j SDK features, add io.neow3j:contract to your dependencies.
Gradle
implementation 'io.neow3j:contract:3.24.2'
Maven
<dependency>
<groupId>io.neow3j</groupId>
<artifactId>contract</artifactId>
<version>3.24.2</version>
</dependency>
Releases are available for Neo Legacy and Neo N3. The example above shows the newest release of neow3j for Neo N3. To use the latest release for Neo Legacy, use the version 2.4.0.
Devpack/Compiler
For smart contract development, you need the io.neow3j:devpack dependency. It provides all Neo-related utilities to write your first smart contract on the Neo blockchain!
Then, add the following dependency to your project.
Gradle
implementation 'io.neow3j:devpack:3.24.2'
Maven
<dependency>
<groupId>io.neow3j</groupId>
<artifactId>devpack</artifactId>
<version>3.24.2</version>
</dependency>
Note: The devpack and compiler are only available for Neo N3. Thus, Java cannot be used to
compile smart contracts that are compatible with Neo Legacy.
Contribute
Contributors are welcome!
Take a look at our open issues. We’re collecting all issues in the main neow3j repository, including issues related to documentation, tutorials, and coding examples. Some issues are labelled with a level of difficulty (beginner, intermediate, advanced). Create new issues if you want something not on the list.
Join the AxLabs Discord server to chat with us and ask questions. Here are some points that should help you get started with the code base.
- Setup 🔰
main branch. PRs are merged directly into main.
- Java 🍵
- Tests 🧪
./gradlew test.
- Run integration tests with ./gradlew integrationTest. They require Docker for spinning up a containerized blockchain node.
- Linting and formatting 🧹
.idea folder committed to the repo that you could use if you work with IntelliJ.
- Code Structure 🏗️
contract and devpack depend on core, orcompiler depends on contract and devpack.
- All integration tests live in their own sub-project called int-tests. The reason being dependency issues if we place the tests in their respective project.
Who's using neow3j? :rocket:
- Binance
- OKEx
- AxLabs
- GrantShares
- Flamingo (FUSD)
- NeoCompounder (cNEO)
- Neo Blockchain Toolkit
- NekoHit
- NeoCandy
- Neo Playground
- Elements
- intellij-neo
- Would like to be listed here? Contact us
Donate :moneybag:
Help the development of neow3j by sponsoring us using the following addresses:
| Crypto | Address | |------------|----------------------------------------------| | Neo N3 | NfhQyNmMCLCKaaazL6gbvYxtkZNGVb8kRn | | Neo Legacy | AHb3PPUY6a36Gd6JXCkn8j8LKtbEUr3UfZ | | ETH | 0xe85EbabD96943655e2DcaC44d3F21DC75F403B2f | | BTC | 3L4br7KQ8DCJEZ77nBjJfrukWEdVRXoKiy |
Thanks and Credits :pray:
- NEO Foundation & NEO Global Development (NGD)
- This project was strongly based on web3j latest