Bot Guide

How the Bot Works

Everything you need to know about how signals are generated, scored by our ML pipeline, and turned into real or paper trades — clearly explained.

1

End-to-End Bot Flow

Here's the complete path from a raw on-chain event to an open trade position:

1

Signal Sources

Two independent engines watch Solana in real time. TokenPricePoller watches price & volume for thousands of tokens via Jupiter + DexScreener. WalletAlertPoller monitors whale and shark wallets directly on-chain via Helius RPC.

2

ML Scoring Pipeline 4 layers

Every raw candidate passes through four scoring layers before it can be emitted as an alert. Each layer adjusts the signal's confidence_score.

L1: Initial score (formula) L2: Historical reinforcement L3: Thompson Sampling Bandit L4: Execution policy score
3

Emit Gate

Three minimum score thresholds must all pass. Signals that don't clear all three are silently dropped — they never reach your bot.

confidence ≥ 50 execution_confidence ≥ 58 token_quality ≥ 62
4

Your Bot Worker

Each Pro user gets an isolated bot worker process. It polls emitted alerts every ~8 seconds and applies your personal config — strategy, direction mode, allowed signal types, timeframe, confidence gates. Signals that don't match your config are skipped.

5

Trade Entry

Signals that pass all gates open a new position. In paper mode, this is a simulated position in your personal state file with no real money. In live mode, a real Jupiter swap is executed from your bot wallet via Azure Key Vault.

6

Exit & P&L Feedback

Positions are monitored on each tick for stoploss, take-profit, max hold time, or manual close. When a position closes, the realised P&L is fed back into the ML scoring pipeline — future signals of the same type get adjusted accordingly.

Stoploss hit Take profit hit Max hold time Manual close

Paper vs Live Mode

📄 Paper Mode (default)

  • → Simulated positions, no real money at risk
  • → Stoploss, take-profit, and max hold enforced in simulation
  • → Full P&L tracking with identical logic to live mode
  • → Best for testing strategies before going live

⚡ Live Mode

  • → Real swaps executed via Jupiter on your bot wallet
  • → Wallet keys stored securely in Azure Key Vault (RBAC-gated)
  • → Higher confidence gate required (configurable)
  • → Accountability gate must pass before live trades open

Risk Controls

Control What it does
Stoploss %Position is closed if price drops this % below entry
Take Profit %Position is closed if price rises this % above entry
Max Open TradesBot won't open new positions if this count is reached
Daily Loss CapNo new live trades if daily realised losses exceed this USD amount
Daily Trade CapLimits how many live trades can open in a 24h window
Max Hold Hours (paper)Paper positions auto-close after this many hours if no SL/TP hit
Hold ToggleLock an individual position — bot won't auto-close it until you remove the hold
2

Alert Flow & Strategies

Where Signals Come From

Two completely independent engines run in parallel. They use different external data sources and produce different signal types.

TokenPricePoller

Jupiter APIs + DexScreener

Builds a dynamic watchlist of tokens from three sources, then polls DexScreener for price and volume data:

  • 🔵 Jupiter Verified — registry of verified tokens with holder count + organic score filter
  • 🔵 Jupiter Trending — real-time trending tokens by volume momentum
  • 🔵 Pool Liquidity — tokens from our tracked liquidity pools with TVL ≥ $200k
price_surge Price up ≥ 3–12% + volume confirmation
price_drop Price down ≥ threshold — short signal
volume_spike 24h volume ≥ 1.8×–4× recent average

WalletAlertPoller

Helius RPC (on-chain only)

Monitors a curated list of whale and shark wallets directly on-chain. No third-party price APIs — pure transaction parsing via Helius RPC:

  • 🟢 getSignaturesForAddress — fetches new tx signatures for each tracked wallet
  • 🟢 getTransaction — parses swap program IDs (Raydium, Orca, Meteora, Jupiter…)
  • 🟢 Reputation tiers — whale, shark, smart money (affects base confidence)
smart_buy Tracked wallet executed an inbound swap
smart_sell Tracked wallet executed an outbound swap

All 5 Signal Types at a Glance

Signal Direction Source Best for
price_surge Long ↑ TokenPricePoller Breakout momentum plays
price_drop Short ↓ TokenPricePoller Shorting overextended tokens
volume_spike Long ↑ TokenPricePoller Early trend detection before price moves
smart_buy Long ↑ WalletAlertPoller Following high-conviction whale accumulation
smart_sell Short ↓ WalletAlertPoller Exit or short when smart money distributes

ML Scoring Pipeline

Before any signal is emitted, it passes through 4 scoring layers. Each layer reads the current confidence_score, adjusts it, and writes it back. The pipeline is fully transparent — every adjustment is logged on the alert payload.

L1

Initial Confidence Score — Formula-Based

A deterministic score is set based on signal strength, liquidity, and volume ratios. This gives every signal a starting score before any historical data is applied.

Token signals: base 42 + signal ratio (up to +30) + log-scaled liquidity (up to +12) + log-scaled volume (up to +12)
Wallet signals: seeded from wallet tier + trade size in USD
L2

Historical Reinforcement — Learn from Past Outcomes

If there are at least 15 historical outcomes for this signal type, the score is nudged up or down based on how well past signals of the same type have actually performed.

delta = ((precision_pct − 50) × 0.18) + (median_move_pct × 0.35)
clamped to ±max_delta; resolved by signal type → direction → global

👆 If a signal type like smart_buy has 80% precision on recent fills, it gets a meaningful upward nudge. If it has been underperforming, it gets penalised.

L3

Contextual Thompson Sampling Bandit Core ML

The main ML layer. Uses a multi-armed bandit with a Beta distribution posterior per context bucket. Context is built from 8 dimensions: signal type, source, tier, direction, risk level, liquidity size, trade size.

For each unique context combination, the bandit maintains a record of historical outcomes. It performs Thompson Sampling — drawing a random sample from the Beta distribution — and blends it with the posterior mean to balance exploration with exploitation.

sampled_prob = (1 − ts_blend) × posterior_mean + ts_blend × thompson_sample
delta = (sampled_prob − 0.5) × 26 + avg_reward × 8 + pnl × 0.12 + move × 0.08

This means the bot naturally favours signal contexts that have historically produced good outcomes, and explores less-proven contexts cautiously.

L4

Execution Policy Scoring — Fill Quality Score

A second, independent bandit pass produces execution_confidence_score — calibrated specifically to whether signals have led to good executed fills, not just directional accuracy. This score is evaluated separately from the main confidence score.

The weighting between posterior accuracy, fill reward, P&L history, and risk penalty is tuned by your Execution Policy Preset (Conservative / Balanced / Aggressive).

Emit Gate — The Final Filter

After all four scoring layers, the signal must clear three thresholds or it's dropped entirely. This is your first line of defence against low-quality signals.

≥ 50

Confidence Score

Overall ML pipeline output

≥ 58

Execution Confidence

Fill quality score (Layer 4)

≥ 62

Token Quality

Minimum token health score

These defaults can be adjusted — but raising them means fewer, higher-conviction signals. Lowering them means more signals with higher noise.

Strategy Presets

Strategies are named bundles of default settings. Picking a strategy doesn't lock you in — you can override any individual field on top. Strategies change which signals are active, risk parameters, confidence gates, and the execution policy preset.

Balanced

Default All 5 signals

Well-rounded all-rounder. Uses every signal type, moderate SL/TP, medium confidence threshold. Good starting point for most traders.

SL: 8% TP: 15% Min confidence: 50% Direction: both Exec policy: balanced

Momentum

price_surge + volume_spike

Focuses on trend breakouts — large price moves and volume spikes. Uses wider take-profit to capture extended runs. Not suitable in choppy, low-volatility markets.

SL: 10% TP: 25% Min confidence: 55% Direction: long only Exec policy: balanced

Smart Money Mirror

smart_buy + smart_sell

Only acts on whale and shark wallet signals. Lower frequency, higher conviction. Requires a 65% confidence gate, so only the strongest on-chain wallet movements generate trades.

SL: 7% TP: 18% Min confidence: 65% Direction: both Exec policy: conservative

Scalp

All signals — tight ranges

High-frequency scalping with tight stoploss and take-profit. Uses all signal types and a lower confidence gate for more frequent entries. Suited for active, volatile markets — higher trade volume means the ML feedback loop adapts faster.

SL: 4% TP: 8% Min confidence: 45% Direction: both Exec policy: aggressive

Execution Policy Presets

The execution policy controls how the Layer 4 ML scoring bandit is tuned. Conservative requires more evidence before trusting a signal. Aggressive reacts faster to recent winners.

Preset Min samples needed Posterior weight Reward weight High-risk penalty
Conservative 28 fills High (0.65) Low (0.35) Heavy (4.5)
Balanced 15 fills Medium (0.50) Medium (0.50) Moderate (3.0)
Aggressive 8 fills Low (0.30) High (0.70) Light (1.5)

Until the minimum sample count is reached, the bandit layer is bypassed — raw formula scores are used. This means a fresh bot starts conservatively and adapts over time.

Self-Calibration — How the Bot Gets Better Over Time

When a position closes, the realised outcome (P&L, return %, exit reason) is fed back into the ML pipeline. This is the core feedback loop that makes the bot adaptive:

Trade closes → P&L recorded against the original alert_id

Outcome added to accountability record — precision %, median move %, reward score

Layer 2 reinforcement uses updated precision to adjust future signals of the same type

Layer 3 bandit updates the Beta(α, β) posteriors for the signal's context bucket

Future signals of the same context automatically score higher or lower — no manual retraining needed

💡 Practical implication: The more trades your bot runs, the better it calibrates to your specific market conditions and strategy. Paper mode is the ideal place to build up history before switching to live.

Ready to start? Head back to the Bot Portal to configure your instance.

← Back to Bot Portal