# ───────────────────────────────────────────── # WALLET SETUP # ───────────────────────────────────────────── # EOA private key — used for SIGNING only, does NOT hold USDC PRIVATE_KEY=0xYOUR_EOA_PRIVATE_KEY_HERE # Polymarket Proxy Wallet — the address shown when you click "Deposit" on Polymarket # This is where you deposit USDC.e, and where trades are funded from # How to find: Login to polymarket.com → Profile → Deposit → copy the address PROXY_WALLET_ADDRESS=0xYOUR_PROXY_WALLET_ADDRESS_HERE # ───────────────────────────────────────────── # POLYGON RPC # ───────────────────────────────────────────── POLYGON_RPC_URL=https://polygon.lava.build # ───────────────────────────────────────────── # POLYMARKET API CREDENTIALS (optional) # Leave blank to auto-derive from your private key # ───────────────────────────────────────────── CLOB_API_KEY= CLOB_API_SECRET= CLOB_API_PASSPHRASE= # ───────────────────────────────────────────── # TRADER TO COPY # Use the proxy wallet address of the trader (visible on their Polymarket profile) # ───────────────────────────────────────────── TRADER_ADDRESS=0xTRADER_PROXY_WALLET_ADDRESS # ───────────────────────────────────────────── # TRADE SIZING # ───────────────────────────────────────────── # SIZE_MODE: # "percentage" = SIZE_PERCENT% of MAX_POSITION_SIZE per market entry # (e.g. MAX_POSITION_SIZE=$10, SIZE_PERCENT=50 → buy $5 per entry) # "balance" = SIZE_PERCENT% of your current USDC.e balance per entry # (e.g. balance=$100, SIZE_PERCENT=10 → buy $10 per entry) # Note: sizing is independent of the trader's individual fill size. # Limit orders can fill in many small chunks — we always use our own sizing. SIZE_MODE=balance SIZE_PERCENT=10 # Minimum trade size in USDC (skip if calculated size is below this) MIN_TRADE_SIZE=1 # Maximum total position per market in USDC (won't buy more once this is reached) MAX_POSITION_SIZE=10 # ───────────────────────────────────────────── # AUTO SELL # ───────────────────────────────────────────── AUTO_SELL_ENABLED=true AUTO_SELL_PROFIT_PERCENT=10 # Sell mode when copying trader's sell # "market" = sell at market price immediately # "limit" = place limit order at trader's sell price SELL_MODE=market # ───────────────────────────────────────────── # INTERVALS # ───────────────────────────────────────────── # How often (seconds) to check for resolved markets to redeem REDEEM_INTERVAL=60 # Skip BUY if the market closes within this many seconds from now # Default 300 = skip if market ends in less than 5 minutes MIN_MARKET_TIME_LEFT=300 # ───────────────────────────────────────────── # DRY RUN (set true to simulate without real trades) # ───────────────────────────────────────────── DRY_RUN=true # ───────────────────────────────────────────── # MARKET MAKER (mm.js / npm run mm-sim) # ───────────────────────────────────────────── # Comma-separated assets to market-make (same slug format as sniper) MM_ASSETS=btc # Market duration: "5m" (5-minute) or "15m" (15-minute) MM_DURATION=5m # USDC amount per side (total exposure = 2x this) MM_TRADE_SIZE=5 # Limit sell price target (e.g. 0.60 = sell at $0.60) MM_SELL_PRICE=0.60 # Seconds before market close to trigger cut-loss MM_CUT_LOSS_TIME=60 # Keyword to match market question (case-insensitive) MM_MARKET_KEYWORD=Bitcoin Up or Down # Max seconds after market open to enter (0 = at open only) MM_ENTRY_WINDOW=45 # How often to poll for new markets (seconds) MM_POLL_INTERVAL=10 # ── Recovery Buy (after cut-loss) ─────────────────────────── # After cut-loss triggers, monitor prices for 10s and market-buy # the dominant side if criteria are met. Does not affect the main # MM flow — purely an opt-in add-on. # # Enable recovery buy MM_RECOVERY_BUY=false # Minimum price the dominant side must be at (and rising/stable) to qualify MM_RECOVERY_THRESHOLD=0.70 # USDC size for the recovery buy (0 = use MM_TRADE_SIZE) MM_RECOVERY_SIZE=0 # ───────────────────────────────────────────── # ORDERBOOK SNIPER (sniper.js / npm run sniper-sim) # Places tiny GTC BUY orders at a low price on both sides of # ETH/SOL/XRP 5-minute markets — catches panic dumps near $0. # ───────────────────────────────────────────── # Comma-separated assets to snipe SNIPER_ASSETS=eth,sol,xrp # Buy price per share (1 cent = $0.01) SNIPER_PRICE=0.01 # Shares per side — minimum Polymarket order size is 5 shares # At $0.01/share: 5 shares = $0.05 per side, $0.10 per market SNIPER_SHARES=5