Account created! Check your email for your API key. ×

ZK Proofs as an API

Prove any computation is correct without revealing how. Generate ZK-STARK proofs with a single API call — verify in 3ms. No cryptography degree required.

Free tier · 100 proofs/month · No credit card
Terminal
$ curl -X POST https://api.tinyzkp.com/prove \
-H "Authorization: Bearer tzk_demo..." \
-d '{"workload_id":"range_proof","secret":42,"min":0,"max":100}'
{"job_id":"prf_7x9k2m","status":"proving","eta_ms":1200}
$ curl https://api.tinyzkp.com/prove/prf_7x9k2m
{"status":"completed","proof":{"version":4,"bytes":"0x6a8f...","size_kb":12.4}}
$ curl -X POST https://api.tinyzkp.com/verify -d '{"proof":{...}}'
{"valid":true,"verified_in_ms":2.8} # free, no auth needed

Proved that 42 is in range [0, 100] without revealing the value. Verified in 2.8ms.

0
Proofs generated
<5ms
Avg verification
99.9%
Uptime
6
Proof templates

Three Steps to Zero-Knowledge

Prove a password hash matches, a value is in range, or a computation is correct — without revealing any secrets.

1

Submit

POST a proof request to /prove. Choose from 6 built-in templates like range_proof, hash_preimage, or data_integrity — or define your own program. You get a job ID instantly.

2

Prove

Our servers generate a ZK-STARK proof using O(√T) memory. No trusted setup. No ceremony. Typical proofs complete in 1–5 seconds.

3

Verify

Anyone can verify the proof in milliseconds via /verify. Always free. The verifier learns nothing except that the statement is true.

Get Started in 5 Lines

Python, TypeScript, or plain curl. Your first proof is free.

from tinyzkp import TinyZKP

async with TinyZKP("https://api.tinyzkp.com", api_key="tzk_...") as client:
    job_id = await client.prove(program=["add_immediate 1"], initial_acc=5, final_acc=6)
    proof  = await client.wait_for_proof(job_id)
    result = await client.verify(proof)  # free!
import { HcClient } from "tinyzkp";

const client = new HcClient("https://api.tinyzkp.com", { apiKey: "tzk_..." });
const jobId  = await client.prove({ program: ["add_immediate 1"], initialAcc: 5, finalAcc: 6 });
const proof  = await client.waitForProof(jobId);
const result = await client.verify(proof);  // free!
# Submit a proof job
curl -X POST https://api.tinyzkp.com/prove \
  -H "Authorization: Bearer tzk_..." \
  -H "Content-Type: application/json" \
  -d '{"program":["add_immediate 1"],"initial_acc":5,"final_acc":6}'
# {"job_id":"abc123..."}

# Poll for result
curl https://api.tinyzkp.com/prove/abc123...

# Verify (free)
curl -X POST https://api.tinyzkp.com/verify \
  -H "Content-Type: application/json" \
  -d '{"proof":{...}}'

Simple, Per-Proof Pricing

Pay only for proofs you generate. Verification is always free. Start with 100 free proofs per month.

Free
$0
100 proofs/mo
No credit card
Tiny
$0.05
per proof
< 10K trace steps
Large
$2.00
per proof
100K – 1M steps
Enterprise
$5.00
per proof
1M – 10M steps

Verification is always free

Plan LimitsFreeStandardPro
Prove RPM10100500
Verify RPM303001,500
Inflight jobs148
Monthly cap$5$500$5,000
Max prove time5 min10 min60 min
Get Free API Key

Built for AI Agents

TinyZKP ships as an MCP server. AI agents can generate and verify ZK proofs autonomously.

MCP Server for Claude, Cursor & More

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "tinyzkp": {
      "command": "./hc-mcp",
      "args": ["--api-key", "tzk_..."]
    }
  }
}
prove verify prove_status list_jobs healthz list_programs describe_program list_workloads submit_workload workload_status
No trusted setup
Post-quantum secure
Open source
Sub-5ms verification