Skip to main content
Version: Testnet

Getting Started

Welcome to Kurier testnet. Kurier is a REST API that lets you submit and verify zero-knowledge proofs on zkVerify testnet or Base Sepolia without running your own node. This guide covers everything you need to go from zero to your first verified proof in the free testnet sandbox.

What You'll Need

Testnet API Endpoints

ResourceURL
Testnet API base URLhttps://api-testnet.kurier.xyz/api/v1
Create API key (testnet portal)https://testnet.kurier.xyz
Swagger / interactive API docshttps://api-testnet.kurier.xyz/docs
zkVerify Kurier guidehttps://docs.zkverify.io/overview/getting-started/kurier

Step-by-Step — Your First Proof Submission

Step 1: Create an account and generate an API key Go to testnet.kurier.xyz, sign up with your email, verify your address, and log in to generate your testnet API key.

Step 2: Submit a ZK proof Send a POST request to the Kurier API with your proof payload. The API accepts proofs in all supported formats including groth16, fflonk, risc0, sp1, plonky2, ultrahonk, ultraplonk, and proof of SQL.

On a valid request, the API returns a jobID you can use to track progress.

Step 3: Track verification status Poll the status endpoint with your jobID to monitor verification in near real time. See Job Statuses for the full list of states and what they mean.

Step 4: On-chain finality Once sufficient block confirmations are reached on zkVerify testnet or Base Sepolia, the proof is finalized on-chain and your job status will reflect completion.

Moving to Mainnet

When you're ready to deploy to production, here's what to update:

  • Switch your API base URL to https://api.kurier.xyz/api/v1
  • Generate a new API key at kurier.xyz — testnet keys do not carry over
  • Verification keys registered on testnet are automatically re-registered on mainnet — no action needed
  • If you plan to keep a testnet deployment running in parallel, continue using https://api-testnet.kurier.xyz/api/v1

Supported ZK Proof Systems

Kurier supports all major ZK proof systems used in production today:

  • groth16 — widely used in Zcash, Tornado Cash, and general-purpose zk-SNARKs
  • fflonk — PLONK-based, efficient for recursive verification
  • plonky2 — designed for fast recursion and Ethereum compatibility
  • risc0 — RISC-V zkVM for general-purpose verifiable computation
  • sp1 — Succinct's zkVM, optimized for high-throughput proof generation
  • ultrahonk / ultraplonk — Aztec's proving systems for private smart contracts
  • proof of SQL — verifiable query results from databases

See all supported proof types and versions

What is zkVerify?

zkVerify is a decentralized blockchain purpose-built for zero-knowledge proof verification. Rather than verifying proofs on a general-purpose chain (which is expensive), zkVerify provides a dedicated, low-cost settlement layer. Kurier acts as the submission and tracking layer on top of zkVerify, handling the complexity of proof formatting, node interaction, and on-chain settlement.

Support & Resources

Learn More