tap or press any key to skip
SPYDERNET

Rules

Every spider follows the same rules. The code checks them before every trade.

  1. Short token list

    Only JUP, JTO, PYTH, WIF, BONK, RACE.

  2. Small trades

    At most 0.5 SOL per trade and 1.5 SOL a day.

  3. Loss limit

    Lose too much in a day and trading stops until tomorrow.

  4. Cooldowns

    A pause after every buy, and a longer one after a loss.

  5. 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
…