Phase 2: Instructions to participate in the Nimiq Zero-Knowledge Proof Ceremony

This documentation explains the procedure for generating the initial keys (a.k.a. the generate binary), which is necessary to participate in Phase 2 of the ZKP Ceremony.

Read this blog post first to understand the complete procedure.

:exclamation: If you have participated in Phase 1 of the ZKP Ceremony, ensure the security and integrity of the process by destroying any keys and files generated during that phase. This includes securely deleting any data related to your Phase 1 contribution.

Expectation from Contributors

  • Availability on Discord: We also count on you being reachable via Discord since as soon as the round contributors are assigned to start, they must begin contributing promptly.

  • System Availability: Turn off the sleep setting on your machine and ensure it is connected to a power outlet. Contributors must be willing to keep their computers operational for multiple hours or even a few days, depending on the progress of the ceremony.

  • Technical Requirements: Ensure that you meet the following technical requirements:

    • Familiarity with running any Command Line Interface.
    • Operating systems: Linux, macOS, Windows.

    For assistance with the Command Line Interface, including guidance for users on VPS (Virtual Private Servers), you may find the following guides helpful:

Phase 2: Key Generation

In this second phase, contributors go through a two-step process to generate and secure their keys, like in Phase 1. Here is how you can generate your keys:

Step 1: Generate Your Keys

  1. Get the Generate Binary:
    • Option 1: Compile from Source (advanced users)
      1. Install Rust 1.77.2 using rustup install 1.77.2. If you don’t have rustup installed, follow the instructions at
      2. git clone
      3. cd snark-setup-operator
      4. cargo build --release --bin generate to compile the generate binary for release.
      5. ./target/release/generate to execute the built generate binary.
    • Option 2: Use Precompiled Binary (regular users)
      1. Download the generate binary corresponding to your OS here.
      2. Make generate_<your-operating-system> an executable file and run it. In case you don’t know how to do this, you can find instructions here: Linux, MacOS, Windows
  2. Run it in a Command Line:
    1. When asked to “Enter some entropy for your Nimiq seed:” input any characters you like on your keyboard.
    2. Create a passphrase (leave it empty to autogenerate a secure one). Remember to save your passphrase - you will need it later.
    3. Keep the nimiq.keys file, ideally stored on a USB pen drive, where it’s easy to destroy later.
    4. Send only the public key from the output to this form. Please note that we prioritize users who have joined our Discord and submitted their respective usernames and public keys. This helps us simplify communication and coordination throughout the ceremony.

Thank you for your initial participation! Nimiq Coordinators will notify contributors to proceed with the second part of Phase 2.