Where it all started
Everything began in early 2018 when Guil. Sperb Machado was building a Spring Boot backend for a client that needed to integrate with several blockchains, including Ethereum, Bitcoin, Neo and others. To reach Neo he went hunting for a Java SDK that could speak the chain’s JSON‑RPC interface. The only option was neoj.
After a few minutes skimming the code Guil burst out laughing:
“Man, this is dog‑shit wrapped in cat‑shit,” he joked, borrowing a line from The Big Short.
neoj deserved respect for being first, but it felt like a direct C# port, lacking proper type structure and leaving many RPC methods unimplemented. It wasn’t Java‑native, and the crucial features Guil needed simply weren’t there.
A weekend hack becomes neow3j
To finish the client project Guil threw together a minimal JSON‑RPC client, added just the types he needed and shipped. That quick‑and‑dirty fix revealed a bigger gap: Java developers deserved a proper SDK for Neo.
Already familiar with the web3j codebase (Ethereum’s Java SDK), he borrowed its clean patterns, swapped Ethereum types for Neo ones and coined the mash‑up name neow3j. It is pronounced "neow" followed by "three‑j", a playful nod to the cat‑like "meow" sound and the Bongo Cat meme that was everywhere at the time.
Feb/Mar 2018: first private commits
31 Oct 2018: GitHub org/repo created
4 Nov 2018: version v1.0.0 pushed (repo made public the same day)
6 Dec 2018: first Maven Central artefact (v1.0.4)
25 Feb 2019: first GitHub release (v1.0.8)
The out‑of‑order timeline will make sense in a moment.
Zurich, umbrellas and the hidden release
Neo Global Development (NGD) toured Europe with a series of hackathons, stopping in Zurich on 3–4 November 2018. The NEO Zürich Hackathon was featured in websites like Great Zürich Area and Neo News Today.
Sunday the 4th was cold and wet, but Guil packed his laptop, jumped on his bike and rode across town. Inside he greeted familiar faces from the Swiss blockchain scene, as well as Peter Li (author of neoj, Head of Engineering of NGD) and Johnson Zhao (Head of Business Development of NGD at the time).
Guil quietly demoed his still‑private SDK. Both Peter and Johnson smiled and encouraged him to keep going. Energized, he cycled home through the rain and made the repository public that very evening. That is why v1.0.0
precedes its first Maven Central artefact.
From nights‑and‑weekends to NGD‑backed
Within weeks developers began opening issues in GitHub and requesting features in Discord. Then NGD emailed:
“Would you send us a grant proposal?”
"Well, when someone asks you to send a proposal for a grant, you do it, right? 🙂”, Guil said. The grant turned neow3j from a side‑project into a funded roadmap: transaction builders (raw transactions and signatures), deeper docs, and early support for Neo N3 while the new chain was still on the drawing board.
One of Neo’s enduring promises is that you don’t have to learn a new language to build on the platform. C#, Python, JavaScript/TypeScript, Java, Go, whatever you already speak, Neo speaks too. Back in 2018, though, the JVM corner of that promise was thin: Java and Kotlin devs had no polished toolkit. neow3j landed just as that gap started to sting, handing Java developers a familiar, opinionated SDK.
Once the SDK felt rock‑solid for backend and Android work, Guil aimed higher: neow3j should be the reference toolkit for Java‑based smart‑contract development.
The people who pushed it further
In April 2019, Claude Müller joined AxLabs while wrapping up his MSc in distributed systems. His initial pull requests added raw transaction and signature support, but soon he and Guil were white‑boarding how a plain Java class could compile to NeoVM bytecode. Their iterative proof‑of‑concept became the backbone of neow3j’s Devpack and laid the groundwork for Neo N3 compatibility. Claude’s drive meshed perfectly with Guil’s; it turned out to be a natural match.
Almost a year later, in February 2020, Michael Bucher came onboard part‑time while still finishing his MSc. “I remember that one of the first issues Michael was assigned to, if not the first, was to add NEP‑9 compatibility to neow3j,” Guil recalls. Michael dove straight into GitHub, stress testing every onboarding path and, in that very ticket, shipped full NEP‑9 standard support (issue #115, PR #119).
That focus on developer experience never faded (til these days!). Through dozens of pull requests Michael refactored configs, hardened tests and laced the docs with example‑driven tutorials. Even recently, in v3.24.0, he unleashed a redesign of Neow3jConfig
, making the library almost self‑configuring for developers. He’s still dogfooding neow3j in projects like Neo X, surfacing edge cases before users do and proving there’s plenty more mileage left in this journey. Michael’s superpower, what we call "developer empathy”, continues to drive each new refinement he ships.
But let’s get back: their complementary work culminated in the release of neow3j v3.1.0 on 30 July 2020, the first version to support Neo N3 with both SDK and Devpack (compiler/transpiler).
Proof in the numbers
People say that “numbers never lie”, right? Well, let’s take a look at downloads per month metric.
In the past year alone, neow3j has clocked an average of ~11 000 downloads per month, with a breakout spike of ~25 000 in November 2024. Back in 2019 we were thrilled to see ~1 000 monthly pulls, so yes, that’s more than a ten‑fold surge. This clearly demonstrates how much neow3j evolved and matured over time.
June 2024 - May 2025:
September 2023 - July 2024:
May 2023 - April 2024:
May 2021 - March 2022:
May 2022 - March 2023:
May 2020 - March 2021:
May 2019 - April 2020:
You might ask what’s the sudden drop line on the months of April and August 2024? Well, just Maven Central taking a coffee break: actual usage never dipped, and this is a known issue in the repository data collection.
Who’s building with it and what do they say about it?
If numbers lie, well, we could then check what builders are saying about neow3j, qualitatively instead of quantitatively.
neow3j now powers tooling at Binance, OKX, Flamingo, GrantShares and several other projects in the Neo ecosystem.
Discord and Reddit are filled with love‑notes, such as “best docs in the Neo ecosystem” “issue fixed overnight”, “really easy to use", and plenty more. Check below!
“The NGD and neow3j tutorials/docs, on the other hand <chef’s kiss> are top quality. They should just get the guys from neow3j to do a whole revamp of the official documentation.”
— ‘holamund0’ on Reddit, Oct. 1, 2021.
“It’s all thanks to you guys and neow3j. The test framework was fantastic!”
— ‘77696c6c’ on Discord, Jan 24, 2023.
“By the way, I just wanted to say that neow3j and support for it is amazing! I’m really happy with my experience so far.”
— ‘77696c6c’ on Discord, Jan 24, 2023.
“That [fix] was quick! Thanks.. 💪”
— ‘Fireche’ on Discord, Aug 10, 2024.
“About AxLabs: I wish to reforce that they not only keep their docs update, but answer all issues and questions. They often go beyond their responsibilities to fix these problems. During this period that we tried Neo multiple times, AxLabs not only fixed all their bugs in a timely manner, but also fixed problems on projects that didn’t belong to them.”
— ‘ricklock’ on Discord, Feb 6, 2024.
Looking forward
After all this time developing neow3j, we’ve explored just about every idea a developer could imagine. For example, we thought about coming up with a Language Server for richer IDE autocomplete; or an MCP server so LLMs can get a better context on how to be more effective when helping someone to develop with neow3j.
But the reality is: nothing ships unless users ask for it. If there’s no real demand, we’ll tackle other pain points first. That’s what we learned and we try our best to put in practice.
So, feel free to tell us what matters: our DMs on X are always open, and every GitHub issue gets human eyes within 24 hours.
That rainy feeling, still fresh
“Locking my bike outside the hackathon, water dripping from my sleeves, I thought: this can fail, but it's worth a try. Today, every time a Java dev runs./gradlew neow3jCompile
and watches bytecode leap from JVM to NeoVM, I feel the same rush. We’re nowhere near done.”
— Guil
Help us if you liked this article
Star the repo: https://github.com/neow3j/neow3j ⭐️
Share this story with the next Java dev who thinks blockchains are all JavaScript. 😉
Join our Discord — your feedback shapes every release.
Author: Guil. Sperb Machado, Ph.D.
CEO & Builder @ AxLabs