> For the complete documentation index, see [llms.txt](https://intrinsic-1.gitbook.io/axiomv2-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://intrinsic-1.gitbook.io/axiomv2-sdk/developers/specifying-a-query-into-axiom.md).

# Specifying a Query into Axiom

Developers send queries to Axiom's on-chain contract requesting a ZK proof for a specific set of data they would like to prove. Queries can be built in [AxiomREPL](https://repl-preview.axiom.xyz) or with the Axiom SDK. See [AxiomREPL](/axiomv2-sdk/developers/axiomrepl.md) and [Quickstart](/axiomv2-sdk/introduction/quickstart.md) for more details, or [Autonomous Airdrop](/axiomv2-sdk/examples/autonomous-airdrop.md) for a concrete example.  Axiom V2 supports two types of queries:

* **Compute Query:** This can be created through the AxiomREPL Javascript interface and supports general computations over the history of Ethereum.
* **Data Query**: This can be created through the Axiom SDK and supports reading data only from the entire history of Ethereum.&#x20;

Most developers will want to use the Compute Query; the Data Query is available for power users.  Learn more about the two types of queries below.

### Compute Query

Compute Queries are built in [AxiomREPL](https://repl.axiom.xyz/), which allows developers to write custom ZK circuits in Javascript which make reference to historic on-chain data on Ethereum. AxiomREPL exports a client-side ZK prover for each compute query which allows users of on-chain applications to generate client-side proofs and send queries to Axiom.

<figure><img src="/files/46lztIWNi9BWFCIBtjgs" alt=""><figcaption><p>Flow diagram of how a Compute Query (using AxiomREPL) may fit into a developer's app.</p></figcaption></figure>

Additional information can be found at [AxiomREPL](/axiomv2-sdk/developers/axiomrepl.md).

### Data Query

In order to construct a Data Query, a developer can specify different **subqueries** for the types of data that they want.  Learn more about the different types of subqueries at [Data Subqueries](/axiomv2-sdk/sdk-and-repl-reference/axiom-sdk-reference/data-subqueries.md).&#x20;

Developers will need to do additional validation within their smart contracts to ensure aspects of query integrity before passing the data to Axiom.

<figure><img src="/files/AY1bY8CWa3ki6mosJuI2" alt=""><figcaption><p>Flow diagram of how a Data Query may fit into a developer's app.</p></figcaption></figure>

## Callback

A Query also includes a callback, which allows users to specify a smart contract that will receive the data after the proof is generated. For more information, see [Handling Axiom Callbacks](/axiomv2-sdk/developers/handling-axiom-callbacks.md).&#x20;
