Overview
$BOS Documentation
Bags Operating System — v1.0
Version info
$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.
note
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
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:
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 liquidity5. 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
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
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.
# Manual snipe via dashboard
Token address: [paste SPL token mint address]
Amount (SOL): 0.05
Slippage: 3%
> Click [Snipe Now] to execute immediatelywarning
Entry Parameters
Entry parameters define the conditions under which $BOS will execute a buy. All parameters are evaluated before every potential trade.
| Parameter | Type | Default | Description |
|---|---|---|---|
max_entry_price | float (SOL) | 0.001 | Maximum price per token in SOL. Rejects tokens above this price at entry time. |
position_size | float (SOL) | 0.05 | Amount of SOL to spend per trade. |
max_positions | int | 5 | Maximum number of concurrent open positions. |
entry_delay_ms | int (ms) | 0 | Delay in ms after signal detection before entering. Use to avoid first-block honeypots. |
require_mint_disabled | bool | true | Only enter tokens where the mint authority has been revoked. |
require_freeze_disabled | bool | true | Only 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.
| Parameter | Type | Default | Description |
|---|---|---|---|
max_daily_loss_sol | float (SOL) | 0.5 | Bot pauses automatically if daily realized losses exceed this amount. |
max_exposure_sol | float (SOL) | 1.0 | Maximum total capital deployed in open positions at any time. |
max_position_pct | float (0–1) | 0.2 | Max single position size as a fraction of your total trading balance. |
auto_tp_pct | float (%) | 100 | Automatic take-profit trigger as % gain from entry. Set 0 to disable. |
auto_sl_pct | float (%) | 30 | Automatic stop-loss trigger as % loss from entry. Set 0 to disable. |
trailing_stop | bool | false | Enable 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.
| Parameter | Type | Default | Description |
|---|---|---|---|
slippage_bps | int (bps) | 300 | Max acceptable slippage in basis points (100 bps = 1%). Trades exceeding this are rejected. |
priority_fee_lamports | int | 100000 | Priority fee per transaction in lamports. Higher = faster inclusion, higher cost. |
compute_unit_limit | int | 200000 | Compute unit budget per transaction. Increase if you see simulation errors. |
dynamic_fees | bool | true | When enabled, BOS automatically adjusts priority fees based on current network congestion. |
# 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 periodsToken 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
| Parameter | Type | Default | Description |
|---|---|---|---|
min_liquidity_sol | float (SOL) | 10 | Minimum initial pool liquidity in SOL. |
max_top10_pct | float (0–1) | 0.3 | Maximum % of supply held by top 10 wallets. |
require_lp_locked | bool | false | Only trade tokens with LP tokens locked in a locker contract. |
min_buy_sell_ratio | float | 1.5 | Minimum ratio of buy txns to sell txns in the first N blocks. |
block_window | int | 10 | Number 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.
# 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 decidesTransaction 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.
| Parameter | Type | Default | Description |
|---|---|---|---|
max_retries | int | 3 | Max transaction retry attempts on failure. |
retry_delay_ms | int (ms) | 500 | Base delay between retries in ms (doubles each attempt). |
skip_preflight | bool | false | Skip 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.
# 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 risesPartial Exits
You can configure staged exits to take partial profits at multiple levels while keeping a portion running.
| Parameter | Type | Default | Description |
|---|---|---|---|
exit_stage_1_pct | float (%) | — | Sell X% of position at this % gain. E.g. 50 to sell half at +50%. |
exit_stage_1_sell | float (0–1) | — | Fraction of position to sell at stage 1. E.g. 0.5 to sell half. |
exit_stage_2_pct | float (%) | — | Second exit trigger % gain. |
exit_stage_2_sell | float (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
max_exposure_sol is exceeded, the bot will not enter new trades even if a perfect setup appears.# 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 requiredRPC 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.
| Parameter | Type | Default | Description |
|---|---|---|---|
rpc_endpoint | string (URL) | shared | Primary RPC endpoint URL. Use your own for best performance. |
rpc_fallback | string (URL) | — | Fallback RPC if primary is unavailable. |
ws_endpoint | string (URL) | derived | WebSocket endpoint for real-time account subscriptions. |
rpc_timeout_ms | int (ms) | 5000 | Request timeout before failing over to fallback RPC. |
note
# 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.
# 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