Java support has officially landed on Neo3 following the recent release of neow3j v3.3.0 by Neo community development team AxLabs. Alongside a range of new features and improvements for the Java SDK, the release introduces a Java smart contract compiler and devpack, providing full compatibility with Neo3 Preview3.

Neow3j for Neo3 Preview3

Neow3j 3.3.0 allows Java developers to begin work on Neo3 integrations. This milestone enables developers to write a Java-based smart contract, test it in the same IDE, and finally deploy the compiled contract via a Neo3 node. The process is designed to considerably enhance the developer experience for Neo applications based on Java.

On the SDK front, AxLabs recently completed a rework of the API used for smart contract interaction. Developers can expect a more consistent and intuitive way to use this part of the library. Additionally, the team completed the implementation of all StackItem types with the addition of the Buffer and Pointer types, and expanded the NeoToken and Policy native contracts with new methods.

The compiler & devpack also saw several changes and improvements, most of which were required for compatibility with Neo3 Preview3. These include introduction of the new Binary and Callback Syscalls, removal of entry point annotation, and the addition of an annotation for adding SupportStandards to the contract manifest.

Three new helper methods (addressToScriptHash, hexToBytes, and stringToInt) have been added to the devpack to allow conversion of string literals at compile-time in static variables. Further, support for string concatenation has been enabled in the compiler through the + operator. A full list of changes and new features can be viewed in the release notes.

To better equip Java developers with a guide to creating their own smart contracts, AxLabs has also published a number of example contracts.

Creating a Hello World contract in Java with Neow3j

These templates include a basic Hello World contract, a NEP-5 template, and other examples such as the NameService contract which demonstrates more complex features including storage, CheckWitness, different data types, and arithmetic operations.

Next steps for the library will focus on preparation for the Neo3 TestNet launch, which is expected to run on the upcoming Preview 4 release. AxLabs is staying on top of the latest core developments, ready to implement changes needed for compatibility and ensure that Java support is ready to follow the launch.

Other roadmap items for neow3j include support for non-fungible tokens in the SDK and smart contract events in the compiler and devpack.

(Re)introducing AxLabs

Neo development community AxLabs consists of three passionate builders and open-source evangelists. They became involved early on in the blockchain scene in Switzerland, working alongside several start-ups and corporations. Alongside their broad experience in the software engineering industry, the three share an academic background, with various degrees from the University of Zurich.

Dr. Guilherme Sperb Machado is a Java/JVM expert with a solid background in blockchain. He’s a serial open-source project contributor, and brings 12 years of experience in industry/academic projects alongside a Ph.D. in Computer Science. Guil contributes to the neow3j project as a whole, and is constantly on the hunt to discover and materialize the next big thing.

As lead software engineer, Claude Müller contributes to the neow3j SDK and is the key person behind the compiler and devpack. A fellow Java/JVM expert with an M.Sc in Computer Science, Claude has worked with blockchain technology for over 3 years, two of which were spent working on Neo. Claude is an expert in getting things done, leading planning, design, and execution of projects.

Rounding out the trio is Michael Bucher, a full-stack software engineer who helps keep things running smoothly and looking pretty with various code quality enhancements and frontend contributions. Drawing on his experience as a Java programmer with a B.Sc. in Computer Science, Michael has authored numerous improvements to the neow3j SDK since starting work on Neo in early 2020.

AxLabs joined the Neo ecosystem championing the importance of a good developer experience. The team quickly focused its efforts on rectifying the lack of support available at the time for the Java community. It seeks to combine innovation with stable & production-grade solutions. In a conversation with Neo News Today, Guil & Claude commented:

“That’s why we have the motto ‘using bleeding-edge technologies to build rock-solid products’. All of the team members are builders. Passionate to deliver products, tools, libraries, or anything else that is useful to people out there.”

Not long after its introduction, the team produced a feature-complete Java & Android SDK for integrating existing applications with Neo2. First introduced at Neo DevCon in Seattle, the neow3j library was later expanded with support for Kotlin and supplemented with new features to expand its focus beyond simply being an SDK.

The team has also drawn on its academic background to help disseminate information about blockchain development. Members have held lectures and given talks and tutorials about Neo at various universities and conferences, focusing specifically on neow3j and COZ’s neo-python as the development tools.

Attracting developers

Alongside it’s work on Neow3j, AxLabs is hungry to further lower the barrier to entry for developing on Neo with tools to capture the attention of software engineers. To this end, the team is currently working on a VS Code-based Neo IDE & node that runs completely in the browser, building on its original ambition of providing a high quality developer experience on Neo.

“We’re obsessed with the idea that, in order to get more blockchain developers for Neo, we should provide tools that lower the entry barrier to “try things out quick and dirty”. The first contact with the Neo blockchain tech is key to capture software engineer’s attention. It should be easy to just try it out.”

Conceptualized as the “Neo Playground,” the service would allow Java developers to quickly run Neo examples or templates without needing to install anything. Different code examples, additional programming languages, and other tools from Neo development groups can also be integrated in the future. In particular, AxLabs is planning strong integration with the Neo Blockchain Toolkit, made possible with the addition of debugging capabilities to the neow3j compiler.