Overview
Cowboy configuration lives in three layers:- Validator — a per-validator YAML file plus
genesis.json, generated by thesetupbinary (./scripts/run_build.shfor a local devnet) - Node environment variables — runtime knobs for the RPC server
- CLI project config —
.cowboy/config.jsonin your project, created bycowboy init
Validator config file (YAML)
Generated astest/<validator-pubkey>.yaml on a local devnet. Key fields:
Identity and keys
Network
Storage, runtime, logging
Chain and services
Genesis (genesis.json)
Node environment variables
Consensus timing (leader timeout, certification timeout, fetch limits) is compiled into the validator binary and is not file-configurable.
CLI project config (.cowboy/config.json)
Created by cowboy init <network>; supports multiple named environments:
Resolution order (first match wins):
- Private key:
--private-keyflag →COWBOY_PRIVATE_KEYenv →key_fileof the active environment → legacy.cowboy/key - RPC URL:
--rpc-urlflag →COWBOY_RPC_URLenv → active environment’srpc_url→http://localhost:4000
cowboy init local targets a local validator; cowboy init dev targets the hosted devnet. See cowboy init.
Runner daemon
The off-chain runner reads its executor credentials from the environment —OPENAI_API_KEY, ANTHROPIC_API_KEY, and LLM_MODEL for the LLM executor — generates its key material on first run, and registers on-chain with a stake (cowboy runner register --stake 50000, denominated in CBY). Stake gates eligibility twice: registration requires stake ≥ 1.5× the runner’s declared maximum job value, and at dispatch a runner is only a candidate for jobs whose price its effective stake covers at 1.5×. See cowboy runner and CIP-2.
Further reading
- RPC API Reference — endpoints these knobs gate
- Troubleshooting — symptoms caused by misconfiguration
- Quickstart — the happy-path local setup

