# Deploy a Elastic Prover

## Deploy a Elastic Prover

1. Log in [Snarkify Console](https://console.snarkify.io) with your GitHub account.
2. For first time users, we have prepared a demo prover for you to try it out. Just Click `Try It First` to get started. You will be redirected to github for some configurations if this is the first service on your team.&#x20;

<figure><img src="/files/qgSUlK9VW7U9nDDOWlpX" alt=""><figcaption></figcaption></figure>

3. Once the configuration is done, you can continue to deploy the demo prover. You can simply use the default values and directly click `Deploy` .🚀&#x20;

{% hint style="info" %}
Deploying a demo prover will clone the template repository into your github account first, don't get surprised : )
{% endhint %}

<figure><img src="/files/LJj0B8lUbhLNdPOfTPoC" alt=""><figcaption></figcaption></figure>

4. The service will be rendered  `Unready` for about 5 minutes while our backend pipeline is actively building and deploying your code. Grab some coffee :).

<figure><img src="/files/w8ldC8kJYDxdMYnbKTT2" alt=""><figcaption></figcaption></figure>

5. Once the deployment succeeds, the service status will become `Ready` , and an **Endpoint** will be generated and shown. Note the **Endpoint** of your deployed service, and we will need it to issue a proof generation request to your prover.

<figure><img src="/files/57YkmtHawjTyymw9IHUx" alt=""><figcaption></figcaption></figure>

6. Alternatively, you can also deploy your own prover implementation on the Snarkify Network. Please checkout [Integrate Elastic Prover SDK](/serverless-gpu-proving/deploy-a-elastic-prover/integrate-elastic-prover-sdk.md).

## Issue a Proof Generation Request

In this section, we will show you how to issue a proof generation request to your prover and how to query the generated proof from the command line.

### Create an API key

* Go to the "Access Keys" tab, click the `Create Key` button, and give it a good name.

<figure><img src="/files/SKlxtUfx1uqEXE5e8ubU" alt=""><figcaption></figcaption></figure>

* Upon clicking the `Create` button, your key will be generated and shown. **Please save your access key securely, as the key will only be shown once.**

<figure><img src="/files/MZ12ecaUff3MGaqtucmm" alt=""><figcaption></figcaption></figure>

### Issue a Proof Generation Request

Get your **endpoint** and **access key** ready, and type the following command in your terminal.

```
ENDPOINT=<your_endpoint_url>
ACCESS_KEY=<your_access_key>
```

Use the following curl command to issue your proof generation request against the demo prover:

```sh
curl --request POST $ENDPOINT \
--header "x-api-key: $ACCESS_KEY" \
--header "Content-Type: application/json" \
--data-raw '{
    "input": {
        "private_input": [0, 1, 2, 3, 4],
        "public_input": "20304616028358001435806807494046171997958789835068077254356069730773893150537"
    }
}
'
```

Requests are processed asynchronously by your prover service. You will receive a confirmation response with a `PENDING` state like the following,

```json
{
    "service_id": "0872ccea325846ee9dd6f697b9af1863",
    "task_id": "ec5e67fecbab4f66b5c4a1551105e795",
    "service_name": "poseidon",
    "creator_id": "5a5fd35f890349aea7ac9dc17d97d32b",
    "result": null,
    "state": "PENDING",
    "input": "{\"private_input\": [0, 1, 2, 3, 4], \"public_input\": \"13037709793114148810823325920380362524528554380279235267325741570708489436263\"}",
    "started": null,
    "finished": null,
    "created": "2023-11-04T03:14:25"
}
```

Please note the `task_id` for the next step.

### Query results

#### **From Command Line**

Get your **task ID** and **access key** ready, and type the following command in your terminal.

```
TASK_ID=<your_task_id>
ACCESS_KEY=<your_access_key>
```

The proof generation result can be queried with the following command,

<pre class="language-sh"><code class="lang-sh"><strong>curl --request GET "https://api.snarkify.io/v1/tasks/$TASK_ID" \
</strong>--header "x-api-key: $ACCESS_KEY"
</code></pre>

Then you will see the task information like below once the task is processed:

```json
{
    "service_id": "aa143bd5b48647569720096ab7493cd2",
    "task_id": "4b1fd782a0f44f499a88a8cab31f066f",
    "service_name": "poseidon",
    "creator_id": "e95d87b33f8f45ea9e1f845eca18031d",
    "result": "\"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\"",
    "state": "SUCCESS",
    "input": "{\"private_input\": [0, 1, 2, 3, 4], \"public_input\": \"20304616028358001435806807494046171997958789835068077254356069730773893150537\"}",
    "started": "2023-11-10T02:08:22",
    "finished": "2023-11-10T02:08:23",
    "created": "2023-11-10T02:08:22"
}
```

#### **From Cloud Console**

Alternatively, you can also check your task history through our UI:

1. click the setting button

<figure><img src="/files/As6baFbXN9mwBfVUFU0v" alt=""><figcaption></figcaption></figure>

2. Go to the `Task Hisotry` page

<figure><img src="/files/yEjLzsgluKdMtUSKRDJf" alt=""><figcaption></figcaption></figure>

## What's Next

Following this [tutorial](/serverless-gpu-proving/deploy-a-elastic-prover/integrate-elastic-prover-sdk.md) to make your own ZK circuits *cloud-ready* with the **`snarkify-sdk`**.


---

# 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://docs.snarkify.io/serverless-gpu-proving/deploy-a-elastic-prover.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.
