> ## Documentation Index
> Fetch the complete documentation index at: https://docs.boundless.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Enabling ZK Mining

> Best practices for wallets used in Staking, Proving and ZK Mining.

<Info>
  Provers will require NVIDIA GPUs and Ubuntu 24.04. For a full list of requirements, please see [Requirements](/provers/quick-start#requirements).
</Info>

<Steps>
  <Step title="Stop Bento Safely">
    To enable PoVW in Bento, first make sure to stop Bento safely. This ensures that any in-progress proving jobs are completed before terminating the proving process. If Bento is backing the Broker, please carry out *Step 1* from [Safe Upgrade Steps](/provers/broker#safe-upgrade-steps) and then return to this page.

    Bento and/or broker can be safely stopped with:

    ```bash theme={null}
    just broker down
    ```
  </Step>

  <Step title="Install the latest release">
    To install the latest release, and run through the setup wizard, provers can follow the instructions on the [Quick Start](/provers/quick-start) before continuing with the next step.
  </Step>

  <Step title="Install the latest version of Rust">
    Follow the instructions [here](https://www.rust-lang.org/tools/install).
  </Step>

  <Step title="Make sure to have the Boundless CLI installed">
    Provers use the Boundless CLI to stake *\$ZKC*, prepare work log updates, and submit them onchain. To install the Boundless CLI (and build with CUDA support), see the [installation instructions](/developers/tooling/cli#installation).
  </Step>

  <Step title="Install the latest version of Foundry">
    Some commands in this tutorial use [cast](https://getfoundry.sh/cast/overview) from the [Foundry toolkit](https://getfoundry.sh/). This is not necessary, but it will make some CLI commands more straightforward.
  </Step>

  <Step title="Install the latest version of rzup">
    Follow the instructions [here](https://dev.risczero.com/api/zkvm/install#installation-for-x86-64-linux-and-arm64-macos).
  </Step>

  <Step title="Install 'risc0-groth16' using rzup">
    Run the following:

    ```bash theme={null}
    rzup install risc0-groth16
    ```
  </Step>

  <Step title="Specify the Reward Address">
    <Tip>
      Provers can use their *\$ZKC* staking address as their Reward Address but this is not recommended. In practice, provers should use a separate wallet to stake *\$ZKC*. For more information, see [Wallet Setup](/zkc/mining/wallet-setup).
    </Tip>

    Before starting Bento again, provers need to enable the ZK mining feature. This requires a valid Ethereum address set to the `REWARD_ADDRESS` environment variable. It is recommended to set this directly in the compose file you run (`prover-compose.yml` by default, `compose.yml` for the legacy stack), under the `x-base-environment` block:

    ```yml prover-compose.yml theme={null}
    x-base-environment: &base-environment
      BENTO_API_URL: http://rest_api:8081
      REDIS_URL: redis://${REDIS_HOST:-redis}:6379
      RUST_LOG: ${RUST_LOG:-info}
      RISC0_HOME: /usr/local/risc0
      RUST_BACKTRACE: 1
      REWARD_ADDRESS: "0x1234...5678" // [!code hl] [!code focus]
    ```
  </Step>

  <Step title="Optional but highly recommended: Delegate Reward Power to Reward Address">
    Follow the instructions [How to Delegate Rewards](/zkc/mining/wallet-setup#how-to-delegate-rewards) to delegate reward power from the staking wallet to the reward address. For more context, please see the [Wallet Setup](/zkc/mining/wallet-setup) tutorial
  </Step>

  <Step title="Start Bento">
    Once enabled, Bento can be run as normal with:

    ```bash theme={null}
    just bento
    ```

    Or if running the broker as well:

    ```bash theme={null}
    just broker
    ```

    will start both the broker and Bento.
  </Step>

  <Step title="Generate Proofs + Submit Work Proofs Onchain">
    Once Bento is running, provers can run proving jobs as normal. Bento will now create a work proof for every proving job; a work proof cryptographically proves how much work Bento has done (in [cycles](https://dev.risczero.com/terminology#clock-cycles)).

    Using the Boundless CLI, provers aggregate these work proofs and submit the aggregated work proof *at least once* per [reward epoch](/zkc/quick-start#how-do-zkc-rewards-work) to be eligible for that epoch's mining rewards. This process is documented in [Mining + Claiming Rewards](/zkc/mining/claiming-rewards).
  </Step>
</Steps>
