Skip to main content
The validator reads a YAML config. Start from config/validator.example.yaml and edit the network and validator blocks. Defaults below come from ValidatorSettings and NetworkSettings (src/platform_network/config/settings.py:10-52).

Network block

The network block sets identity and chain connection (config/validator.example.yaml:1-8, src/platform_network/config/settings.py:10-17):

Validator block

The validator block controls the registry reconcile loop and the weight submit loop (config/validator.example.yaml:15-22, src/platform_network/config/settings.py:41-52):

Weights URL resolution

weights_url defaults to null. When it is null, the validator fetches weights from registry_url. The resolved_weights_url property returns weights_url when set, otherwise registry_url (src/platform_network/config/settings.py:50-52).

Database block

The validator config includes a database URL using the asyncpg driver (config/validator.example.yaml:24-25):

Observability block

Logging defaults to JSON output (config/validator.example.yaml:35-38, src/platform_network/config/settings.py:112-115):

Delegation instead of self-hosting

If running the validator stack is too demanding, you can delegate validation power with Bittensor CHK / stake-weight check to the recommended validator hotkey, rather than running this stack yourself (config/validator.example.yaml:10-13).

Next steps

Running a validator

Apply the config and start the runtime.

Weight setting

How the cadence values drive submissions.