# 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;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://intrinsic-1.gitbook.io/axiomv2-sdk/developers/specifying-a-query-into-axiom.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
