Prover Service API

Version: 0.1.1

Overview

This documentation outlines the Prover and Proof Delivery Service API, defined with OpenAPI 3.0.3. This service allows for the registration of Valida VM programs and inputs, submission of proof generation requests, and retrieval of proofs and their statuses. The API is designed to be integrated with AWS Lambda via the Amazon API Gateway, facilitating seamless backend processing.

Authentication

To authenticate with the Prover and Proof Delivery Service API, include your API key in the header of each request:

x-api-key: YOUR_API_KEY_HERE

Errors

We use conventional HTTP response codes to indicate the success or failure of an API request. In general: Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted etc.). Codes in the 5xx range indicate an error with the servers (these are rare).

Code
Description

200 OK

Everything worked as expected.

400 Bad Request

The request was unacceptable, often due to missing a required parameter.

403 Forbidden

The API key doesn’t have permissions to perform the request.

404 Not Found

The requested resource doesn’t exist.

500 Server Errors

Something went wrong on the server.

APIs

API
Endpoint

POST /program

POST /program-input

GET /proof/status/:id

GET /proof/:id

Register program

Registers a new Valida VM program from binary data

Request body required


Binary data of the Valida VM program.

Returns


An object with the UUID of the registered program.

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Register program input

Registers input for a Valida VM program from binary data.

Request body required


Binary data of the Valida VM program input.

Returns


An object with the UUID of the registered program input.

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Submit proof request

Submits a proof generation request for a specific program and input combination.

Request body required


An object with program UUID and program input UUID.

{
  "program-id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "program-input-id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Returns


An object with the UUID of the proof request.

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Get proof status

Get the status of a proof generation request.

Parameters


id string

UUID of the proof request

Returns


An object with the proof status (SUBMITTED, PROCESSING, COMPLETED, orERROR).

{
  "status": "SUBMITTED"
}

Get proof

Retrieves a serialized proof given a proof ID.

Parameters


id string

UUID of the proof request

Returns


An object with serialized proof.

{
  "proof": "string"
}

Additional Notes

  • The API integrates with AWS Lambda for backend processing, utilizing Amazon API Gateway for connectivity and security.

  • Future versions of the API may include endpoints for proof delivery functionalities.

Last updated