Pareton
Validator

Set weights from our API

Read the published vector from the Pareton API and sign it on subnet 10.

Download auditor.py and run it. It fetches GET https://api.pareton.ai/v1/weights and submits that vector on Finney netuid 10. It does not change the vector.

After a successful submission it waits 360 blocks. After a failure it waits 36 blocks. SN10 uses commit-reveal, so a successful call means the commitment was accepted; the vector goes live after reveal.

Install

# Download the standalone script
curl -O https://raw.githubusercontent.com/Pareton-ai/pareton/main/scripts/auditor.py
# Install the two dependencies
python -m pip install 'requests>=2.31' 'bittensor==11.0.2'
# Confirm the CLI loads
python auditor.py --help

The script imports nothing else from the Pareton repository. You do not need to clone the repo.

Configure

Only the wallet is configurable. Network, netuid, and the API URL are fixed in the script.

VariableFlagMeaning
PARETON_WALLET_NAME--coldkeyLocal Bittensor wallet name
PARETON_WALLET_HOTKEY--hotkeyLocal hotkey name inside that wallet

A flag overrides the environment variable. Both are required. These are local wallet names, not addresses or seeds. The hotkey must be registered on netuid 10 with a validator permit; the script checks that and exits before signing if it is not.

Run

export PARETON_WALLET_NAME=my-validator-coldkey
export PARETON_WALLET_HOTKEY=my-validator-hotkey

python auditor.py --once   # one attempt, exit 0 on acceptance, 1 on failure
python auditor.py          # run forever

Stop the foreground process with Ctrl-C. Test --once first.

Run in the background

With PM2:

pm2 start auditor.py --name pareton-auditor --interpreter "$(command -v python)"
pm2 save
pm2 logs pareton-auditor

PM2 inherits the environment of the shell that started it. Run pm2 startup once if it should start after a reboot.

With nohup:

nohup python auditor.py > pareton-auditor.log 2>&1 &
echo $! > pareton-auditor.pid
tail -f pareton-auditor.log

kill "$(cat pareton-auditor.pid)"

A validator that stops setting weights stops earning, and the chain does not warn you. Keep the process supervised.

The vector

curl -s https://api.pareton.ai/v1/weights
{
  "computed_at_block": 6721920,
  "version_key": 2032,
  "burn_uid": 201,
  "weights": [0.0, 0.0, "..."],
  "breakdown": ["..."]
}

weights[i] is the weight for UID i. The list is dense and sums to 1.0. breakdown is the per-campaign audit trail. A 404 means no vector has been computed yet; the script retries in 36 blocks and does not sign.

Verify a set landed

print(subtensor.query(("SubtensorModule", "Weights"), [10, my_uid]).value)

You get (uid, u16_weight) pairs quantized against a ceiling of 65535, so they never match your floats exactly. Compare the ratio between two UIDs, not the absolute numbers.

Commit-reveal delays the read. Immediately after a set, this correctly returns your previous vector. Wait a full epoch before you treat it as a failure.

Failures worth reading

SymptomCause
holds no validator permitYour stake is not high enough to keep a permit
is not registered on netuid 10The hotkey lost its UID
Chain shows the old vector after a setCommit-reveal delay. Wait one epoch
Other validators do not trust-weight youversion_key does not match
404 from /v1/weightsNo vector computed yet. The script retries

On this page