A quant paper-trading sandbox for Bittensor subnet alpha tokens — built to learn what works before any real capital is at risk.
What this system does
Tao-Quant runs a small portfolio of strategies against the live Bittensor market every 30 minutes. Every trade is paper — no real money. Its job is to generate clean, structured data about which signals actually predict subnet returns so we can graduate the winners to real capital later.
How the pieces fit
Five sleeves run in parallel
Sleeve
What it trades
Why we run it
subnet_alphanomics
Top-6 subnets by 9-component composite score
The algorithmic research strategy — selects from the full universe by score.
subnet_liquidity
Top-6 subnets by pool depth
Dumb baseline — proves whether scoring beats just buying the biggest.
subnet_dsv
DSV Fund's broad 20-name allowlist, equal weight
Curated universe — does fund-grade screening beat algorithmic selection?
subnet_lewis
Lewis Smith / Mark Jeffrey 7-position weighted allocation, 50% root staking
Conservative reference allocation from the public 10x Challenge dashboard.
Aggressive, revenue-screened. CIO of world's first TAO-exclusive hedge fund.
Why five sleeves? Each is a separately-funded $10K paper sleeve so equity curves are directly comparable. liquidity is the dumb-money floor; alphanomics tests whether algorithmic scoring adds value; dsv tests broad curated universe vs algorithm; lewis and kidd are real published portfolio allocations from the jackson-video-resources/bittensor-investing-agent repo (Lewis Smith's 10x Challenge). The two weighted sleeves include SN0 root staking, which the others don't — see Methodology.
Key facts
Cadence: 30-minute ticks via Windows Task Scheduler. Snapshots write every tick; trades fire only when a position drifts > 5% of sleeve equity from target.
Universe: 129 Bittensor subnets, screened down to ~30 eligible names per tick.
Capital: $10,000 paper per sleeve. Real-money capacity ceiling is around $10K total per Maymin (2026) — see Methodology tab.
Data: taostats.io free tier (5 req/min, throttled to 12.5s between calls). Coingecko for spot TAO/USD.
Friction modeled: per-pool fee_rate from API + AMM slippage (trade_tao / pool_tao × 0.5, capped 5%).
Bittensor, TAO, and dTAO subnets — the short version
Bittensor is a decentralized network where independent “subnets” compete to perform useful AI work (inference, training, scraping, audio, bio, etc). Each subnet has its own token (an “alpha” token). TAO is the macro asset that flows between them.
The three layers
Why subnet prices move
Emissions allocation. The protocol allocates new TAO emissions to subnets weighted by a 30-day half-life EMA of their net stake flow (“Taoflow”). More inflows → more emissions → buying pressure.
AMM mechanics. Each subnet has a single constant-product pool (TAO ⇄ alpha). A buy of x TAO into a pool with reserve τ produces a 2·x/τ % price change to first order — meaning smaller pools amplify more. This is Maymin (2026) Proposition 1.
Real-world demand. Validators must hold the subnet’s alpha token to vote on miner quality, so subnets with healthy validator participation have organic floor demand.
Network effects. A subnet with active miners + validators + rising emissions creates a flywheel; one without these collapses.
How a trade actually works
Why the SMB factor exists
Maymin’s arXiv 2603.29751 paper studied the cross-section of subnet returns and found that a small-minus-big portfolio (long the smallest market-cap subnets, short the largest) earned ~1% per day with a gross Sharpe of 3.84. The mechanism is the AMM: identical TAO emissions cause much bigger % moves in small pools, mechanically.
The catch — capacity. The same AMM that amplifies small-pool returns also amplifies your own trade impact. The strategy capacity ceiling per Maymin is roughly $10K — at $100K AUM you’re paying so much slippage you eat the alpha. This is a research and small-capital strategy, not a scalable one.
Glossary
Term
What it is
TAO
Native asset of the Bittensor network. Roughly analogous to ETH on Ethereum.
Subnet
A specialized network within Bittensor that does one type of work (e.g. text inference). Each has a number (netuid) and a name.
Alpha token
A subnet’s own token. Trades against TAO via the subnet’s AMM pool.
dTAO
The decentralized-TAO upgrade that gave each subnet its own pool and price discovery (vs the prior proportional-emission model).
Taoflow
The 30-day EMA of net stake flow into a subnet. The protocol uses this to set emissions.
Validator
An entity that scores miner work and earns emissions. Must stake TAO + hold subnet alpha.
Miner
An entity that performs the subnet’s actual work (inference, scraping, etc) and earns emissions.
SMB factor
Small-minus-big — long small market caps, short large. The dominant alpha factor per Maymin.
How the bot decides what to trade
Every 30 minutes the bot pulls a live snapshot, runs each subnet through a screener, scores the survivors, builds a target portfolio, and trades the deltas. Each step is intentionally simple so we can attribute outcomes to specific signals.
The full pipeline
1. The screener — drop dust and unhealthy subnets
Out of 129 subnets, we eliminate any that fail any of the following gates:
Filter
Threshold
Reason
Liquidity (raw)
≥ 1e11 (~100 TAO)
Drops dust pools where price is meaningless.
Pool depth ceiling
≤ 50,000 TAO
Pools above this have negligible AMM amplification on a $10K trade (Maymin/DSV bound).
Active validators
≥ 8
Network health — too few validators = capture risk.
Active miners
≥ 10
Real activity — ~50% of subnets have ≤1 miner.
1-week price change
≥ −30%
No falling-knife catches.
Price > 0
strict
Sanity.
2. The alphanomics scorer (v4)
Each surviving subnet gets nine component scores in [0,1]. The composite is a weighted sum:
Component
Weight
What it measures
Source
size_inverse
0.25
Percentile rank by −mcap — small wins
Maymin SMB
alphanomics_short
0.15
1-day net stake flow percentile
Taoflow proxy
alphanomics_med
0.15
7-day net stake flow percentile
Taoflow proxy
momentum_1m
0.15
30-day price change, clipped ±50%
Maymin WML30
momentum_1w
0.10
7-day price change, clipped ±20%
Maymin WML7
emission_yield
0.05
Daily emission / mcap
Maymin HML_EMIS
buy_sell_pressure
0.05
24h buy_vol / total_vol
Order-flow
network_health
0.05
validators × miners, percentile
Sanity tilt
flow_acceleration
0.05
1d flow vs 7d daily-avg
Catalyst
Why size dominates the weights. The Maymin paper found SMB has Fama-MacBeth t = 3.23 vs < 2 for most other factors in the cross-section. The 0.25 weight reflects “strongest signal in the academic record + mechanically grounded in the AMM.” Other components are present mostly to diversify against pure size, not because we trust them as much.
3. Portfolio construction
Top-K = 6. Six equally-weighted positions per sleeve. Empirically this gives enough diversification without spreading capital so thin that AMM slippage dominates each trade.
Max 25% per name. Hard cap so a single subnet can never blow up the sleeve.
Equal weighting, not score-weighted. Score-weighted concentrates in the top name and amplifies single-subnet risk.
4. Execution & friction
Trade trigger: only when |target − current| > 5% of sleeve equity. Acts as the natural friction filter to avoid over-churning.
Slippage:min(0.05, (trade_tao / pool_tao) × 0.5) — capped at 5%. Linear approximation of AMM impact.
Fees: per-pool fee_rate from the API, ~5 bps default.
Mark-to-market: equity is stamped every tick regardless of whether a trade fires, so we get a continuous P&L curve.
5. The liquidity baseline (control arm)
Same screener, same K=6 equal-weight construction, same execution — but the score is just raw pool liquidity. This is the dumb-money strategy. If alphanomics can’t beat it, the composite score is adding nothing.
6. The DSV Fund picks (curated-allowlist arm)
DSV Fund publishes a list of 20 subnets they have meaningful capital in. We treat that list as a hard allowlist: same screener, same execution, but the score becomes a binary “is it on the list, yes/no” and the portfolio is equal-weighted across whichever members of the 20 currently pass the screen.
Why no algorithmic ranking: the whole point of this arm is to ask “does fund-grade curation beat algorithmic top-K?” Adding a scorer on top would contaminate the test.
K = 20 (or however many of the 20 pass the screen) — empirically often 8–12 in any given snapshot, so per-name weight lands around 8–12% (well under the 25% cap).
7. SN0 root staking — the “TAO yield” component
Root staking (netuid 0) is fundamentally different from any subnet alpha. There is no AMM pool — TAO staked to the root validator set earns TAO-denominated yield from network emissions. Two of our sleeves (Lewis, Kidd) anchor a large fraction of capital in SN0 because the people behind those allocations view it as the conservative core position: “own TAO with a productive yield, then take risk on top.”
Position model: SN0 quantity is denominated in TAO. The synthetic price is just the live TAO/USD spot — no pool-impact, no fees, no slippage. A buy of $5,000 at TAO=$240 produces +20.833 TAO; a sell does the inverse.
Yield accrual: on every tick we compound the SN0 position by (1 + APY)elapsed/year where APY = 8% (a conservative read of recent root validator yield; can be adjusted as a setting).
Mark-to-market: SN0 notional = qty × tao_usd. So the SN0 sub-line of equity moves with TAO spot and grows ~0.022%/day from accrued yield.
Why this matters for the test: a sleeve that is 50% SN0 (Lewis) will track TAO+yield closely on its core; the alpha-or-not question only applies to the 50% that's actively rotated through subnet alphas. Same logic at 30% for Kidd.
8. The Lewis allocation (Mark Jeffrey 10x Challenge)
Lewis Smith / Mark Jeffrey publishes their portfolio openly via the jackson-video-resources/bittensor-investing-agent repo. It's a 7-line conservative allocation built on root staking with measured exposure to a small set of revenue-validating subnets. We replicate it as a fixed-weight sleeve — no screener, no scorer.
Netuid
Name
Weight
SN0
Root staking
50.0%
SN64
Chutes
16.5%
SN62
Ridges AI
11.0%
SN4
Targon
9.5%
SN75
Hippius
7.0%
SN68
Nova
3.5%
SN55
Ko / Precog
2.5%
9. The Kidd allocation (DSV concentrated)
Siam Kidd is CIO of DSV Fund — the world's first TAO-exclusive hedge fund. The 6-line concentrated portfolio reflects a tighter, more aggressive read on which subnets have demonstrated revenue or commercial pull. Less SN0, more concentrated risk per name.
Netuid
Name
Weight
SN0
Root staking
30.0%
SN64
Chutes
25.0%
SN62
Ridges AI
20.0%
SN11
Dippy AI
12.0%
SN19
Nineteen
8.0%
SN75
Hippius
5.0%
How Lewis & Kidd differ from the algo arms. Both bypass the screener and scorer entirely — these are fixed-weight reference portfolios from real public allocators. The 5%-of-equity drift threshold still applies, so they only rebalance when prices move enough to push a name off-target. The point is to give the algorithmic sleeves real human-curated benchmarks to beat.
Inception-to-date P&L by sleeve
All numbers are live, pulled from the local SQLite DB at report build time. Each sleeve started with $10,000 paper.
Equity curves
Current open positions — Alphanomics
Subnet
Qty
Avg cost (USD)
Notional
Current open positions — Liquidity baseline
Subnet
Qty
Avg cost (USD)
Notional
Current open positions — DSV picks
Subnet
Qty
Avg cost (USD)
Notional
Current open positions — Lewis (10x Challenge weights)
Subnet
Qty
Avg cost (USD)
Notional
Current open positions — Kidd (DSV concentrated)
Subnet
Qty
Avg cost (USD)
Notional
Recent trades (last 8 per sleeve)
Alphanomics
Time
Subnet
Side
Qty
Px
Liquidity
Time
Subnet
Side
Qty
Px
DSV picks
Time
Subnet
Side
Qty
Px
Lewis (10x)
Time
Subnet
Side
Qty
Px
Kidd (concentr.)
Time
Subnet
Side
Qty
Px
What we’re actually trying to learn — and how
Paper trading is cheap. The point is not “simulate making money,” it’s to generate the dataset that lets us decide whether to risk real money — and if so, on which signals.
The hypotheses being tested
#
Hypothesis
Falsified if…
H1
SMB is real on dTAO subnets in the current regime
size_inverse component has near-zero forward IC after 30 days of capture
H2
Net stake flow predicts forward returns (the Taoflow story)
alphanomics_short / _med components have IC ≈ 0 or negative
H3
Composite scoring beats raw liquidity baseline
alphanomics sleeve underperforms liquidity sleeve over a full month
H4
Subnet selection beats just owning TAO
all five sleeves underperform spot TAO total return (note Lewis/Kidd already include partial TAO exposure via SN0)
H5
Curated fund picks (DSV broad) beat algorithmic top-K (alphanomics)
DSV-20 sleeve underperforms alphanomics over a full month — would suggest the algorithm captures whatever edge the fund picks have, with no expert premium
H6
Concentrated discretionary (Kidd) beats both broad-curated (DSV-20) and conservative-discretionary (Lewis)
Kidd is dominated by either over a full month — would suggest concentration adds risk without return
H7
Active subnet selection adds value over the SN0 yield baseline
any sleeve underperforms a hypothetical 100%-SN0 position (TAO total return + 8% yield) over a full month
How we measure it
Test windows
Days 1–7: shake-out. Watch for execution bugs, weird snapshot data, edge cases. No conclusions drawn.
Days 7–14: first IC numbers. Run scripts/ic_analysis.py to compute Spearman correlation between each scoring component and forward returns. Identify components with |IC| > 0.05 and consistent sign.
Days 14–30: reweight. Drop or down-weight components with no predictive power. Add Taoflow EMA proper (we have enough history at this point).
Day 30+: regime test. Compare sleeves head-to-head over a full month containing varied TAO macro conditions. Decide: graduate to Phase 2, iterate, or kill.
Why the directive is “more trades, not fewer”
Real-money strategies want to minimize trades to save fees. This system wants to maximize trades to maximize the labeled dataset — every trade is one row of (signal at t, return by t+1). The 5%-of-equity threshold is the natural friction; we don’t artificially gate further.
Risks we’re explicitly tracking
Survivorship bias. Deregistered subnets disappear from the API. We need a separate snapshot table for failed subnets — currently a TODO.
Capacity. All findings are valid only at $10K AUM scale. Maymin is explicit that the SMB factor decays sharply with size.
Regime risk. The first 30 days might land in a strong bull or strong bear for TAO. The 30-day backtest already showed all strategies losing money in the post-Covenant window. We need multi-regime data before any go/no-go.
Free-tier API. 5 req/min throttle means a tick takes ~25s. Acceptable today; if we add new pull endpoints, recount the budget.
Single-writer SQLite. Fine at this scale; replace if we ever fan out the runner.
Bottom line. The bot is not a money machine — it’s an instrumented experiment whose output is a clean answer to “which subnet signals actually work, and at what scale?” Real-money allocation is a downstream decision that lives or dies by the data this dashboard accumulates.