Requirements
A recommended minimum configuration for proving performance:- CPU - 16 threads, reasonable single core boost performance (>3Ghz)
- RAM - 32 GB
- Disk - 200 GB of solid state storage, NVME / SSD preferred
- GPUs: at least one NVIDIA GPU with >= 8GB of VRAM.
- In testing, we’ve found the best performance on the following NVIDIA GPUs: 4090, and L4.
- While it’s possible to use a single GPU, we recommend at least 10 GPUs to run a competitive prover.
- OS: Ubuntu 24.04 Full Virtual Machine or Bare Metal
Clone the Boundless Repo
To get started, first clone the Boundless monorepo on your proving machine, and switch to the latest release:Terminal
Install Dependencies
To run a Boundless prover, you’ll need the following dependencies:- Docker compose
- Docker Nvidia Support (Note: the install process requires enabling NVIDIA’s experimental packages)
Setup Environment Variables
You’ll need to set two environment variables:Terminal
Running a Test Proof
Boundless is comprised of two major components:- Bento is the local proving infrastructure. Bento will take requests, prove them and return the result.
- The Broker interacts with the Boundless market. Broker can submit or request proves from the market.
bento_cli:
Terminal
Terminal
Terminal
Terminal

Running the Prover Setup Wizard
Once Bento is running successfully, it is time to configure the broker. The Boundless CLI provides an interactive setup wizard to help configure the broker.toml and compose.yml files.Install the Boundless CLI
First, install the Boundless CLI (the Boundless CLI is separate to the Bento CLI we installed earlier):boundless to check it has been installed properly:

Run the Prover Setup Wizard
To run the prover setup wizard, run:
Running the Broker
We have checked that bento successfully generated a test proof. We are now ready to run the broker so that we can start proving on Boundless.Deposit Collateral
With the environment variables set, you can now deposit $ZKC tokens as collateral to your account balance:Terminal
Start Prover
You can now start the prover (which runs both bento + broker i.e. the full proving stack!):Terminal
Terminal
Stop Broker
To stop broker, you can run:Terminal
Terminal
Configuring Broker
Custom Environment
Instead of passing environment variables for each shell session as we did above, you can set them in.env.broker. There is an .env.broker-template available for you to get started:
Terminal
Terminal
Broker.toml
Broker can be configured using the Broker.toml configuration file. For example, to adjust the maximum number of proofs that can be processed at once, you can set:[boundless/Broker.toml]
Multi Host
Services can be run on other hosts, as long as the IP addresses for things link PostgreSQL / Redis / MinIO are updated on the remote host. See the.env.broker-template HOST configuration options here to adjust them.
Configuring Bento
Thecompose.yml file defines all services within Bento. The Boundless repo includes a starter compose.yml which you can see here.
Multi GPU
Under theexec_agent service in compose.yml, the default configuration utilises a single GPU:
compose.yml
Terminal
1. To add this GPU, uncomment gpu_prove_agent1 from compose.yml:
compose.yml
gpu_prove_agentX where X matches the device ID of each GPU, making sure that the device_ids field is populated with a matching X: ['X'].
Segment Size
Larger
SEGMENT_SIZE values also impact the proving systems conjectured security bits slightly (see RISC Zero - Cryptographic Security Model).SEGMENT_SIZE is specified in powers-of-two (po2). Larger segment sizes are preferable for performance, but require more GPU VRAM. To pick the right SEGMENT_SIZE for your GPU VRAM, see the performance optimization page.
Setting SEGMENT_SIZE
The recommended way to change the segment size is to set the environment variableSEGMENT_SIZE, before running broker, to your specified value. This can be done through the .env.broker file.
You can also configure the SEGMENT_SIZE in compose.yml under the exec_agent service; it defaults to 21:
compose.yml