Skip to main content
Version: Testnet

Overview

What is Kurier?

Kurier is a suite of developer tools built by Horizen Labs to simplify the submission and verification of zero-knowledge proofs. The core product is a REST API that acts as a managed interface between your application and the zkVerify blockchain — the decentralized network purpose-built for ZK proof settlement.

Instead of running your own zkVerify node, managing on-chain transactions, or handling crypto payments, you call the Kurier API and let it handle the rest.

Kurier is available on both testnet (this environment) and mainnet.

What Problem Does Kurier Solve?

Zero-knowledge proof verification has traditionally required significant infrastructure: running blockchain nodes, managing key registration, handling proof formatting for multiple proof systems, and building custom polling or callback logic.

Kurier consolidates all of this into a single, well-documented REST API — making ZK proof verification accessible to any developer, not just teams with deep blockchain expertise.

How Kurier Works

1. Submit a proof via the API Send your ZK proof (in any supported format) to the Kurier REST endpoint with your API key. The API validates the request, generates a jobID, and queues the proof for processing.

2. Kurier processes and submits the proof The proof is routed through a custom node and submitted to the zkVerify blockchain or Base for on-chain verification.

3. Track status in real time Use your jobID to poll the status endpoint. Kurier provides near real-time status updates throughout the verification lifecycle. See Job Statuses for all states.

4. On-chain finality Once the required block confirmations are reached, the proof is finalized on-chain. Your application can now rely on the cryptographic guarantee that the computation was correct.

Supported ZK Proof Systems

Kurier supports the broadest range of ZK proof types of any hosted verification API:

Proof TypeDescription
fflonkPLONK-based proof system, efficient verification
groth16Industry-standard zk-SNARK, widely deployed
plonky2Fast recursive proofs by Polygon Zero
proof of SQLZK proofs for verifiable database query results
risc0RISC-V zkVM for general verifiable computation
sp1Succinct's high-performance zkVM
teeTrusted Execution Environment attestation proofs
ultrahonkAztec's latest proving system
ultraplonkAztec's PLONK variant

View current supported versions

Supported Networks

NetworkEnvironment
zkVerify VoltaFree testnet environment
SepoliaEthereum testnet
Arbitrum SepoliaArbitrum testnet
Base SepoliaBase testnet for integration testing
Optimism SepoliaOptimism testnet
EDU Chain TestnetEDU Chain testnet
Horizen TestnetHorizen testnet environment

View all supported networks

Key Concepts

Zero-Knowledge Proof (ZKP) A cryptographic method that lets one party prove a statement is true to another party without revealing any information beyond the truth of the statement itself. Used in private transactions, rollups, verifiable computation, and more.

zkVerify A decentralized blockchain purpose-built for ZK proof verification. It provides a cost-efficient, trust-minimized settlement layer for ZK proofs across multiple proof systems.

Proof Submission vs. Proof Generation Kurier handles proof verification and submission — it does not generate proofs. You generate proofs using your ZK circuit and prover (e.g., snarkjs, risc0 SDK, sp1 CLI), then submit the output to Kurier for on-chain verification.

jobID A unique identifier returned by the Kurier API for every proof submission. Used to track the verification status from submission through to on-chain finality.

Optimistic vs. Final Verification Kurier supports optimistic (off-chain ZK proof verified) and final (on-chain zkVerify confirmed) verification modes for all proof submissions, giving developers control over the latency/security trade-off.

Additional Products

Beyond ZK proof verification, Kurier offers:

  • Verifiable Random Hash — a cryptographically verifiable source of randomness, backed by ZK proofs
  • Random Hash Oracle — an on-chain oracle smart contract for requesting verifiable randomness in zk-dApps
  • x402-Enabled APIs — pay-per-use API access via the x402 micropayment protocol

Frequently Asked Questions

Do I need to run a zkVerify node to use Kurier? No. Kurier abstracts all node infrastructure. You interact only with the Kurier REST API.

Is Kurier open source? The relayer and documentation are open source. See the GitHub repository.

What's the difference between testnet and mainnet? Testnet uses zkVerify testnet and multiple L1/L2 testnets (Sepolia, Arbitrum Sepolia, Base Sepolia, Optimism Sepolia, EDU Chain, Horizen) — free to use, ideal for development. Mainnet uses production zkVerify and Base — for real, finalized proof verification.

How do I get a higher API rate limit? Fill out the rate limit request form and the team will review your request.

Resources & Support

Learn More