Skip to main content
Version: Mainnet

Getting Started

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

What You'll Need

Mainnet API Endpoints

ResourceURL
Mainnet API base URLhttps://api.kurier.xyz/api/v1
Create API key (mainnet portal)https://kurier.xyz
Swagger / interactive API docshttps://api.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 kurier.xyz, sign up with your email, verify your address, and log in to generate your mainnet 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, or open a WebSocket connection for instant updates as your proof moves through the pipeline. 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 or Base, the proof is finalized on-chain and your job status will reflect completion.

Migrating from Testnet to Mainnet

If you've been building on testnet and are ready to go to mainnet, 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, update your testnet API URL to https://testnet.kurier.xyz

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