```
SPORTSTENSOR PRESENTS
--------------------------------------------------------------------------------------------------
█████████ █████ ██████ ██████ █████████ ██████ █████ █████████ █████████
███▒▒▒▒▒███ ▒▒███ ▒▒██████ ██████ ███▒▒▒▒▒███ ▒▒██████ ▒▒███ ███▒▒▒▒▒███ ███▒▒▒▒▒███
▒███ ▒███ ▒███ ▒███▒█████▒███ ▒███ ▒███ ▒███▒███ ▒███ ▒███ ▒███ ███ ▒▒▒
▒███████████ ▒███ ▒███▒▒███ ▒███ ▒███████████ ▒███▒▒███▒███ ▒███████████ ▒███
▒███▒▒▒▒▒███ ▒███ ▒███ ▒▒▒ ▒███ ▒███▒▒▒▒▒███ ▒███ ▒▒██████ ▒███▒▒▒▒▒███ ▒███
▒███ ▒███ ▒███ █ ▒███ ▒███ ▒███ ▒███ ▒███ ▒▒█████ ▒███ ▒███ ▒▒███ ███
█████ █████ ███████████ █████ █████ █████ █████ █████ ▒▒█████ █████ █████ ▒▒█████████
▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
```
- [Introduction](#introduction)
- [How it Works](#how-it-works)
- [Miner and Validator Functionality](#miner-and-validator-functionality)
- [Miner](#miner)
- [Validator](#validator)
- [Miner setup and running Validators](#miner-setup-and-running-validators)
- [Setting up a Miner](#setting-up-a-miner)
- [Running a Validator](#running-a-validator)
- [Community](#community)
- [License](#license)
## Introduction
Sportstensor operates the world's first decentralized competition network for sports prediction. We connect global AI talent in a competitive ecosystem where independent developers deploy predictive models, compete against real-world outcomes, and earn rewards based on accuracy.
Almanac is the front end to Sportstensor, a prediction market interface that makes competing and submitting predictions by trading simpler and much more accessible.
## How It Works
We implement a two-phase optimization system that rewards miners based on
their historical trading performance. The mechanism distributes a fixed budget among eligible
participants, prioritizing those who demonstrate consistent profitability and trading volume.
The system tracks trading activity over a rolling 30-day window, organizing trades into daily
epochs. For each epoch, it:
1. Calculates Performance Metrics:
- ROI (Return on Investment): Profit divided by trading volume
- Qualified Volume: Volume from winning trades (after fees)
- Trailing Performance: Historical performance across all epochs
2. Applies Eligibility Gates:
- Minimum ROI threshold (prevents rewarding unprofitable traders)
- Minimum volume requirement (ensures meaningful participation)
- Build-up period: Traders must demonstrate consistent activity over multiple epochs
3. Runs Two-Phase Optimization:
Phase 1: Maximizes the total qualified volume that can be funded within budget constraints
Phase 2: Redistributes payouts to favor higher-ROI traders while maintaining volume targets
4. Allocates Tokens:
- Converts optimized scores into token weights
- Distributes rewards proportionally based on funded volume and signal strength (ROI)
- Enforces diversity caps to prevent any single trader from dominating
### Key Features
- Dual Pool System: Separate scoring for registered miners vs. general pool traders
- Volume Decay: Recent activity weighted more heavily than older trades
- Smooth Transitions: Ramp constraints prevent sudden allocation changes
- Budget Management: Ensures total payouts never exceed available budget
- Performance Gating: Only profitable, active traders receive rewards
The system is designed to incentivize high-quality trading signals while maintaining fairness
and preventing gaming through volume requirements and historical performance tracking.
## Miner and Validator Functionality
### Miner
- Miners generate **information signals** by trading on Almanac, which routes Polymarket CLOB orders through the miner’s proxy wallet.
- Every trade becomes a scored prediction within the **incentive mechanism**, which evaluates accuracy, ROI, timing, and informational value.
- Miners may use **manual strategies, models, or automated systems**—the scoring is model-agnostic and purely performance-based.
- High-signal miners earn the largest share of **daily Alpha Token emissions**.
### Validator
- **Metadata Syncing**: Validators continuously sync miner metadata from chain (wallets, proxy addresses, UIDs).
- **Data Ingestion**: At each epoch, the validator pulls miner trading history from Almanac’s backend (rolling window).
- **Scoring**: The validator runs the **two-phase scoring mechanism**.
- **Weight Setting**: After generating scores, validators set miner weights on-chain, determining Alpha Token emissions for the next epoch.
### Scoring and Weights
- Scoring runs **hourly** in the background, always computing rewards for the **previous epoch** while updating weights for the current one.
- Epochs follow 24-hour windows, and a **decaying memory function** favors recent performance.
- Validators publish final weights using the scoring output, directly influencing miner rewards.
- For implementation details, reference the scoring engine in `scoring.py` and the official docs.
---
## Miner Setup and Running Validators
### Setting up a Miner
#### Requirements
- Almanac account linked to Polymarket
- Almanac account connected to a registered Bittensor coldkey
- Python 3.10+
- Pip
- CPU
#### Bittensor Wallet and Subnet Registration
You must have a Bittensor wallet and a registered UID on the subnet.
- Wallet guide: https://docs.learnbittensor.org/keys/wallets
- Miner registration: https://docs.learnbittensor.org/miners
#### Almanac and Polymarket Setup
1. Go to **https://beta.almanac.market**
2. Create an account
- Deploy safe wallet
- Sign all approvals
- Fund your safe wallet
3. Connect your Bittensor coldkey:
- Install the Bittensor wallet extension
- Import the coldkey tied to your miner UID
- Link wallet in Almanac settings
#### Miner Metadata Registration
1. Clone the repository:
```bash
git clone https://github.com/sportstensor/sn41/
cd sn41
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Register miner metadata:
```bash
python miner.py
```
## Miner Trading with Almanac dApp
Once linked, miners can trade directly on **https://beta.almanac.market**.
Validators automatically detect trades, compute scores, and distribute emissions.
*Note: Miners trading directly on the app don't need to connect their Bittensor wallet after initially linking account.
---
## Miner Trading with API
For programmatic trading:
1. Complete all onboarding steps above.
2. Use the **Almanac API Trading Client** (`api_trading.py`) to:
- Generate Polymarket API credentials
- Create Almanac trading sessions
- Search markets
- Place signed CLOB orders
- Submit proxy-signed EIP-712 orders
---
## Running a Validator
### Requirements
- Python 3.10+
- Pip
- CPU
### Weights & Biases
W&B is supported for logging.
Enable with:
```bash
export WANDB_API_KEY=
```
### Setup
Clone and enter the repo:
```bash
git clone https://github.com/sportstensor/sn41/
cd sn41
```
Install pm2 (if not already installed).
Install Python dependencies:
```bash
pip install -r requirements.txt
```
### Run Auto-Updating Validator with PM2 (recommended)
```bash
pm2 start validator_auto_update.sh --name sn41-validator -- \
--netuid 41 \
--wallet.name {wallet} \
--wallet.hotkey {hotkey} \
--logging.debug
```
### Run Basic Validator with PM2
```bash
pm2 start validator.py --name sn41-validator -- \
--netuid 41 \
--wallet.name {wallet} \
--wallet.hotkey {hotkey} \
--logging.debug
```
## Environments
| Network | Netuid |
| ----------- | -----: |
| Mainnet | 41 |
| Testnet | 172 |
## Community
Join the vibrant Bittensor community and find our channel `#פ • sporτsτensor • 41` on [Discord](https://discord.gg/bittensor).
## License
The SN41 Sportstensor subnet is released under the [MIT License](./LICENSE).
---