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.
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-hereThis 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.
- Lower the bid price to increase the likelihood of getting the prove task.
- Raise the bid price to increase the reward for completing a prove task.

-
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.
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:
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 to VENUS
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 pkill -f 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