Introducing Axiom V2

Announcing the testnet release of Axiom V2.

Introducing Axiom V2

Axiom is shifting its focus to building with and supporting OpenVM. Due to this, we are ending support for Axiom V2 effective December 21, 2024. 

Today we are announcing Axiom V2, the next evolution of Axiom. Axiom V2 allows smart contract developers to perform ZK-verified compute over the entire history of Ethereum. Developers can specify their data access and compute in a new Javascript interface, and they can access Axiom-verified results on-chain by simply implementing a single smart contract callback interface.

Until now, using the power of ZK as a smart contract developer has required learning new languages and deploying arcane ZK-specific verifier contracts. We've developed Axiom V2 to remove this complexity and allow developers to integrate using Solidity and Javascript alone. In addition, using Axiom V2 does not require ZK-specific smart contract deploys, meaning developers can stay within existing smart contract workflows and focus on application logic instead of ZK-specific implementation details.

New features in Axiom V2 will allow smart contract developers to:

  • Read any piece of on-chain data that has appeared in the history of Ethereum, including block headers, accounts, contract storage, and the new additions of transactions and receipts.
  • Specify arbitrary ZK-verified computations over this data in Javascript.
  • Verify results on-chain in a universal verifier and receive authenticated results in a callback without ZK-specific smart contract deploys.

A beta release of Axiom V2 is live on Goerli testnet today, and we anticipate a mainnet deployment after completing security reviews. To integrate into your application, check out the docs at docs.axiom.xyz, try composing a query in your web browser with AxiomREPL, or fork our quickstart repo. If you have an idea you'd like to discuss, fill out our early partner form or talk with other developers on Telegram.

Integrate Axiom V2 on Goerli Testnet Today

Axiom V2 is now deployed on Goerli testnet and ready for developers to integrate against. Today, developers can use the Axiom Client SDK to specify their data access and compute in a new Javascript interface. We prove the validity of all query results using a ZK proof verified on-chain and forward the results to a callback function on your smart contract.

To compose your first query into Axiom in minutes, try our AxiomREPL web interface at repl.axiom.xyz. To integrate into your smart contract application using the Axiom Client SDK, check out our developer docs and quickstart example. Write a ZK circuit accessing historic on-chain data in only a few lines of Javascript:

Accessing historic average account balances using the Axiom Client SDK

Axiom V2 is currently in audit and should not presently be used in production. We'll have more to share about our mainnet plans in the coming weeks. In the meantime, we have many ideas for apps to build with Axiom, and we'd love to discuss your idea! If you'd like to chat, fill out our early partner form or join our Telegram.

What's new in V2?

Axiom V2 provide developers more access to on-chain data and ZK-verified compute and makes Axiom easier to integrate with smart contract applications. We highlight the main new features below.

On-chain Transaction and Receipt Access

Axiom V2 gives developers ZK-verified access to transaction and receipt data, including calldata and logs (which correspond to events in Solidity). These record important information like token transfers or protocol usage history, but until now, they have never been available for developers to use in their smart contracts. When combined with data accessible in Axiom V1, they make the entirety of the Ethereum history accessible to Axiom. The full set of accessible data types is:

  • block headers
  • accounts
  • contract storage
  • transactions
  • receipts
  • (nested) Solidity mappings

Axiom Client SDK: Javascript Interface for Data and Compute

The Axiom Client SDK provides a Javascript interface for developers to specify Axiom client circuits which can:

  • request authenticated on-chain data using SDK library functions like getHeader, getAccount, getStorage, getTx, getReceipt
  • access ZK-verified compute through our library of ZK circuit primitives

The SDK exports a WASM-based client-side ZK prover that can be integrated into a web frontend as a single React component. Developers can use the SDK to specify a query into Axiom V2 by choosing the relevant historic on-chain data and compute over that data in their Axiom client circuit. This allows developers to integrate custom queries into Axiom without the need to deploy ZK proving servers or get permission from Axiom.

To demonstrate the Axiom Client SDK, we developed AxiomREPL, a browser-based REPL for the client SDK. Try it out at repl.axiom.xyz to write your first Axiom client circuit and submit your first test query to Axiom V2 on Goerli testnet in minutes.

Smart Contract Integration Via Axiom Callback

Finally, applications receive results of queries into Axiom on-chain by implementing a smart contract callback. We use a universal aggregation procedure which enables ZK proofs for different Axiom client circuits to be verified with the same on-chain verifier. This means developers can integrate results from Axiom V2 by accepting the callback format below:

Axiom V2 on-chain callback interface

After validating the provided query metadata to ensure the callback pertains to their application, developers can read the ZK-verified results from the axiomResults array and use them with the same level of security as data accessed in the EVM. Unlike other ZK integrations, this requires no new verifier contract deployments, allowing developers to access the power of ZK within a standard smart contract interface.

What’s Next?

We'll have more to share soon about our path to mainnet and future plans. As a preview, L2 and cross-chain support is in the works, and we will also be adding more ZK primitives accessible to Axiom Client circuits over time. Let us know on Telegram if there are specific primitives you are interested in using, and follow us on Twitter to stay updated.

In the meantime, try your first Axiom query at repl.axiom.xyz and start integrating into Axiom V2 on Goerli testnet today with our developer docs at docs.axiom.xyz. If you have an idea you'd like to discuss, fill out our early partner form or chat with other developers on Telegram. We're excited to see what new applications you come up with!