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 --helpThe 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.
| Variable | Flag | Meaning |
|---|---|---|
PARETON_WALLET_NAME | --coldkey | Local Bittensor wallet name |
PARETON_WALLET_HOTKEY | --hotkey | Local 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 foreverStop 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-auditorPM2 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
| Symptom | Cause |
|---|---|
holds no validator permit | Your stake is not high enough to keep a permit |
is not registered on netuid 10 | The hotkey lost its UID |
| Chain shows the old vector after a set | Commit-reveal delay. Wait one epoch |
| Other validators do not trust-weight you | version_key does not match |
404 from /v1/weights | No vector computed yet. The script retries |
