Our engineers have been hard at work making o1js the most intuitive zero knowledge proof SDK around. In this edition of What’s New, we’ll go over some of the features released in the past few months that we’re most excited about.
The theme of this update is giving developers more robust tools to take their zkApps to the next level. Many new features are deep architecture-level changes intended to unlock more flexible, creative, and complex zkApps.
New Off-Chain State API
So far, one of the biggest challenges facing o1js developers has been managing complex state in their smart contracts. The new offchain state module, currently released in our Experimental
namespace, offers developers an interface for CRUD operations on a large dataset with an event-based reducer protocol to handle concurrent updates. (#1630, #1652)
To get started, read our detailed documentation.
Sideloaded Verification Keys
The ability to verify a sideloaded verification key in o1js provides developers with more flexibility to build complex systems. An important design pattern that this update unlocks is mutually-recursive zk programs. In other words, a system with multiple zk programs can now support circular dependencies. (#1606)
This feature was implemented by @rpanic from protokit and resolved Mina Protocol’s RFC 0002. So we offer a special thank you to them and are pleased to highlight the success of this effort from across the ecosystem!
More Efficient Comparisons
o1js is an extremely constraint-efficient circuit SDK. In March, we landed an update that makes our numeric comparisons even more efficient by implementing a new comparisons gadget. This simple-sounding update still makes a big impact for developers who want to pack as much proving power into as small of a circuit as possible. Ultimately, our focus on efficiency will pay dividends for developers who want to create proofs as quickly and cheaply as possible. (#1523)
Make Proving Optional for ZK Program
We recently merged a highly-requested feature from our dev community, enabling faster iteration and development time for zkApps. The idea behind making proving optional, is to allow developers to run unit tests and scripts on their zkApp in Javascript, without actually compiling a circuit and creating a proof. Many bugs and typos can be discovered quickly in this dry run style before enabling proofs to test the fully functional feature. (#1805)
Until Next Time…
If you’re as excited about these updates as we are and want to start building, check out our tutorials. #zkapps-developers on discord is a great place to meet other devs, discuss ideas, and get technical support on your project.
You can keep up to date with o1Labs over on X/Twitter.