Operators

Running a validator

Validator requirements, scoring loop, and incentives.

What validators do

Validators are the scoring infrastructure of the subnet. They:

  1. Query miners with task inputs.
  2. Run the scoring function against the responses.
  3. Submit weights back to the chain, which determines TAO emissions.

Validators are paid a share of subnet emissions in proportion to consensus — that is, how much their weights agree with the network's median. There's a small built-in disincentive against running rogue.

Requirements

  • Stake floor: TBD TAO (see Architecture)
  • Uptime: the consensus mechanism penalizes validators that miss validation rounds; aim for >99%.
  • Hardware: modest. CPU + RAM. The scoring function is intentionally cheap — see Architecture.

The validator loop

while True:
    miners = metagraph.miners(active=True)
    responses = await query_all(miners, sample_task())
    weights = score(responses)
    submit_weights(weights)
    sleep(tempo_seconds)

That's the whole thing. The complexity lives inside score(), which is published — read the scoring spec for details once available.

Anti-collusion

Validators that submit identical weights to each other beyond what randomness would predict get deweighted. We're not going to publish the exact threshold (that would help the cheater more than the honest validator), but it's well above what two honest validators on the same task spec would naturally produce.