Set up your proof generation environment

Before you can begin completing ZK verified tasks, you need a dedicated digital identity that can interact with zero-knowledge proof networks. This setup acts as your secure workspace, separating your verification credentials from your daily browsing activity.

1. Install a compatible wallet

You will need a Web3 wallet that supports the specific signature schemes required by the ZK network. Most modern wallets like MetaMask or Rabby work, but ensure it is configured for the correct network chain where the tasks are deployed. Fund the wallet with the native token for gas fees.

2. Register your public key

Once connected, you must register your public verification key on the protocol. This step links your wallet address to the proof generation system. The registration process is a one-time transaction that mints a lightweight identity token. This token allows the network to recognize your submissions as authentic.

ZK Verified Tasks
1
Install a compatible wallet

Download and install a Web3 wallet compatible with the target ZK network. Ensure you have securely backed up your seed phrase. Fund the wallet with enough native tokens to cover initial transaction fees for registration and proof submission.

2
Register your public key

Connect your wallet to the ZK verified tasks dashboard. Initiate the registration transaction to publish your public verification key on-chain. This one-time step mints an identity token, linking your address to the proof generation system for future task completions.

3. Configure proof generation tools

Install the necessary SDKs or CLI tools provided by the ZK network. These tools handle the heavy lifting of generating zero-knowledge proofs locally on your machine. Configure the environment variables to point to your registered identity. This ensures that every proof you generate is cryptographically linked to your verified account.

4. Test the connection

Run a local test task to verify that your environment is correctly configured. This involves generating a small proof and submitting it to the network. If the transaction succeeds, your setup is complete. If it fails, check your network configuration and wallet balance.

Run the task workflow locally

To generate a valid ZK proof, you must first execute the actual work—whether that is running code, processing data, or performing a calculation—on your own machine. This local execution is the foundation of the workflow because it ensures your private inputs never leave your environment. The goal is to produce an execution trace that the ZK system can later verify without exposing the underlying data or proprietary logic.

The process follows a strict sequence: prepare the environment, run the task, capture the trace, and initialize the proof generation. Each step must be handled carefully to ensure the final proof is mathematically sound and accepted by the verifier.

1
Set up the local environment

Before running the task, ensure your local development environment matches the requirements specified in the task brief. This typically involves installing specific language runtimes, compilers, or ZK toolkits. A mismatched environment can cause the execution trace to diverge from the expected circuit constraints, leading to proof generation failures.

ZK Verified Tasks
2
Execute the task and capture the trace

Run your code or process your data using the provided inputs. As the task executes, the ZK toolkit or instrumentation layer records an execution trace. This trace is a detailed log of every computational step, including intermediate values and control flow decisions. It serves as the raw material for the proof, documenting exactly how the result was derived without revealing the sensitive inputs themselves.

ZK Verified Tasks
3
Generate the ZK proof

Once the execution trace is complete, pass it to the proof generation engine. This step compiles the trace into a cryptographic proof that attests to the correctness of the computation. The proof is much smaller than the original trace and can be verified efficiently on-chain or by a remote verifier. This is where the mathematical security of zero-knowledge proofs ensures that no false claims can be made about the task outcome.

ZK Verified Tasks
4
Submit the proof and results

Finally, submit the generated proof along with the public outputs of the task to the verification contract or platform. The verifier checks the proof against the public parameters and the submitted outputs. If the proof is valid, the task is marked as completed. You have now proven you did the work without ever sharing the private details of how you did it.

Generate and submit the zero-knowledge proof

With your circuit compiled and private inputs prepared, the next phase involves generating the actual cryptographic proof and submitting it to the zkVerify network. This process transforms your local computation into a verifiable claim that the network can accept without re-executing the entire computation.

The workflow follows a strict three-step sequence: register the verification key, submit the proof, and poll for status. zkVerify requires the verification key (vk) to be registered on-chain before proofs can be accepted. This ensures the network knows exactly which circuit logic to validate against.

1. Register the verification key

Before generating a proof, you must register your circuit's verification key. This acts as a public reference for the network. You will use the register-vk command, providing your circuit artifacts. This step is one-time per circuit version. If you update your circuit logic, you must register a new key.

2. Submit the proof

Once the key is registered, generate your proof using your local prover. Then, submit it to zkVerify using the submit-proof command. You must specify the domainId (typically 2 for the incentivized testnet) and the registered verification key ID. The network will queue your proof for verification. This step is the core of the zero-knowledge task completion.

3. Poll for verification status

After submission, the proof enters a verification queue. Use the poll-status command to check the result. The system will return a status indicating whether the proof was accepted, rejected, or is still pending. Once the status confirms success, your ZK verified task is complete. You can then proceed to the next step in your workflow.

ZK Verified Tasks
1
Register Verification Key

Compile your circuit to generate the verification key (vk). Use the zkVerify CLI to register this key on the network. This step ensures the network recognizes your circuit's logic before you submit any proofs. This is a prerequisite for proof submission.

ZK Verified Tasks
2
Generate and Submit Proof

Run your local prover to generate the proof using your private inputs. Then, use the submit-proof command to send the proof to zkVerify. Specify the correct domainId and your registered verification key ID. The network will begin verifying the cryptographic claim.

3
Poll Verification Status

After submission, use the poll-status command to monitor the verification process. The network will process your proof and return a final status. Once the status indicates success, your ZK verified task is officially complete. You can now use the verification result in your application.

Verify the proof on-chain

Once you have submitted your zero-knowledge proof to the zkVerify network, the task is not complete until the verification is settled on-chain. This step confirms that your work was accepted by the decentralized validator set and recorded permanently on the blockchain.

The verification process on zkVerify is designed to be rapid and inexpensive, allowing dApp developers to integrate the latest zero-knowledge proving systems without the high gas fees typical of Layer 1 networks. When you submit your proof, it is processed by the zkVerify network, which then posts a verification status to the target chain.

To confirm your task is done, you need to check the transaction hash associated with your submission. This hash serves as your receipt. You can paste this hash into a block explorer for the relevant chain to see the verification status.

ZK Verified Tasks
1
Locate your transaction hash

After submitting your proof, the zkVerify interface or your wallet will provide a transaction hash. Copy this unique identifier; it is the key to tracking your verification status on the blockchain.

ZK Verified Tasks
2
Check the block explorer

Navigate to a block explorer for the chain where your proof was verified (e.g., Ethereum, Polygon, or zkSync). Paste the transaction hash into the search bar to view the transaction details.

3
Confirm the verification status

Look for a status of "Success" or "Verified" in the transaction logs. This confirms that the zkVerify network has validated your proof and that your task is officially complete and settled on-chain.

This on-chain confirmation is critical. It provides immutable proof that you completed the task, which is often required to claim rewards or access the next stage of a decentralized application. Without this step, your work remains unverified and may not be recognized by the protocol.

Common pitfalls in ZK proof submission

Even with a working circuit, the submission process involves network interactions that can fail silently or hang indefinitely. Understanding where things usually break helps you avoid wasting gas or waiting on stuck transactions.

Invalid circuit limits to account for

The most frequent error is submitting a proof that doesn't match the registered verification key (vk). If your circuit parameters change—even slightly—the proof becomes invalid for the domain. Always double-check that the domainId and circuit version in your submission match the register-vk step exactly. A mismatched constraint system will result in an immediate revert, which is easier to debug than a silent failure.

Network congestion and finality delays

Blockchain congestion can cause your submission transaction to drop or take longer than expected to confirm. Unlike simple token transfers, ZK proof verification requires more computational resources on-chain, making the network more sensitive to load.

Submission workflow checklist

Follow this sequence to minimize errors during the submission phase:

ZK Verified Tasks
1
Register verification key

Ensure your circuit is compiled and the verification key is registered on-chain before attempting any proof submission. This establishes the ground truth for verification.

ZK Verified Tasks
2
Submit proof with correct domain

Pass the correct domainId (e.g., domain 2) along with your proof. Verify that the proof data matches the constraints registered in the previous step.

3
Poll for finality

After submission, poll the status endpoint. The flow is straightforward: wait until the status explicitly turns to "verified" or "finalized" rather than assuming success based on gas usage.

Quick checklist for ZK task completion

Before you begin the next ZK verified task, ensure your environment is ready. A clean setup prevents the most common verification failures. Keep this list open as you work through the steps.

  • Set up your identity: Confirm your wallet or decentralized identity is linked to the ZK network.
  • Install dependencies: Verify that your local environment has the required SDKs and node modules.
  • Check the proof key: Ensure you have the correct verification key (vk) for the specific task domain.
  • Test locally: Run a local proof generation to catch errors before submitting on-chain.
  • Submit the proof: Use the official portal to submit your proof and wait for the status update.
ZK Verified Tasks