# Download config
Source: https://docs.axiom.xyz/api-reference/rest-api/configs/download-config
GET /v1/configs/{config_id}/config
Download the OpenVM configuration TOML file.
# Get VM config metadata
Source: https://docs.axiom.xyz/api-reference/rest-api/configs/get-configs
GET /v1/configs/{config_id}
Retrieve details about a proving system configuration.
# Get EVM verifier
Source: https://docs.axiom.xyz/api-reference/rest-api/configs/get-configs-evm_verifier
GET /v1/configs/{config_id}/evm_verifier
Download the EVM verifier contract as a JSON file for on-chain verification.
# Get proving keys
Source: https://docs.axiom.xyz/api-reference/rest-api/configs/get-configs-pk
GET /v1/configs/{config_id}/pk/{key_type}
Generate a presigned URL to download various proving keys for a configuration.
Available key types:
- `app`: Application VM proving key
- `agg`: Aggregation proving key
- `halo2`: Halo2 proving key
# Get verifying keys
Source: https://docs.axiom.xyz/api-reference/rest-api/configs/get-configs-vk
GET /v1/configs/{config_id}/vk/{key_type}
Generate a presigned URL to download various verification keys for a configuration.
Available verification key types:
- `app`: Application verification key
- `agg`: Aggregation verification key
# Overview
Source: https://docs.axiom.xyz/api-reference/rest-api/overview
An API reference for the Axiom Proving API.
API endpoints for VM configuration management.
API endpoints for OpenVM program management.
API endpoints for proof generation.
API endpoints for proof verification.
API endpoints for VM configuration management.
API endpoints for OpenVM program management.
API endpoints for proof generation.
API endpoints for proof verification.
# Download program
Source: https://docs.axiom.xyz/api-reference/rest-api/programs/download-programs
GET /v1/programs/{program_id}/download/{program_type}
Download various program artifacts including compiled binaries, source code, and configuration files.
Available program types:
- `exe`: Compiled program executable
- `elf`: ELF binary format
- `source`: Original source code archive
- `app_exe_commit`: Application executable commit
- `openvm_config`: OpenVM configuration file
# List programs (deprecated)
Source: https://docs.axiom.xyz/api-reference/rest-api/programs/get-programs
GET /v1/programs
DEPRECATED: This endpoint is deprecated and will be removed in a future version.
Use instead:
- GET /v1/projects - for dashboard functionality with search/sort across projects
- GET /v1/projects/{project_id}/programs - for listing programs within a specific project
# Get build status
Source: https://docs.axiom.xyz/api-reference/rest-api/programs/get-programs-id
GET /v1/programs/{program_id}
Retrieve detailed information about a specific program.
# List project programs
Source: https://docs.axiom.xyz/api-reference/rest-api/programs/list-project-programs
GET /v1/projects/{project_id}/programs
List all programs within a specific project with pagination support.
# List projects
Source: https://docs.axiom.xyz/api-reference/rest-api/programs/list-projects
GET /v1/projects
List all projects for your organization with search and sorting capabilities.
Projects help organize related programs and proofs. You can search by name and sort by various criteria.
# Register new program
Source: https://docs.axiom.xyz/api-reference/rest-api/programs/post-programs
POST /v1/programs
Register a new OpenVM program from pre-built artifacts.
Build the program locally with `cargo openvm build`, then upload the resulting ELF
binary together with the transpiled VMEXE. The backend computes the program's
exe_commit and verification baseline asynchronously (via a lightweight Kubernetes job)
and flips the program to `Ready` — no cloud compilation happens.
## Example Usage
```bash
curl -X POST "https://api.axiom.xyz/v1/programs?config_id=cfg_xxxx" \
-H "Axiom-API-Key: your-api-key" \
-F "elf=@program.elf" \
-F "vmexe=@program.vmexe" \
-F "project_name=My Project"
```
# Get proof logs
Source: https://docs.axiom.xyz/api-reference/rest-api/proofs/get-proof-logs
GET /v1/proofs/{proof_id}/logs
Download the proving logs to debug proof generation issues.
# List proofs
Source: https://docs.axiom.xyz/api-reference/rest-api/proofs/get-proofs
GET /v1/proofs
List all proofs for a specific program with pagination support.
# Get proof status
Source: https://docs.axiom.xyz/api-reference/rest-api/proofs/get-proofs-id
GET /v1/proofs/{proof_id}
Retrieve the current status and details of a proof job.
# Get generated proof
Source: https://docs.axiom.xyz/api-reference/rest-api/proofs/get-proofs-id-type
GET /v1/proofs/{proof_id}/proof/{proof_type}
Download the generated proof file in JSON format.
Available proof types:
- `stark`: STARK proof file
- `root`: Root proof file
- `evm`: EVM-compatible proof file
# Generate new proof
Source: https://docs.axiom.xyz/api-reference/rest-api/proofs/post-proofs
POST /v1/proofs
Submit a program for proving with specific input data.
The input data must be a JSON object with an 'input' key containing an array of hex strings.
Each hex string represents either:
- Hex string of bytes (prefixed with 0x01)
- Hex string of native field elements as u32 little endian (prefixed with 0x02)
Available proof types:
- `stark`: STARK proof (default)
- `evm`: EVM-compatible proof
## Deferred child proofs (optional, multipart)
To fold child stark proofs into this job's `verify_stark` deferral circuit,
send `multipart/form-data` to the SAME endpoint: an `input` form field (the
JSON body as a string) plus one `child_proofs` file part per child. Each
part is a stark proof in the same JSON format `GET /v1/proofs/{id}/proof/stark`
serves (`VersionedVmStarkProof`); part order = circuit packing order. The
program's config must be deferral-enabled. Validation at submit is shallow
(caps + JSON shape); keyset/program mismatches fail the job at prove time.
## Example Usage
```bash
# Plain (no-deferral) submission — JSON body, unchanged:
curl -X POST "https://api.axiom.xyz/v1/proofs?program_id=your-program-uuid&proof_type=stark" \
-H "Axiom-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"input": [
"0x010A00000000000000",
"0x02FF00000000000000"
]
}'
# Deferral submission — multipart with inline child proofs:
curl -X POST "https://api.axiom.xyz/v1/proofs?program_id=your-program-uuid&proof_type=stark" \
-H "Axiom-API-Key: your-api-key" \
-F 'input={"input": ["0x010A00000000000000"]}' \
-F 'child_proofs=@child0_stark_proof' \
-F 'child_proofs=@child1_stark_proof'
```
# Get EVM verification result
Source: https://docs.axiom.xyz/api-reference/rest-api/verify/get-verify-id
GET /v1/verify/{verify_id}
Check the status and result of either an EVM or STARK proof verification.
# Get STARK verification result
Source: https://docs.axiom.xyz/api-reference/rest-api/verify/get-verify-stark-id
GET /v1/verify/stark/{verify_id}
Check the status and result of a STARK proof verification. This is a legacy endpoint that routes to the unified verification endpoint.
# Verify EVM proof
Source: https://docs.axiom.xyz/api-reference/rest-api/verify/post-verify
POST /v1/verify
Submit an EVM proof for verification. Upload the proof file and specify the configuration used.
# Verify STARK proof
Source: https://docs.axiom.xyz/api-reference/rest-api/verify/post-verify-stark
POST /v1/verify/stark
Submit a STARK proof for verification. Upload the proof file and specify the program used. The configuration will be automatically determined from the program.
# Rust Client SDK
Source: https://docs.axiom.xyz/api-reference/sdks/rust-client-sdk
A reference for the Axiom Rust Client SDK.
## Overview
The Axiom Rust SDK is a library for interacting with the Axiom Proving API. It is built on top of the Axiom Proving API and provides a higher-level interface for interacting with the API. This guide covers installation, configuration, and usage of all SDK features.
## Installation
Add the Axiom SDK to your `Cargo.toml`:
## Configuration
### Setting Up Your API Key
Before using the SDK, you need to configure your API key. You can do this in several ways:
#### Option 1: Using the CLI (Recommended)
```bash theme={null}
cargo axiom register --api-key