Tao-Quant paper trading · live

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

Architecture: API -> Snapshot Writer -> Screener -> Scorers -> Portfolios -> Execution -> DB -> Dashboard

Two sleeves run in parallel

SleeveWhat it tradesWhy we run it
subnet_alphanomicsTop-6 subnets by composite scoreThe “real” research strategy — where we want to learn the most.
subnet_liquidityTop-6 subnets by pool depthPure baseline — proves whether scoring beats just buying the biggest.
Why two sleeves, not one? If alphanomics outperforms the dumb-liquidity baseline over the test window, the signal is real. If it can’t beat liquidity, we know the composite score is pure complexity tax. (An earlier TAO macro-reference sleeve was removed after a cash-accounting bug; we may add a TAO benchmark back later as a read-only price comparison rather than a tradeable sleeve.)

Key facts

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

Three layers: TAO reserve currency, 129 specialized subnets, one dTAO AMM pool per subnet

Why subnet prices move

How a trade actually works

Trade sequence: trader sends TAO, pool applies constant product, returns alpha tokens at new price, balance recorded on-chain

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

TermWhat it is
TAONative asset of the Bittensor network. Roughly analogous to ETH on Ethereum.
SubnetA specialized network within Bittensor that does one type of work (e.g. text inference). Each has a number (netuid) and a name.
Alpha tokenA subnet’s own token. Trades against TAO via the subnet’s AMM pool.
dTAOThe decentralized-TAO upgrade that gave each subnet its own pool and price discovery (vs the prior proportional-emission model).
TaoflowThe 30-day EMA of net stake flow into a subnet. The protocol uses this to set emissions.
ValidatorAn entity that scores miner work and earns emissions. Must stake TAO + hold subnet alpha.
MinerAn entity that performs the subnet’s actual work (inference, scraping, etc) and earns emissions.
SMB factorSmall-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

Full pipeline: 30-minute tick, pull data, screen, score both sleeves, build top-6, compare to current, trade or no-op, mark equity, write DB

1. The screener — drop dust and unhealthy subnets

Out of 129 subnets, we eliminate any that fail any of the following gates:

FilterThresholdReason
Liquidity (raw)≥ 1e11 (~100 TAO)Drops dust pools where price is meaningless.
Pool depth ceiling≤ 50,000 TAOPools above this have negligible AMM amplification on a $10K trade (Maymin/DSV bound).
Active validators≥ 8Network health — too few validators = capture risk.
Active miners≥ 10Real activity — ~50% of subnets have ≤1 miner.
1-week price change≥ −30%No falling-knife catches.
Price > 0strictSanity.

2. The alphanomics scorer (v4)

Each surviving subnet gets nine component scores in [0,1]. The composite is a weighted sum:

ComponentWeightWhat it measuresSource
size_inverse0.25Percentile rank by −mcap — small winsMaymin SMB
alphanomics_short0.151-day net stake flow percentileTaoflow proxy
alphanomics_med0.157-day net stake flow percentileTaoflow proxy
momentum_1m0.1530-day price change, clipped ±50%Maymin WML30
momentum_1w0.107-day price change, clipped ±20%Maymin WML7
emission_yield0.05Daily emission / mcapMaymin HML_EMIS
buy_sell_pressure0.0524h buy_vol / total_volOrder-flow
network_health0.05validators × miners, percentileSanity tilt
flow_acceleration0.051d flow vs 7d daily-avgCatalyst
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

4. Execution & friction

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.

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

SubnetQtyAvg cost (USD)Notional

Current open positions — Liquidity baseline

SubnetQtyAvg cost (USD)Notional

Recent trades (last 8 per sleeve)

Alphanomics

Time (UTC)SubnetSideQtyPx USD

Liquidity

Time (UTC)SubnetSideQtyPx USD

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 four hypotheses being tested

#HypothesisFalsified if…
H1SMB is real on dTAO subnets in the current regimesize_inverse component has near-zero forward IC after 30 days of capture
H2Net stake flow predicts forward returns (the Taoflow story)alphanomics_short / _med components have IC ≈ 0 or negative
H3Composite scoring beats raw liquidity baselinealphanomics sleeve underperforms liquidity sleeve over a full month
H4Subnet selection beats just owning TAOboth subnet sleeves underperform spot TAO total return

How we measure it

Measurement loop: snapshot DB feeds forward IC and equity curves, which feed the real-money go/kill decision

Test windows

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

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.