Download OpenAPI specification:
This document outlines the available API endpoints for Ethproofs.
Base URL
All API endpoints are relative to:
https://staging--ethproofs.netlify.app/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"
}| nickname required | string <= 50 characters Human-readable name. Main display name in the UI |
| description | string <= 200 characters Description of the cluster |
| zkvm_version_id required | integer > 0 ID of the zkVM version. Visit ZKVMs to view all available zkVMs and their IDs. |
| hardware | string <= 200 characters Deprecated Technical specifications. Use |
| cycle_type | string <= 50 characters Type of cycle |
| proof_type | string <= 50 characters Proof system used to generate proofs. (e.g., Groth16 or PlonK) |
required | Array of objects Cluster configuration |
{- "nickname": "ZKnight-01",
- "description": "Primary RISC-V prover",
- "zkvm_version_id": 1,
- "hardware": "RISC-V Prover",
- "cycle_type": "SP1",
- "proof_type": "Groth16",
- "configuration": [
- {
- "machine": {
- "cpu_model": "Intel(R) Xeon(R) CPU @ 2.20GHz",
- "cpu_cores": 2,
- "gpu_models": [
- "RTX 4090",
- "RTX 4080"
], - "gpu_count": [
- 1,
- 1
], - "gpu_memory_gb": [
- 24,
- 24
], - "memory_size_gb": [
- 32,
- 32
], - "memory_count": [
- 8,
- 8
], - "memory_type": [
- "DDR5-4800 ECC",
- "DDR5-4800 ECC"
], - "storage_size_gb": 1000,
- "total_tera_flops": 1000,
- "network_between_machines": "Dual-port 100GbE NICs in mesh topology with RDMA enabled, primary and backup interconnects between all nodes"
}, - "machine_count": 1,
- "cloud_instance_name": "c5.xlarge",
- "cloud_instance_count": 10
}
]
}{- "id": 0
}[- {
- "id": 0,
- "nickname": "string",
- "description": "string",
- "hardware": "string",
- "cycle_type": "string",
- "proof_type": "string",
- "machines": [
- {
- "machine": {
- "cpu_model": "Intel(R) Xeon(R) CPU @ 2.20GHz",
- "cpu_cores": 2,
- "gpu_models": [
- "RTX 4090",
- "RTX 4080"
], - "gpu_count": [
- 1,
- 1
], - "gpu_memory_gb": [
- 24,
- 24
], - "memory_size_gb": [
- 32,
- 32
], - "memory_count": [
- 8,
- 8
], - "memory_type": [
- "DDR5-4800 ECC",
- "DDR5-4800 ECC"
], - "storage_size_gb": 1000,
- "total_tera_flops": 1000,
- "network_between_machines": "Dual-port 100GbE NICs in mesh topology with RDMA enabled, primary and backup interconnects between all nodes"
}, - "machine_count": 0,
- "cloud_instance": {
- "id": 0,
- "provider": "string",
- "instance_name": "string",
- "region": "string",
- "hourly_price": 0,
- "cpu_arch": "string",
- "cpu_cores": 0,
- "cpu_effective_cores": 0,
- "cpu_name": "string",
- "memory": 0,
- "gpu_count": 0,
- "gpu_arch": "string",
- "gpu_name": "string",
- "gpu_memory": 0,
- "mobo_name": "string",
- "disk_name": "string",
- "disk_space": 0,
- "created_at": "string",
- "snapshot_date": "string"
}, - "cloud_instance_count": 0
}
]
}
]| nickname required | string <= 50 characters Human-readable name. Main display name in the UI |
| description | string <= 200 characters Description of the cluster |
| zkvm_version_id required | integer > 0 ID of the zkVM version. Visit ZKVMs to view all available zkVMs and their IDs. |
| hardware | string <= 200 characters Deprecated Technical specifications. Use |
| cycle_type | string <= 50 characters Type of cycle |
| proof_type | string <= 50 characters Proof system used to generate proofs. (e.g., Groth16 or PlonK) |
required | object Physical hardware specifications of the machine |
| cloud_instance_name required | string The instance_name value of the cloud instance. Visit Cloud Instances to view all available instances and their exact names. |
{- "nickname": "ZKnight-01",
- "description": "Primary RISC-V prover",
- "zkvm_version_id": 1,
- "hardware": "RISC-V Prover",
- "cycle_type": "SP1",
- "proof_type": "Groth16",
- "machine": {
- "cpu_model": "Intel(R) Xeon(R) CPU @ 2.20GHz",
- "cpu_cores": 2,
- "gpu_models": [
- "RTX 4090",
- "RTX 4080"
], - "gpu_count": [
- 1,
- 1
], - "gpu_memory_gb": [
- 24,
- 24
], - "memory_size_gb": [
- 32,
- 32
], - "memory_count": [
- 8,
- 8
], - "memory_type": [
- "DDR5-4800 ECC",
- "DDR5-4800 ECC"
], - "storage_size_gb": 1000,
- "total_tera_flops": 1000,
- "network_between_machines": "Dual-port 100GbE NICs in mesh topology with RDMA enabled, primary and backup interconnects between all nodes"
}, - "cloud_instance_name": "c5.xlarge"
}{- "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) | |
| team | string Filter by team slug |
| 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",
- "version": "string",
- "created_at": "string",
- "updated_at": "string",
- "cluster": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "nickname": "string",
- "created_at": "string",
- "updated_at": "string"
}, - "zkvm_version": {
- "id": 0,
- "version": "string",
- "zkvm_id": 0,
- "release_date": "string",
- "created_at": "string",
- "zkvm": {
- "id": 0,
- "name": "string",
- "slug": "string",
- "isa": "string",
- "team_id": "810007d0-bec5-486c-b5d1-28fcd8a079ba",
- "created_at": "string"
}
}, - "cluster_machines": [
- {
- "id": 0,
- "cluster_version_id": 0,
- "machine_id": 0,
- "cloud_instance_id": 0,
- "created_at": "string",
- "cloud_instance": {
- "id": 0,
- "instance_id": "string",
- "provider_id": 0,
- "region": "string",
- "instance_type": "string",
- "created_at": "string",
- "provider": {
- "id": 0,
- "name": "string",
- "created_at": "string"
}
}, - "machine": {
- "id": 0,
- "name": "string",
- "cpu_count": 0,
- "memory_gb": 0,
- "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
}Returns a list of available cloud instances across different providers. Filter results by provider using the query parameter. See Cloud Instances for a visual table view and more details.
| provider | string |
[- {
- "id": 0,
- "provider": "string",
- "instance_name": "string",
- "region": "string",
- "hourly_price": 0,
- "cpu_arch": "string",
- "cpu_cores": 0,
- "cpu_effective_cores": 0,
- "cpu_name": "string",
- "memory": 0,
- "gpu_count": 0,
- "gpu_arch": "string",
- "gpu_name": "string",
- "gpu_memory": 0,
- "mobo_name": "string",
- "disk_name": "string",
- "disk_space": 0,
- "created_at": "string",
- "snapshot_date": "string"
}
]Upload a verification key binary file to storage.
| file required | string <binary> The verification key binary file to upload |
| filename required | string The filename to use for storage (e.g., 'team-vk.bin') |
{- "message": "Verification key uploaded successfully",
- "path": "team-vk.bin"
}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"
}