Rules
Every spider follows the same rules. The code checks them before every trade.
Short token list
Only JUP, JTO, PYTH, WIF, BONK, RACE.
Small trades
At most 0.5 SOL per trade and 1.5 SOL a day.
Loss limit
Lose too much in a day and trading stops until tomorrow.
Cooldowns
A pause after every buy, and a longer one after a loss.
Off by default
Real trading stays off until the owner switches it on.
SWITCHES all must be on before real money moveslive
- Flagship owner trading
- …
- Flagship send mode
- …
- Flagship next tick
- …
- Vat trading, server switch
- …
- Vat trading, owner switch
- …
- Vats switched live
- …
- Vat transactions
- …
Details · full limits file, engine status, action queue
LIMITS the rules it can't break/etc/spydernet/limits.toml · draft
# enforced in code by the guard before every swap or spend. draft values; TBD ones are published before launch. [guard] per_action_cap = "TBD @ launch" # max share of vault any single exec can move allowlist = ["buyback", "airdrop", "inference", "swap"] # only routes that can receive funds leverage = false touch_liquidity = false log_before_exec = true # decision written before it runs pause_key = "external" # human-held; can halt, cannot move funds untrusted_input = "data" # crawled text never treated as instructions [trading] trading_switch = "owner-only" # stored toggle (default OFF), flipped by the owner wallet; env TRADING_ENABLED_MASTER=false forces OFF live_swaps = "jupiter flagship path" # owner toggle ON → quote/build/sign/sim; FLAGSHIP_SEND_MODE=live to send flagship_send_mode = "simulate" # default; set live in Vercel to broadcast (real SOL risk) sign_and_send = "server treasury signer" # CRAWLBRAIN_WALLET_SECRET stays server-side only mint_allowlist = ["JUP", "JTO", "PYTH", "WIF", "BONK", "RACE"] # nothing else can be bought min_liquidity_usd = 500000 # skip thin pools min_age_days = 30 # skip fresh mints and likely rugs max_chase_24h_pct = 12 # no buying after a big pump max_per_trade_sol = 0.5 # absolute ceiling, tiers stay below daily_max_sol = 1.5 # total buys per rolling day daily_loss_cap = "3% of balance, max 0.25 SOL" # hit it and trading halts for the day max_open_positions = 2 cooldown_s = 1800 # per mint, between buys loss_cooldown_s = 7200 # pause after any losing trade max_slippage_bps = 50 min_sol_reserve = 0.02 # always kept for fees # risk scales with balance: conservative by default; bigger targets only above a balance threshold # and only when that mint's backtest win rate clears the bar. daily loss cap and kill switch still apply. [risk.conservative] min_balance_sol = 0 risk_budget_pct = 2 # share of balance per trade max_sol = 0.05 take_profit_pct = 1.5 stop_loss_pct = -1 min_win_rate = 0.55 # used to bench a mint max_per_day = 99 [risk.measured] min_balance_sol = 2 risk_budget_pct = 3 # share of balance per trade max_sol = 0.15 take_profit_pct = 3 stop_loss_pct = -1.5 min_win_rate = 0.6 max_per_day = 3 [risk.high] min_balance_sol = 10 risk_budget_pct = 5 # share of balance per trade max_sol = 0.5 take_profit_pct = 6 stop_loss_pct = -3 min_win_rate = 0.65 max_per_day = 1 [paper] sample_every_min = 5 cost_bps_per_side = 15 # assumed fees + slippage lock_gains = "after +1%, exit below +0.3%" max_hold_min = 360
EXEC QUEUE what it decided, and whyguard → exec
- …
PROC system status/proc/spyderd
- process
- spyderd
- state
- running · dry-run
- signer
- key server-side · signing off
- uptime
- —
- tick
- 14s / log entry
- inference
- …
- region
- …
- deploy
- …
- network
- solana mainnet-beta
- block height
- …
- slot
- …
- rpc rtt
- …
- rpc host
- …