Download OpenAPI specification:
This document outlines the available API endpoints for Ethproofs.
Base URL
All API endpoints are relative to:
https://ethproofs.org/api/v0
Authentication
All endpoints require authentication using an API key in the request header:
Authorization: Bearer <api_key>
Retrieve metadata for a specific block.
required | integer or string Example: 123456 The block number to retrieve |
{- "block_number": 12345,
- "timestamp": "2025-01-15T12:00:00Z",
- "gas_used": 15000000,
- "transaction_count": 250,
- "hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
- "created_at": "2025-01-15T12:00:00Z"
}Update cluster metadata and/or create a new cluster version. Changing zkvm_version_id or vk_path creates a new cluster version.
| id required | integer Example: 1 Cluster ID (index) |
| name | string <= 50 characters Human-readable name. Main display name in the UI |
| num_gpus | integer > 0 Number of GPUs in the cluster. Determines if cluster is multi-GPU (>1) or single-GPU (1). |
| hardware_description | string <= 200 characters Free-form text description of the cluster's hardware for display in the UI |
| is_active | boolean Whether the cluster is active and can receive proofs |
| zkvm_version_id | integer > 0 ID of the zkVM version. Changing this creates a new cluster version. Visit ZKVMs to view all available zkVMs and their IDs. |
| vk_path | string Verification key path for the cluster version |
{- "name": "ZKnight-01",
- "num_gpus": 8,
- "hardware_description": "8x NVIDIA H100 80GB GPUs, AMD EPYC 9654 96-Core Processor",
- "is_active": true,
- "zkvm_version_id": 1,
- "vk_path": "/path/to/vk"
}{- "success": true
}| name required | string <= 50 characters Human-readable name. Main display name in the UI |
| zkvm_version_id required | integer > 0 ID of the zkVM version. Visit ZKVMs to view all available zkVMs and their IDs. |
| num_gpus | integer > 0 Default: 1 Number of GPUs in the cluster. Determines if cluster is multi-GPU (>1) or single-GPU (1). |
| hardware_description | string <= 200 characters Free-form text description of the cluster's hardware for display in the UI |
| deployment_type | string Default: "cloud-hosted" Enum: "cloud-hosted" "on-prem" Deployment type of the cluster. Determines infrastructure configuration. |
{- "name": "ZKnight-01",
- "zkvm_version_id": 1,
- "num_gpus": 8,
- "hardware_description": "8x NVIDIA H100 80GB GPUs, AMD EPYC 9654 96-Core Processor",
- "deployment_type": "cloud-hosted"
}{- "id": 0
}Retrieve a filtered and paginated list of proofs.
integer or string Example: block=123456 Filter by block number or block hash (0x-prefixed 64 hex characters) | |
| clusters | string Example: clusters=550e8400-e29b-41d4-a716-446655440000,660e8400-e29b-41d4-a716-446655440001 Filter by comma-separated cluster UUIDs (e.g., uuid1,uuid2,uuid3) |
| limit | integer [ 1 .. 1000 ] Default: 100 Number of proofs to return (default: 100, max: 1000) |
| offset | integer >= 0 Default: 0 Number of proofs to skip for pagination (default: 0) |
{- "proofs": [
- {
- "block_number": 0,
- "cluster_id": 0,
- "proof_id": 0,
- "proof_status": "queued",
- "proving_cycles": 0,
- "team_id": "810007d0-bec5-486c-b5d1-28fcd8a079ba",
- "created_at": "string",
- "proved_timestamp": "string",
- "proving_timestamp": "string",
- "queued_timestamp": "string",
- "proving_time": 0,
- "program_id": 0,
- "size_bytes": 0,
- "team": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "slug": "string",
- "created_at": "string",
- "updated_at": "string"
}, - "block": {
- "block_number": 0,
- "hash": "string",
- "timestamp": "string",
- "gas_used": 0,
- "transaction_count": 0,
- "created_at": "string",
- "updated_at": "string"
}, - "cluster_version": {
- "id": 0,
- "cluster_id": "d3d1bfdf-67c4-41fa-b065-858242731616",
- "index": 0,
- "zkvm_version_id": 0,
- "vk_path": "string",
- "is_active": true,
- "created_at": "string",
- "cluster": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "team_id": "810007d0-bec5-486c-b5d1-28fcd8a079ba",
- "hardware_description": "string",
- "is_open_source": true,
- "num_gpus": 0,
- "is_active": true,
- "software_link": "string",
- "created_at": "string"
}, - "zkvm_version": {
- "id": 0,
- "version": "string",
- "zkvm_id": 0,
- "created_at": "string",
- "zkvm": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "isa": "string",
- "team_id": "810007d0-bec5-486c-b5d1-28fcd8a079ba",
- "created_at": "string"
}
}
}
}
], - "total_count": 0,
- "limit": 0,
- "offset": 0
}The prover indicates they'll prove a block, but they haven't started proving yet.
| block_number required | number >= 0 |
| cluster_id required | number |
{- "block_number": 123456,
- "cluster_id": 1
}{- "proof_id": 0
}The prover indicates they've started proving a block.
| block_number required | number >= 0 |
| cluster_id required | number |
{- "block_number": 123456,
- "cluster_id": 1
}{- "proof_id": 0
}The prover indicates they've completed proving a block.
| block_number required | number >= 0 |
| cluster_id required | number |
| proving_time required | number > 0 Time in milliseconds taken to generate the proof including witness generation. It excludes time taken for data fetching and any latency to submit the proof. |
| proving_cycles | integer > 0 Number of cycles taken to generate the proof. |
| proof required | string Proof in base64 format |
| verifier_id | string vkey/image-id |
{- "block_number": 123456,
- "cluster_id": 1,
- "proving_time": 1000,
- "proving_cycles": 10000,
- "proof": "YmluYXJ5X3Byb29mX2RhdGE=",
- "verifier_id": "..."
}{- "proof_id": 0
}Upload a CSP benchmarks JSON file to storage.
| file required | string <binary> The JSON file containing CSP benchmarks data |
| filename required | string The filename to use for storage (without .json extension) |
{- "message": "CSP benchmarks uploaded successfully",
- "path": "collected-benchmarks-2024-01.json"
}