$BOS/docs

Overview

$BOS Documentation

Bags Operating System — v1.0

Version info

Version
1.0.0
Network
Solana Mainnet
Status
Live
Updated
2026-03-26

$BOS (Bags Operating System) is a non-custodial Solana trading bot designed for token sniping with a focus on decision quality over raw speed. It combines fast execution with token filtering, risk-aware entry logic, and structured position management.

This documentation covers everything from initial wallet setup to advanced risk configuration. If you're new, start with the Quick Start guide.

How It Works

$BOS runs as a persistent process connected to your Solana wallet via a read-only signing session. It monitors the Solana blockchain for new token launches, runs each token through your configured filter rules, and executes buy transactions automatically when conditions are met.

execution flow
01
Token DetectedNew SPL token mint detected on-chain
02
Filter PassToken evaluated against your filter rules
03
Entry CheckPrice and liquidity conditions verified
04
Risk ValidationExposure limits and position size checked
05
ExecuteTransaction signed and submitted with priority fee
06
Position TrackedTP/SL arms, position added to dashboard

note

$BOS never stores your private key. All transactions are signed locally in your browser using your connected wallet (Phantom, Backpack, Solflare, etc.).

Requirements

Before using $BOS, make sure you have the following:

  • A Solana wallet — Phantom, Backpack, or Solflare recommended
  • SOL balance for gas fees — minimum 0.1 SOL recommended
  • Trading capital in SOL or USDC
  • A reliable internet connection — latency matters

warning

$BOS is not compatible with hardware wallets (Ledger) at this time due to transaction signing speed requirements. Hardware wallet support is planned for a future release.

Quick Start

Get from zero to trading in under five minutes.

1. Open the app

Navigate to the $BOS app. You'll be greeted by the dashboard with no active positions.

2. Connect your wallet

Click Connect Wallet in the top-right corner. Select your wallet provider and approve the connection request. $BOS only requests read permission — it cannot move funds without your explicit approval on each trade.

3. Fund your account

Ensure your connected wallet has SOL for both trade capital and gas fees. We recommend keeping at least 0.1 SOL dedicated to priority fees separate from your trading capital.

4. Configure your strategy

Go to Settings → Strategy and configure your entry parameters. At minimum, set:

terminal
max_entry_price = 0.001       # max SOL per token
position_size = 0.05          # SOL per trade
slippage_bps = 300            # 3% slippage tolerance
min_liquidity_sol = 10        # minimum pool liquidity

5. Enable the bot

Toggle the bot to ACTIVE from the dashboard. $BOS will immediately begin scanning and filtering new token launches against your config.

note

Start with small position sizes while you calibrate your filter settings. You can adjust parameters live without restarting the bot.

Connect Wallet

$BOS is fully non-custodial. Your private key never leaves your device. The connection between $BOS and your wallet is established through the standard Solana wallet adapter, the same protocol used by every major Solana DEX and application.

Supported Wallets

PhantomFull support including mobile
Recommended
BackpackDesktop and browser extension
Supported
SolflareDesktop and browser extension
Supported
LedgerPlanned for v1.2
Not supported

Your First Trade

Once connected and configured, $BOS will handle execution automatically. But you can also trigger a manual snipe from the dashboard for any token address.

terminal
# Manual snipe via dashboard
Token address:  [paste SPL token mint address]
Amount (SOL):   0.05
Slippage:       3%

> Click [Snipe Now] to execute immediately

warning

Manual snipes bypass your filter rules. The bot will not check liquidity, metadata, or risk parameters for manual entries. Use with caution.

Entry Parameters

Entry parameters define the conditions under which $BOS will execute a buy. All parameters are evaluated before every potential trade.

ParameterTypeDefaultDescription
max_entry_pricefloat (SOL)0.001Maximum price per token in SOL. Rejects tokens above this price at entry time.
position_sizefloat (SOL)0.05Amount of SOL to spend per trade.
max_positionsint5Maximum number of concurrent open positions.
entry_delay_msint (ms)0Delay in ms after signal detection before entering. Use to avoid first-block honeypots.
require_mint_disabledbooltrueOnly enter tokens where the mint authority has been revoked.
require_freeze_disabledbooltrueOnly enter tokens where freeze authority has been revoked.

Risk Settings

Risk settings operate as a separate layer on top of entry parameters. Even if an entry signal passes your filter, it will be blocked if it violates your risk configuration.

ParameterTypeDefaultDescription
max_daily_loss_solfloat (SOL)0.5Bot pauses automatically if daily realized losses exceed this amount.
max_exposure_solfloat (SOL)1.0Maximum total capital deployed in open positions at any time.
max_position_pctfloat (0–1)0.2Max single position size as a fraction of your total trading balance.
auto_tp_pctfloat (%)100Automatic take-profit trigger as % gain from entry. Set 0 to disable.
auto_sl_pctfloat (%)30Automatic stop-loss trigger as % loss from entry. Set 0 to disable.
trailing_stopboolfalseEnable trailing stop-loss that adjusts upward as price increases.

note

max_daily_loss_sol resets at midnight UTC. The bot resumes automatically the next day unless you set pause_on_loss = permanent.

Slippage & Fees

Slippage and priority fees directly affect your fill quality and execution speed. Higher slippage means more trades will fill but at worse prices. Higher priority fees mean faster inclusion but higher cost per trade.

ParameterTypeDefaultDescription
slippage_bpsint (bps)300Max acceptable slippage in basis points (100 bps = 1%). Trades exceeding this are rejected.
priority_fee_lamportsint100000Priority fee per transaction in lamports. Higher = faster inclusion, higher cost.
compute_unit_limitint200000Compute unit budget per transaction. Increase if you see simulation errors.
dynamic_feesbooltrueWhen enabled, BOS automatically adjusts priority fees based on current network congestion.
terminal
# Fee cost per trade at 100,000 lamports priority fee:
# 100,000 lamports = 0.0001 SOL ≈ $0.015 at $150/SOL
#
# For high-volume setups, use dynamic_fees = true
# to avoid overpaying during low-congestion periods

Token Filtering

The filter engine is the core of what separates $BOS from a pure speed bot. Every new token launch is run through a multi-stage evaluation before an entry signal is triggered.

Filter Stages

MetadataName, symbol, URI reachability, social links present
AuthorityMint authority revoked, freeze authority revoked
LiquidityPool size ≥ min_liquidity_sol, LP tokens locked
Holder dist.Top 10 holders < max_top10_pct of supply
On-chain signalsBuy/sell ratio, volume velocity, sniper ratio
DenylistToken not in blacklisted deployer or contract list
ParameterTypeDefaultDescription
min_liquidity_solfloat (SOL)10Minimum initial pool liquidity in SOL.
max_top10_pctfloat (0–1)0.3Maximum % of supply held by top 10 wallets.
require_lp_lockedboolfalseOnly trade tokens with LP tokens locked in a locker contract.
min_buy_sell_ratiofloat1.5Minimum ratio of buy txns to sell txns in the first N blocks.
block_windowint10Number of blocks to analyze for buy/sell ratio calculation.

Trade Execution

When a token passes all filters and entry conditions, $BOS constructs a swap transaction through the best available DEX route and submits it with your configured priority fee.

DEX Routing

$BOS routes trades through Raydium and Orca by default, with fallback to Jupiter aggregator for best-price routing on established tokens. For new launches, it targets the primary liquidity pool directly to minimize routing hops.

terminal
# Route priority (configurable):
1. Direct pool (Raydium V4 / CLMM)
2. Orca Whirlpool
3. Jupiter aggregator (fallback)

# Override routing:
dex_route = "jupiter"        # force Jupiter for all trades
dex_route = "raydium"        # force Raydium only
dex_route = "auto"           # default — BOS decides

Transaction Retry

If a transaction fails (dropped, simulation error, slippage exceeded), $BOS will retry up to max_retries times with exponential backoff before abandoning the entry.

ParameterTypeDefaultDescription
max_retriesint3Max transaction retry attempts on failure.
retry_delay_msint (ms)500Base delay between retries in ms (doubles each attempt).
skip_preflightboolfalseSkip transaction simulation before submission. Faster but riskier.

Position Management

After a successful entry, $BOS tracks your position and manages exits based on your configured take-profit and stop-loss levels.

terminal
# Example position lifecycle:
Entry:    0.05 SOL @ 0.00042 SOL/token
TP:       +100% → sell at 0.00084 SOL/token
SL:       -30%  → sell at 0.000294 SOL/token
Trailing: enabled → SL moves up as price rises

Partial Exits

You can configure staged exits to take partial profits at multiple levels while keeping a portion running.

ParameterTypeDefaultDescription
exit_stage_1_pctfloat (%)Sell X% of position at this % gain. E.g. 50 to sell half at +50%.
exit_stage_1_sellfloat (0–1)Fraction of position to sell at stage 1. E.g. 0.5 to sell half.
exit_stage_2_pctfloat (%)Second exit trigger % gain.
exit_stage_2_sellfloat (0–1)Fraction of remaining position to sell at stage 2.

Risk Controls

Risk controls are hard limits that override all other settings. They exist to protect you from catastrophic loss in fast-moving markets.

warning

Risk controls operate at the wallet level. If max_exposure_sol is exceeded, the bot will not enter new trades even if a perfect setup appears.
terminal
# Emergency stop — disables all trading immediately
# Can be triggered from dashboard or via hotkey

Hotkey:  Ctrl + Shift + X
Effect:  Cancels all pending orders, pauses bot
Resume:  Manual re-enable required

RPC Configuration

$BOS connects to Solana via RPC endpoints. Your RPC quality directly impacts execution speed and reliability. By default $BOS uses a shared high-performance endpoint, but you can bring your own.

ParameterTypeDefaultDescription
rpc_endpointstring (URL)sharedPrimary RPC endpoint URL. Use your own for best performance.
rpc_fallbackstring (URL)Fallback RPC if primary is unavailable.
ws_endpointstring (URL)derivedWebSocket endpoint for real-time account subscriptions.
rpc_timeout_msint (ms)5000Request timeout before failing over to fallback RPC.

note

For best results, use a dedicated RPC node from providers like Helius, Triton, or QuickNode. Shared public RPCs rate-limit aggressively and will cause missed entries during high-volume periods.
terminal
# Recommended RPC config for serious traders:
rpc_endpoint  = "https://your-node.helius-rpc.com/?api-key=XXX"
ws_endpoint   = "wss://your-node.helius-rpc.com/?api-key=XXX"
rpc_fallback  = "https://api.mainnet-beta.solana.com"

API Reference

$BOS exposes a local REST API on localhost:7171 when running. You can use it to query bot status, positions, and trigger actions programmatically.

GET/statusBot status, active/paused, uptime
GET/positionsAll open positions with entry price and P&L
GET/historyClosed trades with entry/exit and realized P&L
POST/pausePause the bot (no new entries)
POST/resumeResume the bot
POST/snipeManual snipe — body: { token, amount_sol }
POST/close/:idForce-close a position by ID
terminal
# Example: get open positions
curl http://localhost:7171/positions

# Example: manual snipe
curl -X POST http://localhost:7171/snipe \
  -H "Content-Type: application/json" \
  -d '{"token": "So11111111111111111111111111111111111111112", "amount_sol": 0.05}'

Troubleshooting

Bot is active but not executing any trades

Check your filter settings — min_liquidity_sol may be too high for current market conditions. Also verify max_positions hasn't been reached.

Transactions failing with 'slippage exceeded'

Increase slippage_bps. For new launches with thin liquidity, 500–1000 bps (5–10%) is common. Alternatively reduce position_size.

Execution is slow / missing entries

Upgrade your RPC endpoint to a dedicated provider. Increase priority_fee_lamports. Enable dynamic_fees = true.

Bot paused unexpectedly

Check if max_daily_loss_sol was triggered. Review the loss log in Settings → Risk → Daily Summary.

Wallet not connecting

Ensure your wallet extension is unlocked and on Solana Mainnet. Clear site permissions and reconnect. Ledger is not supported.

FAQ

Does $BOS hold my funds?

No. $BOS is fully non-custodial. Your wallet, your keys, your funds. We have zero ability to move assets on your behalf.

Can I run $BOS on multiple wallets?

Yes. Each connected wallet runs its own independent strategy configuration. You can switch between wallets from the dashboard.

What DEXs does $BOS support?

Raydium V4, Raydium CLMM, Orca Whirlpool, and Jupiter aggregator. Pump.fun launches are supported via Raydium migration detection.

Is there a mobile app?

Not yet. $BOS is currently web-only. A mobile companion app for monitoring positions (not trading) is planned for Q3 2026.

How do I export my trade history?

Go to Settings → History → Export CSV. You can filter by date range and export as CSV or JSON.

$BOS Docs — v1.0.0 — 2026