# /srv/fly/vault.env for the hosted $FLY vault fly (mode 600). Comments on their own lines only (Compose keeps a # trailing "# comment" as part of the value). The wallet key is NOT here: it is the file /srv/fly/secrets/bot_key. # --- keys --- HELIUS_API_KEY= JUPITER_API_KEY= # --- money: the vault wallet (5 SOL principal) --- LIVE_ENABLED=1 SOLANA_CLUSTER=mainnet-beta CAPITAL_SOL=5 # only used when the fly has no sizing table yet; the Kelly caps below govern (~0.47 SOL per position on 5 SOL) MAX_POSITION_SOL=0.5 MAX_POSITION_FRACTION=0.10 MAX_POOL_SHARE=0.02 MIN_POSITION_SOL=0.02 GAS_RESERVE_SOL=0.30 KELLY_FRACTION=0.25 KILL_SWITCH_DRAWDOWN=0.20 KILL_SWITCH_LIQUIDATE=1 HANDOVER_DAYS=0 HANDOVER_MIN_TRADES=20 HANDOVER_BEAT_SELECTOR=0 RESET_ON_START=0 DEVICE=cpu # leave memory for Postgres and the wallet-skill table (16 GB host) DEVICE_MEMORY_GB=6 # --- the vault --- # SOL from these addresses is your deposit (principal); from anyone else it is profit for the lockers FUNDING_ADDRESSES= RH_CHAIN_ID=4663 RH_RPC_URL=https://rpc.mainnet.chain.robinhood.com # from contracts/deployments/4663.json after you deploy VAULT_ADDRESS= VAULT_TIMELOCK= VAULT_START_BLOCK= # keccak of the implementation's runtime code (cast keccak $(cast code --rpc-url ...)); settlement refuses others VAULT_IMPL_CODEHASHES= RELAY_URL=https://fly-trader.app RELAY_KEY_ID=k1 # the same secret as in relay.json on Gandi (python3 -c "import secrets; print(secrets.token_hex(32))") RELAY_SECRET= VAULT_SITE_DOMAIN=fly-trader.app VAULT_SITE_URI=https://fly-trader.app/vault.html # --- alerts --- TELEGRAM_BOT_TOKEN= TELEGRAM_CHAT_ID= # --- encrypted backups (key once, ledger nightly) --- # your age1... or ssh-ed25519 public key VAULT_BACKUP_RECIPIENT= VAULT_BACKUP_BUCKET=bryceweiner/fly-vault-backups VAULT_BACKUP_HF_TOKEN=