This is a boilerplate project setup for Java smart contracts. It brings the minimum amount of code to compile and test a "Hello World" smart contract for Neo N3.
Java 1.8 (or higher) is required. Docker is required for running smart contract tests.
- Clone this git repo:
git clone https://github.com/neow3j/neow3j-boilerplate.git
- Go to the project directory:
cd neow3j-boilerplate
- Compile the smart contract:
./gradlew neow3jCompile
- You will see the following output in the directory
./build/neow3j
:
$ ls -la build/neow3j
total 24
drwxr-xr-x 5 user wheel 160 23 Feb 17:40 .
drwxr-xr-x 7 user wheel 224 23 Feb 17:40 ..
-rw-r--r-- 1 user wheel 425 23 Feb 17:40 HelloWorldSmartContract.manifest.json
-rw-r--r-- 1 user wheel 94 23 Feb 17:40 HelloWorldSmartContract.nef
-rw-r--r-- 1 user wheel 430 23 Feb 17:40 HelloWorldSmartContract.nefdbgnfo
- Run the contract test
./gradlew test
- Give us a GitHub star! ⭐⭐⭐
To adapt the boilerplate project to your own smart contract project, here are some things that you will have to change in the code.
- Project name. I.e., the root folder's name and the
rootProject.name
property in the settings.gradle file. - Name of the contract. I.e., the name of the class and the value in the
@DisplayName
annotation on the contract class. - Name of the author. I.e., the value in the
@ManifestExtra(key = "author", value = "Your Name")
annotation on the contract class. - Package name.
- Group name. I.e., the
group 'org.example'
property in the build.gradle file. - Neow3j Gradle plugin property
className = "org.example.HelloWorldSmartContract"
in the build.gradle file according to the new package and class name you chose. - And of course the contract tests in
HelloWorldSmartContractTest
.
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.
Check out neow3j.io for more information on neow3j and the technical documentation.