> ## 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.

> [!NOTE]
>
> Provers will require NVIDIA GPUs and Ubuntu 24.04. For a full list of requirements, please see [Requirements](https://docs.boundless.network/provers/quick-start.md#requirements).

**1. 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](https://docs.boundless.network/provers/broker.md#safe-upgrade-steps) and then return to this page.

Bento and/or broker can be safely stopped with:

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

**2. Install the latest release**

To install the latest release, and run through the setup wizard, provers can follow the instructions on the [Quick Start](https://docs.boundless.network/provers/quick-start.md) before continuing with the next step.

**3. Install the latest version of Rust**

Follow the instructions [here](https://www.rust-lang.org/tools/install).

**4. 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](https://docs.boundless.network/developers/tooling/cli.md#installation).

**5. 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.

**6. 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).

**7. Install 'risc0-groth16' using rzup**

Run the following:

```bash theme={null}
rzup install risc0-groth16
```

**8. 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](https://docs.boundless.network/zkc/mining/wallet-setup.md).

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]
```

**9. Optional but highly recommended: Delegate Reward Power to Reward Address**

Follow the instructions [How to Delegate Rewards](https://docs.boundless.network/zkc/mining/wallet-setup.md#how-to-delegate-rewards) to delegate reward power from the staking wallet to the reward address. For more context, please see the [Wallet Setup](https://docs.boundless.network/zkc/mining/wallet-setup.md) tutorial

**10. 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.

**11. 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](https://docs.boundless.network/zkc/quick-start.md#how-do-zkc-rewards-work) to be eligible for that epoch's mining rewards. This process is documented in [Mining + Claiming Rewards](https://docs.boundless.network/zkc/mining/claiming-rewards.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.