This guide explains how to deploy a Merit subnet validator to participate in evaluating miners based on their active participation across the Bittensor network.
Merit validators:
- Score miners per-hotkey based on external subnet incentives.
- Perform dynamic global incentive refresh every epoch.
- Conduct TOTP-secured pings to verify miner liveness.
- Submit normalized weights dynamically to the Bittensor chain.
- Linux server or machine (Ubuntu 20.04+ recommended).
- Python 3.10+ with virtualenv support.
- Stable network connection.
- Open ports for outbound traffic (pinging miners).
- Accurate system clock (important for TOTP verification).
sudo apt -y install python3-venv python3-pip python-is-python3
sudo apt -y install ntpsecgit clone https://github.com/fx-integral/merit.git
cd meritpython3 -m venv venv
source venv/bin/activate
pip install uv
uv pip install -r requirements.txtpython -m merit.scripts.run_validator \
--subtensor.network finney \
--wallet.name {your_wallet_name} \
--wallet.hotkey {your_hotkey_name} \
--netuid 73 \
--logging.debug| Argument | Description | Default |
|---|---|---|
--ping_frequency |
Seconds between background pings | 120 |
Example:
python -m merit.scripts.run_validator --ping_frequency 120| Feature | Description |
|---|---|
| Dynamic Global Refresh | Fetches full network miner info every epoch. |
| Hotkey-Specific Scoring | Each registered hotkey is scored individually (no coldkey aggregation). |
| Incentive Averaging | Rewards are averaged across all active subnets (excluding netuid 0 and 73). |
| BMPS Calculation | bmps = (sum incentives / (active_subnets - 2)) × 100,000 |
| Ping Adjustments | -100% for failure |
| Weight Submission | Normalized weights submitted after each epoch. |
| Issue | Resolution |
|---|---|
| Time synchronization errors | Install and run ntpsec to correct system clock. |
| Validator crash during RPC calls | Validators auto-retry connection failures. |
| No miners found warning | Happens if all hotkeys are invalid, banned, or unreachable. |
Deactivate virtual environment:
deactivateActivate virtual environment:
source venv/bin/activatePull repository updates:
git pull origin main- Validators must have validator permit granted on the Merit subnet.
- Only hotkeys registered on Merit are scored — not external ones.
- Miners must be serving valid public IPv4 axons to avoid being skipped.
This project is licensed under the MIT License.
See LICENSE for details.