FLOWSNIPER FIELD MANUAL v1.2
LINK ESTABLISHED — CLASSIFIED — FIELD MANUAL v1.2

FlowSniper — Field Manual

FlowSniper is a retail-grade, four-mode autonomous trading suite for Bittensor's dTAO subnet ecosystem. One bot runs four parallel strategies: Sniper hunts short-term momentum, Sentinel builds and rebalances a long-hold subnet portfolio, Designate lets you mark targets manually and have the bot manage them, and Shadow mirrors trades from wallets you track. Profits from any mode can auto-compound back into the Sentinel portfolio. Every mode has its own capital budget, its own live/dry toggle, and its own prerequisite gate before real TAO moves.

This Field Manual is the complete operator reference. If something in the bot doesn't match what you read here, the bot is right — update instincts, then come back and check the docs.

What Is FlowSniper

FlowSniper is a self-hosted Python bot. You run it on a small Linux VPS, point it at a Bittensor wallet, and it operates 24/7. Every 3 minutes (default) it sweeps all 128 subnets, scores them across 16 on-chain signals, and decides what each active mode should do — enter, hold, trim, exit, rebalance, or sit on its hands.

The interface is a terminal menu called the Command Center. Numbers select menu items. B or 0 goes back. Q quits. Dashboards refresh live. Everything the bot does is logged, journaled, and inspectable.

The core promise

Dry run is the default everywhere. No mode is ever live on a fresh install. You turn live trading on per-mode, per-wallet, per-prerequisite, with typed confirmation. Until then, the bot simulates perfectly but moves zero TAO.

Table of Contents

What's New in v1.2

Highlights of changes since v1.1. Four thrusts: transparency (Selection Engine surfaces the full Sentinel decision pipeline), control (per-tier filter overrides, position cap override, RPC multi-fallback, tiered webhook alerts), visibility (SIGINT live log feed on the main menu, License Dashboard), and performance + correctness (sweep times roughly five times faster on operators using a local Subtensor node, stable license fingerprint that survives routine operations).

SIGINT — live bot logs across all modes, one keypress away

License Dashboard — full visibility into your subscription

Tiered webhook alerts — the right signal at the right time

Faster sweeps via direct RPC routing

Stable license fingerprint — updates survive routine operations

Bulk-exit improvements

Filter override preview, fixed

Selection Engine — full transparency into Sentinel's picks

Per-tier filter overrides — tune Sentinel without abandoning the tier

Per-position cap override — concentration control

RPC multi-fallback — resilience against endpoint outages

Auto-Compound rebuild — per-mode independent + threshold pooling

Critical correctness fixes

Quality-of-life

Upgrading from v1.1?

Re-run the same install command from your Armory. The installer preserves your database and config, drops in the new binaries, and restarts the service. Your existing positions, targets, blacklists, filter overrides, and config are all retained. One-time cleanup: if you have stragglers showing in [3] DESIGNATE → [6] Field Recovery, those are positions affected by the pre-v1.2 dropout bug. Recover them via [A] Recover all to restore wallet-balance tracking. After the first reconcile cycle post-upgrade, expect one log line per yield-drifted position confirming the auto-claim. See Updating FlowSniper for details.

Previous: What was new in v1.1

The v1.1 release shipped May 2026. Highlights are preserved here for historical reference.

Pre-trade preview

  • Sniper Parameters — threshold replays your last 7 days of entries before saving. Confirm or cancel.
  • Risk parameters show direction-of-change notes (“tighter stop — exits sooner”).
  • Boolean toggles show ON/OFF transition with a one-line behavior note.
  • No-op detection skips preview when value is unchanged.

Recon & Calibration

  • “What this would do today” block in [V] and [A]. Subnet counts above conviction/watch thresholds against your live universe.

Time-machine undo

  • 20-slot config history. Auto-snapshots on every Settings save, blacklist edit, budget change, applied backtest.
  • Diff preview before commit. Restoring creates its own snapshot (undo your undo).
  • Reachable via [16] ADMIN → [20] Undo recent change.

Live dashboards

  • Auto-refresh every 5s on Threat Board, Combined All Positions, What’s Happening.
  • What’s Happening: T cycles time window (recent → hour → today → week).

Discord digest cadence

  • Weekly / daily / 12h / 4h / off. Window matches the cadence automatically.
  • Off pauses without losing schedule settings.
Previous: What was new in v1.0.5

The v1.0.5 release shipped April 2026. Highlights are preserved here for historical reference.

Sentinel — Deployment that works on small wallets

  • Build multiplier (3.5× default, configurable 1.0×–5.0× via Sentinel → Risk Profile → [M]). Auto-reverts at 95% deployed.
  • 0.01τ minimum buy floor enforced across all tiers. Pending deployment bucket accumulates sub-floor budget.
  • Deployment Forecast panel and 3-line Portfolio Preview header.
  • "Held" column replaces the old "Now" column in CURRENT HOLDINGS.

Designate — DCA-add support

  • Merge-on-duplicate prompt replaces silent overwrite when marking a netuid you already hold.
  • Balance preview block on Mark Target screen.

Shadow — Honest copy semantics

  • First-sweep baseline guard for new target wallets — only changes after baseline get copied, not existing holdings.
  • Per-wallet PnL attribution. Stacked Target Wallets layout with grand-total footer.

Admin & Operations

  • New [16] ADMIN menu — backup, restore, purge by mode, CSV export.
  • Arsenal Deposit QR (auto-installs segno).
  • First Hour Onboarding Walkthrough.

Auto-Tune & Backtester

  • Background subprocess execution — the bot keeps trading while a tune runs, sessions survive SSH disconnect.
  • Default OFF for new installs. View / Apply last result via [V] and [A].
  • Live status line in Command Center while a tune is running.

Requirements

Hardware / VPS

Software

License

FlowSniper is a paid license — Operator or Vanguard. Your key is tied to your account and transferable through the Armory. Request clearance if you don't have one.

All payments are in TAO

No credit cards, no fiat, no subscriptions. Trial conversion (/upgrade) and monthly renewals (/renew) both happen in our Discord — the bot DMs you the wallet address and amount, you send TAO, you paste the txid, an admin verifies on-chain, your key extends. Your bot keeps running without reconfiguration.

Month-to-month, no refunds. You're paying TAO for 30 days of bot operation; the period runs to completion regardless. To stop using FlowSniper, simply don't renew — there's nothing to cancel.

Installation

FlowSniper ships as a single-command install. The curl one-liner from your Armory handles everything — system dependencies, Python environment, bot files, systemd service. Most operators are running within two minutes.

The install command

Find your personalized install command on your Armory download page. It looks like:

curl -fsSL <your-install-url> | bash

Run it on a fresh Ubuntu 22.04 LTS VPS with at least 8 GB RAM. The installer:

Not comfortable in a terminal?

The installer does the heavy lifting. You'll be answering a handful of prompts (key, wallet password, optional Taostats API key) — no manual Python or systemd configuration required. Most operators are up and running within the first hour.

Opening the menu after install

Anytime you want the interactive menu, SSH into your VPS and run:

cd ~/flowsniper
source venv/bin/activate
python flowsniper_menu.py

The bot itself keeps running as a systemd service regardless of whether you have the menu open — the menu is just the operator's view into what the bot is already doing.

Service control (without leaving the menu)

From the Command Center, [12] SERVICE CONTROL exposes start / stop / restart / status / tail-logs without ever touching systemctl directly. You rarely need the command line after install.

First Boot & Dry Run

On first run FlowSniper asks for the basics, stores them in the profile, and drops you at the Command Center. Every mode is enabled by default and every mode is in dry run. That is correct. Do not flip anything live yet.

The first 24 hours — what to actually do

  1. Let it run for ten sweep cycles (about 30 minutes at the default 3-min cadence). This is Sniper's prereq to even be eligible for live.
  2. While that runs, open SITREP and watch a few cycles go by. You should see subnets appearing on the Threat Board with conviction scores.
  3. If you intend to run Sentinel, set your Taostats API key now (see the Taostats section). Without it, Sentinel needs ~14 days of organic history before it activates. With it, Sentinel is ready in roughly 26 minutes.
  4. Open each mode's submenu and walk the options. Everything is safe to poke at in dry run — you cannot accidentally move TAO.
  5. Configure your budgets (see Per-Mode Budgets). The default split is 30/30/20/20 but you should match it to your strategy.
  6. Add a Discord webhook (Notifications menu) if you want alerts. Defaults turn on automatically when a webhook is added.
Watch the Dry Run Banner

The main screen shows ◆ DRY RUN — simulation only, no real trades will execute ◆ in red when no mode is live. If you see this banner, the bot is simulating. If you don't, something is live. Always check.

The Command Center

The main menu you see when you run python flowsniper_menu.py. Every mode's PnL, position count, and live/dry state is visible at a glance. Bootstrap progress appears inline while Sentinel is building history.

Status strings mean exactly what they say:

If any mode is in PENDING, a yellow banner appears. If all modes are dry, a red DRY RUN banner appears. If any mode is live, no banner is shown — real trades are happening.

The Four Modes — Overview & Comparison

Every mode is a different answer to the question "what should this bot do with my capital?" You can run any combination — all four at once, just one, or any mix. Each mode independently has its own enable flag, wallet, budget cap, and live/dry toggle.

Mode Pitch Hold time Who decides entry Risk mgmt Prereq to go live
Sniper Hunt momentum Minutes–days Bot (signal conviction) Full package 10 dry sweeps complete
Sentinel Build & hold Weeks–months Bot (universe ranking) Drift rebalance Bootstrap complete (or 14d organic)
Designate Your pick You choose You (manual mark) Full package None — enable and go
Shadow Mirror a whale Whatever target holds Another wallet Mirror-only (promote for more) ≥1 watched wallet added

How they work together

The modes aren't isolated silos. Positions can flow between them, and profits from one can fund another.

Start narrow

Even though all four modes are enabled by default, we recommend new operators pick one for the first week. Most people start with Sentinel (lowest touch, easiest to reason about) or Designate (you're in control). Sniper and Shadow reward operators who already have a feel for the network.

▌ Full exit-rule reference

For the complete trigger matrix across all four modes, parameter defaults, decision tables, and worked timeline examples, see the dedicated Mode Reference. It documents every STOP_LOSS, TRAILING_STOP, drift rebalance, and mirror trigger with the actual source-grounded defaults.

Sniper ACTIVE · MOMENTUM

Sniper is the original FlowSniper behavior: an active momentum trader that scans all 128 subnets every cycle and enters when conviction crosses threshold. It's the most hands-off of the active modes — you tune parameters once, then the bot hunts, sizes, enters, manages, and exits on its own.

What Sniper does on every sweep

  1. Pulls the latest on-chain state for every subnet.
  2. Scores each subnet across 16 signal dimensions (see Signal Architecture).
  3. Produces a composite conviction score that blends setup, trigger, and decay components.
  4. Filters by liquidity, impact cost, drawdown, regime, cooldowns, and per-hour trade limits.
  5. Opens new positions if conviction sustained across cycles. Closes positions on stop, trail, profit target, or decay.

Sniper menu

Parameters you'll care about

ParameterDefaultWhat it does
entry_score_min0.50Conviction floor to enter. Higher = more selective, fewer trades.
exit_score_max0.20Decay score at which an open position is force-closed.
stop_loss_pct15%Hard stop. If price drops this much below entry, the bot exits. No hesitation.
trailing_stop_pct8%After the position is +8% in profit, a trailing stop arms and chases price up.
take_profit_pct100%Hard take-profit. Fires regardless of trails. Ladder exits trim before this.
max_entry_impact5008%Blocks entries where a 500τ hypothetical trade would move price more than this.
trade_cooldown_seconds86400 (24h)Minimum time between two trades on the same subnet. Stops ping-ponging.
max_trades_per_hour4Rate-limit fresh entries. Overheated markets don't overheat your wallet.
daily_max_loss_tao30τRealized-loss circuit breaker for the day. Blown → no new entries until reset.

The full parameter set is wider (sixteen signal weights, conviction compositing, setup/trigger/decay subcomponents). Most operators tune the table above and leave the signal internals to Auto-Tune.

The partial exit ladder

When a Sniper position runs in profit, it doesn't all sit there hoping for more. A partial ladder trims slices at configurable profit levels — e.g. sell 25% at +40%, another 25% at +75%, leave the rest on a trailing stop. You can edit the ladder JSON directly in Parameters → Partial Ladder.

Sniper prerequisite

Before Fire Control will flip Sniper to live, it needs 10 dry-run sweep cycles to confirm the signal pipeline is functioning. This is counted automatically and shown in the main menu as ○ PENDING (4/10). You can stage Sniper as pending before that and it will auto-flip.

Sentinel PORTFOLIO · LONG HOLD

Sentinel builds and holds a subnet portfolio. It's a rules-based universe screener with value-averaged deployment, drift rebalancing, and optional auto-compound. Where Sniper hunts, Sentinel allocates.

How Sentinel thinks

  1. Screen the universe. Every subnet gets ranked by a blended score that cares about momentum, liquidity depth, reserve growth, and staking flow — a slower, structural version of Sniper's scoring.
  2. Pick the top N. Your risk tier chooses how many holdings to target (see table below).
  3. Value-average in. Instead of dumping your entire Sentinel budget in one cycle, Sentinel ramps deployment over a tier-default window (Conservative 10d, Balanced 5d, Aggressive 3d).
  4. Rebalance by drift. When a holding's weight drifts far enough above or below its target, Sentinel trims winners or adds to laggards.
  5. Compound if enabled. Realized profit from trims routes into a compound pool and gets redeployed on the next DCA step.

Risk tiers

TierTarget holdingsRamp windowDrift toleranceSuited for
Conservative10–1510 daysTighterCapital preservation, lower vol
Balanced6–105 daysModerateDefault choice for most operators
Aggressive5–83 daysWiderConviction concentration, higher vol

Universe dropouts — what happens when a held subnet falls out

If a subnet you hold via Sentinel falls out of the qualified universe (its quality screen starts failing), Sentinel automatically unwinds the position over time. The unwind rate depends on why it dropped out, modeled on industry practice for fund holdings.

ReasonSpeedConservativeBalancedAggressive
pool — pool size below tier minimumFast30 days15 days7 days
dereg_risk — subnet flagged for likely deregistrationFast30 days15 days7 days
mcap_min — market cap too small for tierSlow60 days30 days14 days
mcap_ratio — mcap to pool ratio out of bandSlow60 days30 days14 days
pool_cv — pool volatility too highSlow60 days30 days14 days
flow_14d / flow_7d — net outflow trendSlow60 days30 days14 days
age — subnet too young for tierSlow60 days30 days14 days
rank — pushed out by stronger candidatesSlow60 days30 days14 days

Fast unwind applies to liquidity-driven dropouts. Industry index funds typically remove on liquidity grounds within 5–10 trading days — the principle being that thin liquidity means market impact gets worse the longer you wait.

Slow unwind applies to quality/valuation dropouts. Active fund practice is 1–3 month unwind on outflow-driven removals — the position can recover, and rushing the exit costs more than waiting.

Recovery handling

If a dropped-out subnet returns to the qualified universe before unwind completes, the trim halts immediately and normal Sentinel mechanics resume (drift rebalance + DCA add-backs). You don't get whipsawed in and out.

Operator overrides

You can override the slow-unwind in two ways:

  • Promote to Designate. Designate → Promote Sentinel moves the position out of Sentinel's domain and into Designate's risk profile (stop-loss, trailing stop, take-profit). Halts the unwind. The Promote Sentinel screen shows a Status column flagging which positions are currently being unwound, so you can prioritize.
  • Bulk exit via [E] in Sentinel Portfolio Preview. One-shot exits all non-target Sentinel positions immediately, no slow unwind.
Discord notifications

Toggle [12] Sentinel dropout/recovery in Notifications to get pinged when a dropout starts (with the reason and unwind window) and when one recovers. Defaults off; flip on once your webhook is configured. Each trim execution also fires the standard exit notification with the dropout reason in the message text.

Sentinel menu

The bootstrap question

Sentinel needs history to rank subnets. Two paths:

If you're planning to run Sentinel seriously, get the Taostats key. See the Taostats section.

Portfolio Preview

Before you flip Sentinel live, go to Sentinel → Portfolio Preview. It shows the portfolio Sentinel would build at your current risk tier, with target weights, projected DCA pace, and the ranked rationale for each pick. This is where you sanity-check before committing capital.

As of v1.0.5, the Portfolio Preview also shows a Deployment Forecast block — projected time to first buy, time to open all target positions, and time to reach full allocation based on your current wallet size, tier, and ramp configuration. See the next section for what those numbers mean.

Deployment pacing and wallet sizing

Sentinel does not open all of its target positions instantly. It uses value-averaging with a deployment ramp and a weekly budget cap, which deliberately spreads spending over days. This prevents buying at local tops and gives the portfolio time to respond to market moves.

Sentinel operates in two phases:

Four things control how fast Sentinel builds the portfolio:

How Sentinel handles the 0.01τ floor

The daily budget (weekly cap ÷ 7, with build-phase multiplier applied) determines how Sentinel spends each day. There are three possible modes, chosen automatically based on budget size:

With the default 3.5× build multiplier, most retail wallets (≥1τ) run in parallel or single-shot mode during build. Only very small wallets (~0.5τ on Balanced) accumulate — and even then, buys fire every 1-2 days during build instead of every 2-3 days without the multiplier.

What this looks like in practice

For a 0.5τ wallet on Balanced tier (8 holdings, 40% Sentinel budget, 5-day ramp, default 3.5× multiplier):

How much TAO should I fund?

Build-phase duration is governed by tier weekly cap × build multiplier, not by wallet size. Larger wallets just have bigger per-buy sizes. Reference points on Balanced tier with 8 holdings, 40% Sentinel budget, default 3.5× multiplier:

Wallet fundedSentinel budgetBuild daily rateBuild modePer-position at full
0.5τ0.2τ~0.020τ/daySingle-shot (1 buy/day)~0.025τ
0.8τ~0.080τ/dayParallel (multiple/day)~0.1τ
10τ~0.40τ/dayParallel~0.5τ
50τ+20τ+~2.0τ/dayParallel~2.5τ+

Approximate build-phase durations at default 3.5× multiplier:

If you want a different build pace, three tuning options:

The build multiplier affects only the initial deployment. Once the portfolio reaches 95% deployed, Sentinel automatically reverts to the tier cap for rebalancing — so you're not signing up for permanently aggressive spending.

What the forecast numbers mean

The Deployment Forecast block in Portfolio Preview shows your current phase (BUILD or REBALANCE), deployed percentage, and the effective multiplier in use. Timeline projections (first buy, all positions opened, full deployment) reflect current-phase pacing. If you see "Phase: BUILD (42% deployed, 3.5× boost active)", Sentinel is deploying at the boosted pace and will automatically step down when the portfolio reaches 95%. Rebalance-phase projections don't show "days to full" since the portfolio is already built — it just shows ongoing drift maintenance.

Fortify

Sentinel → Fortify is the portfolio review screen: current holdings, individual PnL, drift from target, time held, and Sentinel's own health checks. Use this as your weekly read.

Sentinel prerequisite

Before Fire Control will flip Sentinel to live, either bootstrap must complete (if you have a Taostats key) or you need 14+ days of organic history. Bootstrap status shows inline on the main Command Center screen while it runs.

Designate MANUAL · BOT-MANAGED

Designate is the human-in-the-loop mode. You decide what to buy. The bot decides when to sell. It's perfect for operators who want control over entry selection but don't want to sit at the terminal babysitting exits.

Typical flow

  1. You read something on X, hear a Discord tip, or just have a feeling about SN-37.
  2. Open Designate → Mark Target. Enter SN number and size.
  3. The bot enters on the next sweep, records the entry, and wraps the position in the full risk package (stop-loss, trailing stop, partials, RIPCORD).
  4. Exit fires automatically when any risk rule triggers. Or you hit Designate → Neutralize to force-close whenever.

Designate menu

Per-position parameters

Unlike Sniper (where settings apply to all positions), Designate lets you tune stops and trails per position. You can hold SN-A on a tight 8% stop and SN-B on a looser 20% stop at the same time. Edit under Adjust Parameters.

Adding to an existing position

If you Mark Target on a subnet you already hold in Designate, the bot detects the duplicate and prompts:

SN24 is already a Designate target.
Current size: 0.025τ  ·  Entry: 0.0312

[A]dd to existing position (merge TAO)
[C]ancel

Selecting Add merges the new TAO into the existing position instead of overwriting it. The bot treats the add as a pending deployment that fires on the next sweep using the same entry logic as a fresh mark. Your per-position stop-loss, trailing stop, and partial exits carry over unchanged — only the sizing updates.

This is the right tool for averaging down into a position that's drifted below entry, scaling into conviction over multiple days, or topping up after a partial exit. Designate treats the averaged position as one lot for PnL accounting.

Old v1.0.4 behavior was overwrite

Before v1.0.5, marking a duplicate netuid silently overwrote the existing state dict — which could trigger the stop-loss on the existing position if the new entry mark was below stop threshold. The merge-on-duplicate prompt in v1.0.5 makes this operation explicit and safe.

Field Recovery

If you've ever staked to a subnet manually and then forgot about the alpha you're holding, this is the recover-from-chain button. It queries your wallet, finds any stray alpha positions, and gives you the option to adopt them into Designate's management. Useful after wallet migrations.

No prereq — Designate is always eligible for live

Because Designate only acts on your explicit orders, there's no history-building or dry-run requirement. It's ready to flip live the moment you enable the mode. Still: flip it live deliberately, and still verify the typed YES confirmation.

Shadow COPY-TRADE · MIRROR

Shadow mirrors trades from other wallets. You paste up to 5 wallet addresses, size your trades as fixed-τ or proportional-to-target, and Shadow enters when they enter, exits when they exit. It's a pure copy mode — no risk management, no signals, no opinions. If you want risk rules too, promote the position to Designate.

What Shadow actually watches

Every sweep, Shadow diffs each watched wallet's alpha holdings against the previous snapshot. A holding that jumped is a likely entry; a holding that dropped is a likely exit. But passive stake emissions drift alpha upward over time without the target ever trading — Shadow filters these using shadow_trade_delta_min (default 2%). Only changes above that threshold are treated as real trades.

Baseline on add — what Shadow does NOT copy

When you add a new target wallet, Shadow takes a snapshot of its existing holdings on the first sweep and treats those as the baseline. It does not mirror what the wallet already holds — only changes after that baseline get copied.

So if you add a whale who's sitting on 50 positions, you don't suddenly copy into 50 positions at current prices. You just start watching; when they next enter or exit something, Shadow follows. This is deliberate — copying someone into a portfolio they accumulated over months at better entries would be expensive and usually unprofitable.

The baseline is persisted to shadow_wallet_snapshots in your database, so removing a target and re-adding it will re-anchor the baseline at the current state — you won't backfill missed trades.

If you want their current positions

Shadow doesn't copy existing holdings by design. If you do want to replicate a target's current book (knowing what you're buying in at), do it manually via Designate → Mark Target for each subnet you want to hold. That way your entries are intentional and each position gets proper risk management.

Per-wallet PnL attribution

The Shadow → Target Wallets screen shows a per-wallet PnL breakdown:

Use this to rank your targets. If one whale produces consistent positive realized PnL and another drags, rotate. Attribution is tracked by stamping the source wallet's SS58 into each exit journal entry.

Attribution starts at v1.0.5

Per-wallet PnL tracking began in v1.0.5. Trades executed under earlier versions won't have source attribution and will show as uncategorized in per-wallet totals. The grand total across wallets remains accurate.

Shadow menu

Sizing models

There's also shadow_max_position_tao as a hard cap per subnet regardless of sizing math, so a whale can't accidentally pull you into an oversized position.

Promote to Designate

Shadow positions are naked mirrors — if the target never exits, neither do you. If you see a Shadow position in profit and want to protect it with stops, go to Designate → Promote Shadow (appears when Shadow has open positions). The mirror stays intact — the target's exit still triggers yours — but Designate's risk rules now also apply. Whichever triggers first wins.

Shadow prerequisite

Before Fire Control will flip Shadow to live, you need at least one watched wallet configured. Add wallets first via Shadow → Add Target, then Fire Control will accept the live toggle.

Shadow is not a get-rich button

The wallet you copy has no obligation to be good. They can have an edge today and blow up tomorrow. Pick targets based on a real read of their on-chain history, not vibes from a Discord screenshot. And always run Shadow with a modest budget first.

Fire Control — The Live-Trading Gate

Fire Control is the master switch. Every mode's dry→live flip happens here, under a typed YES confirmation, with per-mode prerequisite checks. This is the single screen that separates simulation from real TAO movement.

The three states

Prerequisites by mode

ModePrereqTypical time to clear
Sniper10 dry-run sweeps complete~30 min at default 3-min cadence
SentinelBootstrap complete OR 14+ days organic history~26 min (Taostats) or 14 days (organic)
DesignateNoneInstant
Shadow≥1 watched wallet configuredHowever long it takes to paste an SS58

Flipping a mode live

  1. Open Fire Control from the main menu ([5]).
  2. Pick the mode number (1=Sniper, 2=Sentinel, 3=Designate, 4=Shadow).
  3. Read the warning. Every flip-to-live warns about real-TAO risk.
  4. If prereqs aren't met, you get [S]tage PENDING or [C]ancel. If they are met, you're prompted to type YES in all caps.
  5. On confirmation, the service stops, profile updates, service restarts. Next sweep trades live.

Bulk controls

The typed YES is not a formality

Fire Control will not accept lowercase yes, won't accept y, won't accept the Enter key alone. It wants the string YES exactly. That friction is intentional — it prevents reflex keystrokes from moving money.

Per-Mode Capital Budgets

Every mode has a capital cap. When a mode is at or above its cap, new entries don't fire until existing positions close and free up room. Existing positions are never grandfathered to another mode — caps are forward-looking only.

Two budget formats

Each mode switches between percent and absolute independently. Both values are stored, so flipping modes preserves your settings.

Default split

ModeDefault %Thinking
Sniper30%Active mode, frequent turnover, needs room to rotate.
Sentinel30%Long-hold portfolio, needs meaningful capital to build a real position.
Designate20%Manual-only; assumes you don't designate constantly.
Shadow20%Copy-trading is higher-variance; keep the budget modest.
Reserve (unallocated)10% — covers gas, slippage buffer, entry headroom.

These add to 110% intentionally — the percentages are caps, not reservations. Modes compete for the same wallet but each can't go above its ceiling. You almost never hit all caps simultaneously.

Where to edit

Every mode's menu has a Budget item (always the last one) that opens the shared budget allocation screen. All four modes are editable from one screen regardless of which submenu you entered from.

Auto-Compound Engine

Realized profits don't have to sit in your wallet. FlowSniper can route them back into Sentinel's compound pool, which then spends that TAO buying top-ranked subnets on the next DCA step. Two independent toggles let you control this.

Sentinel's own compound

Sentinel → Auto-Compound. When Sentinel trims a position above target weight and realizes profit, a configurable percentage (sentinel_compound_pct) of that realized amount moves into the compound pool. On the next DCA step, Sentinel spends the pool on current-top-ranked subnets.

Cross-mode compound

Sentinel → Auto-Compound → Cross-mode (or via Global Parameters). Routes realized profit from Sniper and Designate exits into Sentinel's compound pool. Same percentage mechanic: you pick how much of Sniper/Designate profit to route.

The end-to-end flow looks like this:

Sniper exit   ┐
Designate exit ├──► (× cross_mode_compound_pct) ──► Sentinel compound pool
Sentinel trim ──► (× sentinel_compound_pct)     ──► Sentinel compound pool
                                                                 │
                                                                 ▼
                                          Spent on next Sentinel DCA step
                                          Buys top-ranked subnets

Why this matters

Without compounding, a successful Sniper exit just adds τ to your free balance — dead capital until you decide what to do with it. With compounding on, that same exit grows your long-hold position automatically. Sniper feeds Sentinel; Sentinel grows the base; the base funds future Sniper entries. That's the flywheel.

Compounding requires Sentinel to be enabled

If Sentinel is disabled entirely (via the Modes menu), the compound pool has nowhere to spend, so routing is effectively a no-op. Enable Sentinel — it can stay in dry run while the pool accumulates — for compounding to actually do work.

Taostats API Integration

A free Taostats API key unlocks Sentinel's 30-day history backfill. This is the single highest-impact optional integration for operators who care about Sentinel — without it, Sentinel can't rank subnets until organic sweep history accumulates over two weeks.

Getting a key

  1. Sign up at taostats.io/pro.
  2. The free tier is enough — FlowSniper's bootstrap respects the 5 calls/min rate limit.
  3. Your key format looks like: tao-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx.

Setting the key in FlowSniper

  1. From the Command Center: [14/15] Global Parameters → Taostats API.
  2. Pick [1] Set API key and paste (input is hidden, like a password prompt).
  3. The service auto-restarts. Bootstrap starts on the next scan cycle.
  4. Progress appears on the main Command Center screen: ▸ Sentinel bootstrap: 47% (60/128 subnets).
  5. ~26 minutes later: bootstrap: complete. Sentinel is now eligible for live.

If bootstrap fails

Failures are usually API quota or network blips. The Taostats menu exposes [3] Reset bootstrap (retry backfill) to requeue on the next restart. Also shown inline on the main screen when status is failed.

The key is masked after saving

The menu shows your key as tao-abcd…********…wxyz so you can verify the right one is saved without exposing it to over-shoulder viewers. The full key is stored in the profile database only.

Discord Notifications

FlowSniper ships granular per-event Discord alerts. Set a webhook once; toggle each event type on or off. Defaults are all OFF until you add a valid webhook — at that point sensible defaults flip ON automatically so you don't have to toggle 10 things manually.

Event types

Setting it up

  1. Get the webhook URL: Discord server → channel settings → Integrations → Webhooks → New Webhook → Copy URL.
  2. FlowSniper: Command Center → [11] NOTIFICATIONS → Set webhook.
  3. Paste. Test. The bot sends a test message; if it shows up in Discord, you're done.
  4. Toggle individual event types in the same menu.

SITREP — Live Dashboard

SITREP is the wide, live-updating dashboard that shows every mode simultaneously. Each mode gets its own panel with current positions, unrealized PnL, realized PnL, latest sweep results, and any warnings. The screen refreshes every 5 seconds while open.

Use SITREP when you want a single screen to stare at during active trading hours. Use the individual mode menus when you want to act on a specific mode.

Threat Board — Live Signal Scores

Every subnet's current conviction score, ranked. The Threat Board tells you what could happen next — which subnets are closest to triggering Sniper entries, which are in decay, which are quiet. It's the same data the scoring engine sees. Columns include conviction, setup score, trigger score, decay score, price momentum, and flow.

Reading it: the top of the board is where Sniper might act. The bottom is where Sniper might exit. Subnets toward the middle are sitting idle.

What's Happening — Recent Activity

A chronological timeline of everything the bot did recently — across all four modes. Each entry shows timestamp, mode, event type (entry/exit/trim/skip/alert), subnet, size, and a one-line reason. This is your single-pane audit log.

Combined View — All Modes At Once

The Combined menu crosses all four modes in a single dataset:

Modes Menu — Enable & Disable

The Modes menu is where you turn entire modes on and off. This is separate from Fire Control — Modes controls whether a mode exists in your UI at all, Fire Control controls whether an existing mode is simulating or live-trading.

Disabling a mode:

Use Modes if, for example, you never want to see Shadow because you don't copy-trade. Disable it once and the UI cleans up.

Arsenal — Wallet Management

Each mode can use the same wallet, or its own wallet. Arsenal is where you configure which wallet each mode uses.

The wallet model

Why separate wallets

Most operators start with one wallet for everything, then split later if their capital warrants it.

Validator hotkey

FlowSniper uses a default validator hotkey for staking operations. You can override it in Arsenal if you prefer delegating to a specific validator. This setting is global.

Global Parameters

Settings that apply across all modes. This menu is where the "infrastructure" of the bot lives.

Chain endpoints

The bot talks to a Bittensor RPC node to read chain state. Two providers are built in:

Whichever you pick as primary, the other becomes automatic failover if the primary is unreachable. Switch in Global Parameters → Subtensor.

Scan cadence

The default poll interval is 300 seconds (5 minutes) but adaptive polling means the effective rate varies:

Override any of these in Global Parameters.

Other global settings

Service Control

From the Command Center, [12] Service Control manages the systemd service without leaving the menu. Options:

Auto-Tune

Auto-Tune periodically re-fits Sniper's signal weights using your own trade history, searches for better parameter combinations against your recent data, and stages the proposed updates for review before committing.

v1.0.5: runs in the background, off by default

Auto-Tune now launches as a detached subprocess — your bot keeps trading, scanning, and managing positions while it runs. Earlier versions blocked the main loop for the duration of the tune (sometimes hours on populated databases). The trade-off: the auto-tune step is opt-in by default for new installs since heavy backtests can stress small VPSes. Enable from Recon & Calibration → [1] Toggle ON/OFF after you've built up trade history worth tuning against.

Default schedule when enabled: every 168 hours (one week). Configurable in Global Parameters or via Recon & Calibration → [2] Set frequency. When it runs, the bot:

  1. Collects the last N closed trades and their entry signal snapshots.
  2. Runs a grid/gradient search over signal weights, thresholds, and stop parameters.
  3. Computes expected P&L under each candidate configuration.
  4. Picks the best configuration by risk-adjusted return.
  5. Stages the new values and shows them to you via the menu. You approve before they go live.

Menu surface

From the Command Center, navigate to [1] SNIPER → [9] Recon & Calibration. Available actions:

Background tune monitoring

When you fire a long-running action, the menu prints a banner with the PID, log path, and exact tail -f / kill commands so you can monitor progress from another shell. While a tune is mid-flight, the Command Center main screen renders a status line below the position summary:

>> Auto-tune: running backtest (slow step)  ·  elapsed 47m

The line only appears when a tune is actually running and disappears once it completes. Phases progress through auditing performanceproposing changesrunning backtestvalidatingapplying. Backtest is the long phase — expect 5–60+ minutes depending on your trade history depth.

Lock files and concurrency

Auto-tune uses /tmp/flowsniper-tune.lock to prevent overlapping runs. Backtests use /tmp/flowsniper-backtest.lock. Both are removed automatically on normal exit. If a tune crashes hard (e.g. SIGKILL or out-of-memory), the lock may stick — clean up with rm /tmp/flowsniper-tune.lock and the next scheduled tune will fire normally.

Backtester

The built-in backtester replays your recent sweep history against the current signal/threshold configuration and reports how it would have performed. Live from Recon & Calibration → [8] Full or [9] Quick. Useful before approving an Auto-Tune proposal, or any time you manually change Sniper parameters. Like Auto-Tune, the backtester runs as a detached subprocess — fire it and walk away.

Backtest results write to backtest_results.json in your install directory. The Recon & Calibration menu surfaces [V] to view the most recent report and [A] to apply its winning params without re-running the search.

Signal Architecture

Every scan cycle, each subnet is scored across 16 signal dimensions. Weights are editable from Sniper Parameters (and auto-tuneable). Core families:

Price & momentum

Capital flow

Technical indicators

Volume & liquidity

Composite scores

Individual dimensions feed into three composite scores:

These three compose into the conviction metric which drives entry and exit decisions.

Monitoring Your Bot

Three tools for ongoing oversight:

For multi-day trends, use the Combined → Combined Analytics view. It computes win rate, payoff, max drawdown, Sharpe, and per-signal correlation across all modes.

Updating FlowSniper

Updates are simple: re-run the same install command from your Armory. The installer detects an existing install, pulls the latest version, preserves your database and config, and restarts the service. Takes under a minute.

# Re-run your install command (the same one you used originally).
# It's on your Armory download page.
curl -fsSL <your-install-url> | bash

What the installer does on an update:

Your profile, wallet config, trade history, open positions, Sentinel bootstrap state — all preserved. You do not need to stop the service, back up manually, or re-enter your settings.

Update banner

The Command Center shows an update banner when a newer version is detected upstream. That's your cue to re-run the install command. You can also check your current version in the header of the main menu.

If an update ever goes wrong

The installer keeps your last database backup in the working directory (named flowsniper.db.backup.YYYYMMDD). If something breaks after an update, stop the service, restore the backup, and reach out on Discord — we'll help you roll back cleanly.

Key Management & The Armory

Your FlowSniper license is tied to your account. Keys are transferable through the Armory — the secondary market for existing license holders. Lifetime keys (Vanguard tier) are extremely rare and only available via exclusive drops and the Armory.

To transfer, sell, or retrieve a key, join the Discord and DM FlowSniper Actual directly — all Armory transactions are manually verified.

Troubleshooting

"bittensor not installed"

pip install -U bittensor requests in your virtual environment. If you're not in the venv, activate it first.

The bot connects to chain but no signals appear

Normal for the first few sweeps while history builds. Wait 10–15 minutes. If still empty after an hour, check Service Control → Tail logs for RPC errors and consider switching subtensor endpoint in Global Parameters.

Sentinel bootstrap stuck or failed

Most often a Taostats rate limit or transient API error. Open Global Parameters → Taostats API → [3] Reset bootstrap and restart the service. If it fails repeatedly, check your key is active at taostats.io/pro.

Fire Control won't let me flip Sniper live

Check the prerequisite message. It's almost always "need more dry-run sweeps" — just wait. Or stage it as PENDING and the bot will flip it for you when conditions clear.

A Shadow position never appeared even though my target traded

Most common cause: the target's holding change was below shadow_trade_delta_min (default 2%) — Shadow treated it as passive emission drift, not a real trade. If you're tracking a target with very small trade sizes, lower the threshold in Shadow Sizing.

My Designate position got force-closed and I don't know why

Designate → Engagement Log shows the exit reason for every closed position. Usually it's trailing-stop trigger or the subnet hit your configured take-profit. Adjust parameters for future entries via Designate → Adjust Parameters.

The bot is running but the Command Center shows "offline"

The Command Center checks systemd status. If the service is running manually (not as systemd), the status will look offline even though the bot is working. Prefer running as a systemd service for accurate status reads.

How to Get Help

If something isn't working, here's where to go — in roughly the order you should try.

1. Check the log

Start here for almost any "bot isn't doing what I expect" issue. From the Command Center: SERVICE CONTROL → View Logs. Or from the shell: journalctl -u flowsniper -n 200 --no-pager. The log shows exactly what Sniper / Sentinel / Designate / Shadow did on every sweep, including the reasons for skipping a trade or failing to find a signal. Most "why didn't this do X?" questions are answered in the last 50 lines.

2. Check Troubleshooting above

The Troubleshooting section covers the most common issues: chain connection, bootstrap stall, Sentinel deployment, Shadow mirror detection, Fire Control prerequisites. Skim those first — your issue is likely there.

3. Discord — the best path for live support

4. Key & license issues

For anything license-related — "my key deactivated," "I need to rebind to a new VPS," "I want to sell my key" — use the Discord slash commands rather than DMing:

All payments are in TAO. No fiat, no credit cards. You must be in our Discord to renew or upgrade — the renewal flow doesn't exist outside of it.

5. Bug reports

If you've found something that looks like an actual bug — wrong number, unexpected crash, data that doesn't reconcile — post in #support with:

This format gets a fast, useful answer. "My bot is broken" does not.

What we won't help with

Trade recommendations ("should I buy SN-X?"), portfolio critique, or strategy coaching. FlowSniper is software, not advisory. The tool is designed to execute your strategy, not pick one for you. For trade ideas, talk to other operators in #operator-chat — they have opinions but you'll get the same answer from any of them: do your own research.

How FlowSniper Protects Your Capital

The whole suite is built around the premise that losses happen, and the bot must survive them. Protection is layered.

  1. Dry run by default. No mode is ever live on install. You opt in explicitly, per-mode, with typed confirmation, after prereqs clear.
  2. Per-mode capital caps. A runaway Sniper can't bleed your Sentinel holdings. Each mode's cap is hard.
  3. Position sizing from conviction. Weaker signals buy smaller positions. The bot never goes all-in on a single subnet.
  4. Hard stop-loss. Every position has an exit price set at entry. Breach = exit. Every time.
  5. Trailing stop. Winners are protected; exits chase price up, never down.
  6. Partial profit ladder. Profits lock in automatically at configurable thresholds. You never round-trip a winner to zero.
  7. RIPCORD. Decay score breach triggers unconditional exit — no argument, no hesitation.
  8. Daily loss ceiling. Hit the daily-loss cap, Sniper freezes new entries until the day rolls over.
  9. Per-hour trade limits. Overheated markets can't cascade your wallet.
  10. Cooldowns. Same-subnet re-entry is gated by trade_cooldown_seconds. No ping-ponging.

These layers are independent. You don't need all of them to trigger for capital to be safe — any one of them can stop a bad outcome.

Glossary

AlphaSubnet-specific token issued when you stake TAO into a subnet's liquidity pool.
ConvictionComposite score blending setup, trigger, and decay signals. Drives entry/exit decisions.
DCADollar-Cost-Average. Sentinel's value-averaging deployment method.
DriftDistance between a Sentinel holding's current weight and its target weight.
dTAODynamic TAO — Bittensor's per-subnet tokenomics model.
HotkeyWallet identity used for staking and trading ops.
Impact costPrice movement caused by a hypothetical trade size. Used for liquidity filtering.
NetuidSubnet ID on Bittensor. Range 0–127 (128 total).
RIPCORDUnconditional exit triggered by decay-score breach.
RPCRemote Procedure Call — how the bot reads chain state.
SubtensorBittensor's blockchain. The bot reads it via RPC nodes.
Sweep / cycleOne full scan of all 128 subnets. Default every 3–5 min.
TaostatsThird-party Bittensor analytics site. Free API key enables Sentinel bootstrap.
UniverseSentinel's ranked pool of subnets. Top-N become holdings at your risk tier.

VPS Specifications

FlowSniper has one supported configuration. There is no min/recommended split — the values below are what the installer enforces and what the bot needs to run cleanly. Anything smaller will be refused at install time.

ResourceRequired
vCPU2
RAM8 GB
Disk20 GB SSD
NetworkStable uplink, < 100 ms to EU / US chain endpoints
OSUbuntu 22.04 LTS (Python 3.10)
Monthly cost~$15–25 depending on provider
Why these specs and not less?

The bot runs four trading modes concurrently (Sniper, Sentinel, Designate, Shadow), each holding chain state, signal histories, and validator weight matrices in memory. Once warmed up the working set is around 5 GB. Smaller VPSes spill into swap, which slows every chain query by 100× or more — cycle times balloon from 5 minutes to 60+ minutes, and trading decisions get made on hour-old data.

Ubuntu 22.04 is required because FlowSniper ships compiled bytecode locked to Python 3.10. Ubuntu 24.04 ships Python 3.12, on which the bot fails to start. The installer enforces this.

Technical floor: 4 GB

The installer's hard floor is 4 GB; below that it refuses to proceed. Between 4 GB and 8 GB the installer prints a yellow warning and requires explicit confirmation before continuing. The bot will run on 4–8 GB but is not guaranteed to stay performant — once all four modes warm up you may see swap thrashing and slower cycles. Mitigations on smaller VPSes: run only Sniper alone (Sentinel and Designate are the heavy modes), or set up a daily systemd timer to restart the bot. We recommend 8 GB if you plan to run all four modes long-term.

Common providers that work well at this size: Hetzner Cloud (CX22 or larger), Digital Ocean (Basic 8 GB), Vultr (Cloud Compute 8 GB), Contabo (VPS S or larger), OVH. Avoid shared hosting — you need systemd and a persistent shell.

Disclaimer & Terms of Use

FlowSniper is experimental software. Cryptocurrency trading involves substantial risk of loss. You can lose some or all of your investment. Past performance does not guarantee future results.

FlowSniper is not a financial advisor and none of its signals, rankings, or executions constitute financial advice. All data is provided for informational purposes only. You are solely responsible for all trading outcomes resulting from use of the bot.

FlowSniper operates autonomously and will execute trades without human confirmation once live mode is enabled for a given mode. Operators are responsible for reviewing dry-run behavior, understanding the parameter configuration, and verifying wallet security before enabling any live mode.

By using FlowSniper or any information provided through this manual, you acknowledge and accept these risks. Always do your own research.

↑ BACK TO TOP