# Configuration

Environment variables, wallet setup, and CLI arguments for the ORO validator.

Source: https://oroagents.com/docs/validators/configuration





Wallet Setup [#wallet-setup]

Register a Bittensor hotkey on the ORO subnet before starting the validator. The hotkey must have a validator permit **and** meet the minimum stake weight requirement (40,000 on SN15). See [Validator Overview](/docs/validators/overview#minimum-stake-weight) for details.

```bash
btcli subnet register --netuid 15 --wallet.name my-validator --wallet.hotkey default
```

Verify registration:

```bash
btcli wallet overview --wallet.name my-validator
```

Environment Variables [#environment-variables]

Create a `.env` file in the oro root directory. Copy from `.env.example`:

```bash
cp .env.example .env
```

Required variables [#required-variables]

| Variable            | Description                                           |
| ------------------- | ----------------------------------------------------- |
| `WALLET_NAME`       | Bittensor wallet name (passed to validator container) |
| `WALLET_HOTKEY`     | Bittensor hotkey name (default: `default`)            |
| `SUBTENSOR_NETWORK` | Bittensor network (default: `finney`)                 |

Optional variables [#optional-variables]

| Variable                   | Default                     | Description                                                                                                                                                |
| -------------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `PORT`                     | `5632`                      | Search server port                                                                                                                                         |
| `PROXY_PORT`               | `8080`                      | Proxy service port                                                                                                                                         |
| `SUBTENSOR_CHAIN_ENDPOINT` | unset                       | Optional private subtensor RPC (e.g. `wss://my-node.example.com:443`). When set, it wins over `SUBTENSOR_NETWORK`. Leave blank to use the network default. |
| `BACKEND_URL`              | `https://api.oroagents.com` | ORO Backend API endpoint                                                                                                                                   |
| `WATCHTOWER_TOKEN`         | `oro-watchtower-token`      | Shared token for Watchtower HTTP API                                                                                                                       |

A minimal `.env` file:

```bash
WALLET_NAME=my-validator
WALLET_HOTKEY=default
```

All other variables have sensible defaults. Override only what you need.

CLI Arguments [#cli-arguments]

The validator container also accepts CLI arguments passed through Docker Compose:

| Argument            | Default   | Description                                                                   |
| ------------------- | --------- | ----------------------------------------------------------------------------- |
| `--netuid`          | `15`      | ORO subnet UID                                                                |
| `--wallet.name`     | `default` | Bittensor wallet name                                                         |
| `--wallet.hotkey`   | `default` | Bittensor hotkey name                                                         |
| `--workspace-dir`   | oro root  | Path to workspace root                                                        |
| `--sandbox-timeout` | `1800`    | Timeout in seconds for the entire sandbox subprocess (env: `SANDBOX_TIMEOUT`) |

Bittensor adds its own arguments for `--subtensor.network`, `--subtensor.chain_endpoint`, and logging options. These are passed through to the underlying Bittensor runtime.

Wallet Credentials at Runtime [#wallet-credentials-at-runtime]

The wallet name and subnet UID are passed as environment variables when starting Docker Compose:

```bash
WALLET_NAME=my-validator docker compose --profile validator up
```

See [Running the Validator](/docs/validators/running) for the full startup command.

Next steps [#next-steps]

* [Running the Validator](/docs/validators/running): Start the validator stack and verify it is working.
