vlayer docs
REST API

Changelog

Differences between v0 and v2 ZK Prover REST API

v0 vs v2 API Differences

This page summarises the breaking changes and improvements introduced in v2 compared to v0.

Base Path

VersionBase path
v0/api/v0/
v2/api/v2.0/evm/

Authentication

v2 requires private credentials for all requests. Anonymous access and the public client ID are rejected.

Requests require both headers:

  • X-Client-Id: Your client ID
  • Authorization: Bearer <api-key>: Your API key

Response Envelope

All v2 responses include an apiVersion field in the JSON body.

v0 responses:

{
  "success": true,
  "data": { ... }
}

v2 responses:

{
  "apiVersion": "v2.0",
  "success": true,
  "data": { ... }
}

Structured Errors

v2 errors include a machine-readable code field alongside the human-readable message:

{
  "apiVersion": "v2.0",
  "success": false,
  "error": {
    "code": "INVALID_REQUEST",
    "message": "Invalid input"
  }
}

Fake Mode

v2 offers dedicated fake-mode endpoints for development and testing at /api/v2.0/fake/evm/.... These use a FakeProver that returns mock proofs instantly without real ZK proof generation.

EndpointRealFake
Compress/api/v2.0/evm/compress-web-proof/api/v2.0/fake/evm/compress-web-proof
Verify/api/v2.0/evm/verify-zk-proof/api/v2.0/fake/evm/verify-zk-proof

Fake-mode endpoints are free -- they do not count against your usage quota and are not metered. Real compress endpoints consume quota and are billed per request.

Fake-mode proofs are not cryptographically valid and cannot be verified on-chain with a production verifier. Use them only for development and integration testing.