Quickstart

Get up and running with TinyZKP in three steps.

1

Get an API key

Sign up for a free account. Your API key will be delivered via email and is also available in the Stripe Customer Portal.

2

Submit a proof

Send a POST request to the /prove endpoint with your workload parameters.

curl
curl -X POST https://api.tinyzkp.com/prove \
  -H "Authorization: Bearer tzk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "workload_id": "toy_add_1_2",
    "initial_acc": 0,
    "final_acc": 3,
    "block_size": 4,
    "fri_final_poly_size": 2
  }'
3

Verify the proof

Pass the proof object to the /verify endpoint. Verification requires your API key but is always free — no charge.

curl
curl -X POST https://api.tinyzkp.com/verify \
  -H "Authorization: Bearer tzk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "proof": {
      "version": 4,
      "bytes": [...]
    },
    "allow_legacy_v2": false
  }'

Authentication

All /prove endpoints require a Bearer token in the Authorization header:

Authorization: Bearer tzk_...

API Endpoints

All endpoints are served from https://api.tinyzkp.com.

MethodPathAuthDescription
POST /prove Required Submit an async prove job
GET /prove/:job_id Required Get job status and result
POST /prove/batch Required Submit multiple prove jobs
POST /prove/:job_id/cancel Required Cancel a running job
DELETE /prove/:job_id Required Delete a completed job
GET /prove Required List jobs (with ?status, ?limit, ?offset)
POST /verify Required Verify a proof (free, no charge)
GET /usage Required View usage and estimated costs
GET /proof/:job_id/calldata Required Get EVM on-chain calldata
GET /healthz None Liveness check
GET /metrics None Prometheus metrics
GET /docs None Interactive Swagger UI

Proof Templates

TinyZKP ships with six proof templates that cover common zero-knowledge use cases. Pass the template name as the workload_id prefix.

TemplateWhat It ProvesKey Parameters
accumulator_step A chain of additive deltas transitions correctly initial, final, deltas[]
computation_attestation f(secret_steps) = public_output without revealing inputs steps[], expected_output
hash_preimage Prover knows a secret whose hash equals a public digest digest, preimage_steps[]
range_proof A secret value lies within [min, max] min, max, witness_steps[]
policy_compliance Actions stay within a threshold (spending limits, quotas) actions[], threshold
data_integrity Data elements sum to a committed checksum elements[], checksum

Plan Tiers

Rate limits and concurrency vary by plan. All plans include free verification.

FreeStandardPro
Prove RPM 10 100 500
Verify RPM 30 300 1,500
Max Inflight Jobs 1 4 8
Monthly Cap $5 $500 $5,000
Max Prove Time 5 min 10 min 60 min

Pricing

Pay per proof based on trace complexity. No subscriptions, no minimum commitments.

Tiny
$0.05
/proof
< 10K steps
Standard
$0.50
/proof
10K – 100K steps
Large
$2.00
/proof
100K – 1M steps
Enterprise
$5.00
/proof
1M – 10M steps
XL
$20
/proof
> 10M steps

Verification is always free.

Parameters

Security Parameters

These parameters control the cryptographic strength of your proof.

ParameterDescriptionDefaultNotes
query_count Number of FRI oracle queries 80 Server minimum: 80
lde_blowup_factor Low-degree extension blowup 2 Valid values: 2, 4, 8, 16
zk_mask_degree Zero-knowledge mask degree 0 Set > 0 to enable zero-knowledge proofs (v4 format)

Performance Parameters

These parameters control trace layout and proving speed.

ParameterDescriptionDefaultNotes
block_size Trace rows per block Must be a power of 2. Server max: 1,048,576
fri_final_poly_size Final FRI polynomial size Typical values: 1–4

MCP Integration

TinyZKP ships as an MCP server so AI agents can generate and verify proofs natively. Add it to your Claude Desktop config:

JSON
{
  "mcpServers": {
    "tinyzkp": {
      "command": "./hc-mcp",
      "args": ["--api-key", "tzk_..."]
    }
  }
}

Available MCP Tools

prove
verify
prove_status
list_jobs
healthz
list_programs
describe_program
list_workloads
submit_workload
workload_status

Interactive API Reference

Explore the full API interactively with our Swagger UI. Try endpoints directly from your browser.

Open Swagger UI →