# beebots settings. Most people need NONE of this: the Setup page asks for your keys when you first open the site. # Copy to .env (next to docker-compose.yml) only if you want to change something. NEVER commit .env. # ---- Mode ------------------------------------------------------------------- # dry = PAPER TRADING (the default): real market prices, simulated money, no exchange account needed # demo = OKX demo trading with per-bee DEMO keys, fake money on OKX's side # live = REAL MONEY. Needs DRY_RUN=false, MODE=live, per-bee LIVE keys AND LIVE_ACK below. Not financial advice. MODE=dry # Safety latch. true (the default, also when unset) forces paper trading whatever MODE says. DRY_RUN=true # Only for MODE=live: must be exactly I-ACCEPT-REAL-MONEY-RISK. You can lose everything you put in. LIVE_ACK= # ---- Setup ------------------------------------------------------------------ # The Setup page stays open this many minutes after the engine starts. First come, first served: once saved it closes # for good. If nobody finishes in time, restart the engine container to open it again. SETUP_WINDOW_MIN=120 # The owner password is picked on Setup and stored as a hash. Set this only if your Setup file has none (an install # from before it existed, or keys set only here). At least 8 characters. Gates Join/Leave the Hive on the dashboard. OWNER_PASSWORD= # ---- Jev (TypeSafe AI) ------------------------------------------------------ # Optional here (Setup asks for it). Key from https://console.typesafe.ai/keys TYPESAFE_API_KEY= JEV_MODEL=jev-1.13.0 JEV_TIMEOUT_MS=2000 # Hard daily Jev spend cap in USD. When hit, every bee holds and opens nothing until 00:00 UTC. JEV_DAILY_USD_CAP=2 # How often each bee asks Jev (ms). 10000 = 18 decisions/min for three bees, about $0.90/day (docs/COSTS.md). TICK_MS=10000 # Full market refresh (candles, indicators, funding, OI): every 60 s DATA_REFRESH_MS=60000 # ---- OpenAI (optional) -------------------------------------------------------- # Setup asks for this too (required there). Used only on the Setup page: design each bee from a sentence, and paint it. OPENAI_API_KEY= OPENAI_TEXT_MODEL=gpt-5.4-nano OPENAI_IMAGE_MODEL=gpt-image-2 # ---- OKX (EEA) -------------------------------------------------------------- # Market data comes from OKX's public EEA API. Demo/live keys must be EEA (my.okx.com) keys. OKX_API_BASE=https://eea.okx.com # Demo or live only: one OKX sub-account per bee. Keys: Read + Trade ONLY. Never Withdraw, never Transfer. # Live keys should be IP-bound to your server. Demo keys come from OKX's demo-trading screen. BEE1_OKX_DEMO_API_KEY= BEE1_OKX_DEMO_API_SECRET= BEE1_OKX_DEMO_API_PASSPHRASE= BEE2_OKX_DEMO_API_KEY= BEE2_OKX_DEMO_API_SECRET= BEE2_OKX_DEMO_API_PASSPHRASE= BEE3_OKX_DEMO_API_KEY= BEE3_OKX_DEMO_API_SECRET= BEE3_OKX_DEMO_API_PASSPHRASE= BEE1_OKX_API_KEY= BEE1_OKX_API_SECRET= BEE1_OKX_API_PASSPHRASE= BEE2_OKX_API_KEY= BEE2_OKX_API_SECRET= BEE2_OKX_API_PASSPHRASE= BEE3_OKX_API_KEY= BEE3_OKX_API_SECRET= BEE3_OKX_API_PASSPHRASE= # ---- Risk (every bee) --------------------------------------------------------- BEE_START_EQUITY_USD=333 MAX_LEVERAGE=2 # Per-bee daily loss stop, % of that bee's equity at 00:00 UTC. Trip = flat until 00:00 UTC. DAILY_LOSS_STOP_PCT=8 # If a bee's equity falls below this % of its start, it retires for good. BEE_RETIRE_AT_PCT=40 # Hard ceiling on any bee's position size, whatever its balance says MAX_NOTIONAL_USD_PER_BEE=700 # "Never flat for long" ceiling in minutes. Each style's own limit is min(its own, this). MAX_FLAT_MINUTES=30 # First hours of live trading run at reduced size LIVE_SIZE_MULTIPLIER=0.25 LIVE_RAMP_HOURS=2 MIN_24H_VOL_USD=1000000 ALLOW_NON_CRYPTO=false # ---- Per-style knobs ------------------------------------------------------------ # BIZZY_* = Breakout, BREEZY_* = Trend, BOOZY_* = Momentum. Every bee on that style uses them. # See strategies/*.md. COOLDOWN_MINUTES: wait after an order. STOP_ATR_MULT: stop distance in ATR(14). BREEZY_MAX_TRADES_PER_DAY=3 BREEZY_FEE_BUDGET_USD_DAY=1.00 BREEZY_MIN_OPEN_PROB=0.70 BREEZY_MIN_SIZE_USD=10 BREEZY_SPREAD_GATE_BPS=5 BREEZY_COOLDOWN_MINUTES=240 BREEZY_STOP_ATR_MULT=2 BREEZY_MAX_FLAT_MINUTES=0 BIZZY_MAX_TRADES_PER_DAY=1 BIZZY_FEE_BUDGET_USD_DAY=1.00 BIZZY_SIZE_FRACTION=0.4 BIZZY_UNIVERSE_SIZE=8 BIZZY_MAX_FLAT_MINUTES=20 BIZZY_SPREAD_GATE_BPS=5 BIZZY_COOLDOWN_MINUTES=5 BIZZY_STOP_ATR_MULT=1.5 BIZZY_TIME_STOP_MINUTES=240 BOOZY_MAX_TRADES_PER_DAY=3 BOOZY_FEE_BUDGET_USD_DAY=3.00 BOOZY_SPREAD_GATE_BPS=15 BOOZY_CANDIDATES=5 BOOZY_COOLDOWN_MINUTES=2 BOOZY_STOP_ATR_MULT=2 BOOZY_MAX_FLAT_MINUTES=0 # ---- Server ------------------------------------------------------------------- # A domain pointed at this server gets automatic HTTPS. Blank = plain HTTP on the server's IP. PUBLIC_DOMAIN= LOG_LEVEL=info # Alerts (optional): a Telegram bot, ntfy.sh topic or any webhook URL. Cap trips, Jev outages, restarts. ALERT_WEBHOOK_URL= # The Hive: the public paper-trading leaderboard. Nothing is sent unless you join (on Setup or from the dashboard). HIVE_URL=https://beebots.tech # "Update available" on the dashboard when a newer GitHub Release is out. It never installs anything by itself. UPDATE_CHECK=true # Dashboard links: the "Hosted on" chip and the code link. HOST_LINK=https://mrc.fm/beebots REPO_LINK=https://github.com/imikerussell/beebots