Axiom for Developers
How Axiom fits into your smart contract application
Last updated
How Axiom fits into your smart contract application
Last updated
Axiom provides smart contracts trustless access to all on-chain data and arbitrary expressive compute over it. To integrate Axiom into your on-chain application, follow the following steps:
Specify a query into Axiom which computes over the history of Ethereum through our Javascript frontend for ZK circuits (see AxiomREPL to get started right in your web browser).
Export a client-side ZK prover for your dapp frontend that enables your users to verify the computation locally and send queries to the AxiomV2Query contract on-chain to verify the authenticity of the on-chain data inputs.
Implement a callback on your dapp smart contract to receive ZK-verified results from the AxiomV2Query contract.
Axiom is not an indexer or data aggregation service like The Graph or Covalent. Instead, dapps built with Axiom may use one of these services to find the data they want to prove with Axiom.
Here is a simplified stack diagram of where Axiom would fit into your on-chain application:
We've provided a general flow for a common way your app, third-party services, and Axiom can fit together. The user flow for Axiom involves the following steps:
Construct an Axiom query on your app frontend using the Axiom SDK. This will involve fetching inputs from a JSON-RPC node or indexer and generating a client-side ZK proof using our exported prover. Once constructed, users send the query on-chain to the AxiomV2Query contract.
Axiom will index the query, compute the result, and generate a ZK proof of validity. The result and proof are sent on-chain and verified in the AxiomV2Query contract.
Finally, Axiom will atomically call the user-specified callback on your smart contract with the ZK-verified results of the computation over the history of Ethereum. Your smart contract can then use these results trustlessly for your application.
A visual illustration of this flow is in the diagram below:
For more information, you can go through the Autonomous Airdrop example to see how all of the different parts fit together.