Files
poly-maker/config/config.toml
T
2026-07-06 14:48:18 -04:00

52 lines
2.5 KiB
TOML

# polymaker global config. Secrets live in .env, never here.
# See the README.
[wallet]
# chain: Polygon mainnet
chain_id = 137
# signature_type — pick based on how your Polymarket account was created:
# 0 = EOA (funds held directly by your key; no proxy)
# 1 = email/magic proxy wallet
# 2 = older browser-wallet Gnosis Safe proxy
# 3 = POLY_1271 deposit wallet (the CURRENT architecture, ~June 2026+)
# If your UI shows a "deposit address", you almost certainly have a deposit
# wallet -> use 3. In every proxy case (1/2/3), BROWSER_ADDRESS is the DEPOSIT
# address (the funder that holds your pUSD), NOT your signing EOA and NOT the
# deployer/factory. Known SDK auth bugs live here (see the README) — `polymaker
# doctor` / `livetest` will tell you if you picked the wrong type.
signature_type = 3
clob_host = "https://clob.polymarket.com"
gamma_host = "https://gamma-api.polymarket.com"
data_api_host = "https://data-api.polymarket.com"
polygon_rpc = "https://polygon-bor-rpc.publicnode.com"
[engine]
debounce_ms = 250 # min gap between quote recomputes per market
quoter_tick_s = 60 # slow baseline refresh (reactions are event-driven); cool-off re-entry is precise
reconcile_interval_s = 20 # REST drift reconciliation cadence
catalog_refresh_s = 300 # market catalog rescan cadence (15 min)
heartbeat = true # exchange dead-man switch
heartbeat_interval_s = 5
journal = true # append raw WS/orders to journal/ for backtest
loop = "uvloop" # "uvloop" | "asyncio"
[risk]
max_total_exposure_usdc = 450.0 # sum of |position notional| + open buy notional
max_event_group_loss_usdc = 400.0 # neg-risk group worst-case loss cap
max_market_notional_usdc = 400.0 # per-market position+orders notional cap
daily_loss_kill_usdc = 40.0 # realized daily loss -> halt new quotes
ws_stale_halt_s = 10.0 # no book updates for this long -> halt market
user_ws_blind_halt_s = 15.0 # user WS down this long -> pull all quotes (can't see fills)
heartbeat_halt_failures = 3 # consecutive heartbeat misses -> halt + resync
max_order_error_rate = 0.25 # rolling order-post error fraction -> halt
[execution]
rate_budget_fraction = 0.25 # fraction of documented API limits we allow
post_only = true # every quote is post-only (maker-only mandate)
max_orders_per_batch = 15 # exchange batch cap
[paths]
db = "state.db"
journal_dir = "journal"
log_dir = "logs"