How to Run a Prover Node
1. Background
ZK prover nodes are one of the critical roles in Cysic Network. Their job is to generate ZK proofs of various kinds, assigned by our partners and obtain Cysic Network credits as the rewards. Operating a prover node requires a solid understanding of DevOps and high-performance hardware.
To understand how tasks are assigned and how your configured bid affects selection and payout, see Cysic Auction Mechanism.
2. Hardware Requirements
Before proceeding, ensure your system meets the following minimum requirements:
- Basic understanding of command-line operations and Linux system administration
- Hardware specifications:
- Random Access Memory (RAM): Minimum 64GB
- Storage: Minimum 100GB of available disk space
- Graphics Processing Unit (GPU): Minimum 16GB VRAM
- Processor: 8 cores CPU with 64-bit architecture
- Reliable internet connection with stable low-latency access
- Supported operating system: Linux (Ubuntu 24.04 LTS or compatible distributions recommended)
3. Deploying the Prover Node
- Launch your terminal application on Linux.
- Execute the following command, replacing
0x-Fill-in-your-reward-address-herewith your designated reward address:
# replace 0x-Fill-in-your-reward-address-here to your reward address below
curl -L https://github.com/cysic-labs/cysic-mainnet-scripts/releases/latest/download/setup_prover.sh > ~/setup_prover.sh && bash ~/setup_prover.sh 0x-Fill-in-your-reward-address-here
This will install all the software dependencies and start the Venus server on local port 7000. The logs should have below output:
- Update the bid price field in the config.yaml file. You can adjust your bid price according to your machine price and reward policy to maximize your earnings.
- Lowering the bid price increases the likelihood of entering the candidate pool (ranks 2-9), from which winners are randomly selected.
- Raising the bid price increases the reward per task but reduces the chance of being included in the candidate pool.
-
The final task price is based on the auction's selected bid rather than always your own submitted bid. See Cysic Auction Mechanism for the full selection and reward rules.

-
Start the Prover Node service, run above commands in a new terminal:
4. Post-Deployment Configuration
4.1 Prover Node Initialization Output
Upon successful startup of the Prover Node using the start.sh script, you will observe terminal output similar to the following:
2025/12/08 02:52:27 start setup config
2025/12/08 02:52:27 start setup service
2025/12/08 02:52:27 start load secret file from path: ./data/assets
2025/12/08 02:52:27 file: data/assets/prover_0x179745B18af3975582078aa9B55802F9A9Db9fdD.key not exist, we will create it.
2025/12/08 02:52:27 your submit address mnemonic file is in: data/assets/prover_0x179745B18af3975582078aa9B55802F9A9Db9fdD.key, please keep it!!!
2025/12/08 02:52:27 your submit address mnemonic file is in: data/assets/prover_0x179745B18af3975582078aa9B55802F9A9Db9fdD.key, please keep it!!!
2025/12/08 02:52:27 your submit address mnemonic file is in: data/assets/prover_0x179745B18af3975582078aa9B55802F9A9Db9fdD.key, please keep it!!!
2025/12/08 02:52:27 send register info to server
2025/12/08 02:52:27 start setup job
2025/12/08 02:52:27 start firstTimeGetHWInfo
2025/12/08 02:52:27 try get prover id from chain
2025/12/08 02:52:27 received message: {"code":0,"message":"your current worker address is: 0x3A15e5A7c4301a25Ce04025B523AaC792A593775","respType":0,"data":null}
2025/12/08 02:52:27 error when get prover from chain, prover: 0x3A15e5A7c4301a25Ce04025B523AaC792A593775, err: prover not found
2025/12/08 02:52:27 error when get prover id, err: prover not found
2025/12/08 02:52:27 received message: {"code":0,"message":"","respType":1,"data":"eyJoZWFydGJlYXREdXJhdGlvbiI6MTV9Cg=="}
2025/12/08 02:52:27 received message: {"code":0,"message":"please Reserve first","respType":0,"data":null}
2025/12/08 02:53:12 send heartbeat to server
2025/12/08 02:53:13 received message: {"code":0,"message":"please Reserve first","respType":0,"data":null}
{"code":0,"message":"your current worker address is: 0x3A15e5A7c4301a25Ce04025B523AaC792A593775","respType":0,"data":null}
2025/12/08 02:53:13 error when unmarshal message, err: invalid character '{' after top-level value
2025/12/08 02:53:27 try get prover id from chain
2025/12/08 02:53:28 success got prover info with address: 0x3A15e5A7c4301a25Ce04025B523AaC792A593775
2025/12/08 02:53:57 send heartbeat to server
2025/12/08 02:53:58 received message: {"code":0,"message":"please Reserve first","respType":0,"data":null}
{"code":0,"message":"your current worker address is: 0x3A15e5A7c4301a25Ce04025B523AaC792A593775","respType":0,"data":null}
4.2 Critical Post-Deployment Steps
After starting the Prover Node, complete the following mandatory steps:
- Secure Key Management: Immediately backup all worker key files located in the
data/assetsdirectory. These keys are essential for node operation and reward claiming; store them in a secure, offline location. - Node Registration: Proceed to the Cysic Mainnet Website to reserve CYS tokens for your worker node, enabling it to participate in proof generation tasks.
4.3 Reserving CYS for Your Worker Node
A reserve of 1,000 CYS is required for each Prover Worker Node.
Your reserved CYS is not only a participation requirement. It also affects ranking when bids tie and contributes to reserve-weighted reward incentives described in Cysic Auction Mechanism.
To activate your Prover Node, follow these steps to reserve CYS tokens:
-
Access the Cysic Mainnet Portal: Navigate to the official Cysic Mainnet Website: https://app.cysic.xyz/prover
-
Authenticate Your Account: Click the sign-in button and follow the prompts to authenticate.

- Connect Your Wallet: Establish a connection between your wallet and the Cysic Mainnet Portal.

- Connect Keplr Wallet: Select the CONNECT KEPLR button and confirm the connection request.

- Reserve CYS Tokens: Scroll to the RESERVE CYS section, click the RESERVE button, select your worker node from the dropdown menu, and specify the required amount of CYS tokens to reserve.

- Verification of Activation: After successfully reserving CYS tokens, your Prover Node terminal will display output similar to the following, indicating the node is ready to receive proof generation tasks:
2025/12/08 02:58:27 send heartbeat to server
2025/12/08 02:58:27 received message: {"code":0,"message":"your current worker address is: 0x3A15e5A7c4301a25Ce04025B523AaC792A593775","respType":0,"data":null}
Important Note: Ensure your each Prover Node worker address maintains a sufficient balance of CYS tokens to cover transaction fees when submitting proof generation results.
5. Appendix
5.1 (Optional) Convert Reward Address to Private Key
Warning: Below command can convert the prover reward address key file to private key.
This step is only needed if you want to use the private key for other operations. Don't share the private key with anyone.
cd ~/cysic-prover
curl -L https://github.com/cysic-labs/cysic-mainnet-scripts/releases/latest/download/reward_address_decryptor_prover.sh > reward_address_decryptor_prover.sh
bash reward_address_decryptor_prover.sh
Above command will do the following task:
- Download the decryptor script to the
~/cysic-proverfolder. - Execute the decryptor script, the script will do the following steps:
- Download the decryptor program to the
~/cysic-prover/data/assets/folder. - Make the decryptor program executable.
- Run the decryptor program(the program will try to decrypt the reward address key file in current folder and print the private key to the console. If you have other key files need to decrypt, please copy them to this folder and the program will decrypt them as well).
The output of the decryptor program will be similar to below:
read privatekey from current dir
found 1 privatekey file
==========================================
reward address: 0x6e1fC643be3fDBeA1d80BA7e6E373491246E60D6
privatekey: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
==========================================
5.2 (Mandatory) Upgrade from SP1 Prover to Venus Prover
We are upgrading the proving system. All provers must migrate from SP1 to Venus to continue participating. Venus is a compute backend built on top of ZisK, developed by the Cysic Labs team, designed for better performance and scalability.
π§ Steps to Upgrade
- Stop current prover
- Install & update to Venus
cd ~
curl -L <https://github.com/cysic-labs/cysic-mainnet-scripts/releases/download/v2.0.1/update_venus_prover.sh> -o update_venus_prover.sh
chmod +x update_venus_prover.sh
bash ./update_venus_prover.sh
# this will start a local venus server on port 7000, you should see outputs like below: 2026/04/07 04:33:21 venus prover server listening on 127.0.0.1:7000
- Restart proverοΌrun below commands in another terminal
β Notes: This upgrade is mandatory, Venus improves proving efficiency and performance and we will no longer publish takes for sp1 proof type. Reach out in the community if you need help
5.3 (Optional) Troubleshoot Stuck Venus Prover Tasks
If your Venus prover is stuck on a task and your local Venus prover server shows the error below:
Failed assert in template/function VerifyEvaluations0 line 7869. Followed trace of components: main.sV.VerifyEvaluations0_10504_871803
Runtime error: Witness generation failed
2026-04-21T04:50:51.562485Z INFO: Error generating recursive1 witness from basic proof: Proof error: Error generating witness for instance
id 256 [0:31] of type Compressor
You can first press Ctrl-C to stop the local Venus server running on port 7000. Then run the commands below to update and restart it:
curl -L https://github.com/cysic-labs/cysic-mainnet-scripts/releases/download/v2.0.1/update_cargo_zisk.sh >~/cysic-prover/update_cargo_zisk.sh
chmod +x ~/cysic-prover/update_cargo_zisk.sh
bash ~/cysic-prover/update_cargo_zisk.sh
The output will look similar to below:
$ curl -L https://github.com/cysic-labs/cysic-mainnet-scripts/releases/download/v2.0.1/update_cargo_zisk.sh >~/cysic-prover/update_cargo_zisk.sh
$ chmod +x ~/cysic-prover/update_cargo_zisk.sh
$ bash ~/cysic-prover/update_cargo_zisk.sh
Detected GPU: NVIDIA GeForce RTX 5090
Detected compute capability: 12.0
Selected asset: cargo-zisk-sm120
Downloading cargo-zisk-sm120 from https://github.com/cysic-labs/cysic-mainnet-scripts/releases/download/v2.0.1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 62.6M 100 62.6M 0 0 15.3M 0 0:00:04 0:00:04 --:--:-- 17.6M
Installed cargo-zisk-sm120 to /root/venus_v0_1_6/target/release/cargo-zisk
Starting venus_prover_server on port 7000
ββββββββββ ββββββββββββββ βββββββ βββ βββββββββββββββ ββββββ βββββββββββ
ββββββββββββ βββββββββββββββββββββββ βββ ββββββββββββββββ ββββββ βββββββββββ
βββ βββββββ ββββββββββββββ βββ βββββββββ ββββββ ββββββ βββββββββββ
βββ βββββ ββββββββββββββ ββββ ββββββββββ βββββββββββββ βββββββββββ
ββββββββ βββ βββββββββββββββββββ βββββββ βββββββββββ βββββββββββββββββββββββ
βββββββ βββ βββββββββββ βββββββ βββββ βββββββββββ βββββ βββββββ ββββββββ
2026/04/21 05:15:07 venus prover server listening on 127.0.0.1:7000