# MOG Chat + Giveaway + Auto Gift # Copy to .env and adjust values. ############################ # Pusher / Chat connection # ############################ MOG_PUSHER_APP_KEY=d21f2a24538872113358 MOG_PUSHER_CLUSTER=mt1 MOG_PUSHER_CHANNEL=game-chat MOG_PUSHER_CLIENT_VERSION=8.4.0 ######################### # Listener robustness # ######################### MOG_BASE_BACKOFF_MS=1000 MOG_MAX_BACKOFF_MS=30000 MOG_DEDUP_TTL_MS=300000 ######################### # Giveaway tracking # ######################### MOG_GIVEAWAY_ENABLED=true MOG_GIVEAWAY_KEYWORDS=giveaway,join,gm MOG_GIVEAWAY_TRACK_FIELD=sender MOG_GIVEAWAY_EXPORT_FILE=/tmp/mog-giveaway.json MOG_GIVEAWAY_RESUME_ON_START=true # 0 = unlimited, otherwise first N eligible users only MOG_GIVEAWAY_MAX_PARTICIPANTS=0 MOG_GIVEAWAY_HOLDERS_ONLY=false # Optional: keyword-specific rules JSON string or file path. # Rule fields: cap, quantity, holdersOnly # Rule keys should match entries from MOG_GIVEAWAY_KEYWORDS. # Example: # MOG_GIVEAWAY_KEYWORD_RULES_JSON='{"gmog":{"cap":10,"quantity":1},"mog dn":{"cap":5,"quantity":2,"holdersOnly":true}}' MOG_GIVEAWAY_KEYWORD_RULES_JSON= MOG_GIVEAWAY_KEYWORD_RULES_FILE= # Dynamic keyphrase mode (target sender commands must be FULL CAPS): # - "MY PHRASE" => create/update keyphrase with default cap # - "MY PHRASE 5" => create/update keyphrase with cap=5 # - "RESET" => clear dynamic keyphrases + reset participants/gift state for a fresh round # Multiple dynamic phrases can be active in parallel until capped or RESET. MOG_DYNAMIC_KEYPHRASE_ENABLED=false MOG_DYNAMIC_KEYPHRASE_TARGET_SENDER= # Optional hard max for dynamic caps (0 = unlimited) MOG_DYNAMIC_KEYPHRASE_MAX_CAP=0 # Optional fallback cap when target sender message has no trailing number MOG_DYNAMIC_KEYPHRASE_DEFAULT_CAP=0 MOG_GIVEAWAY_SUMMARY_INTERVAL_MS=30000 # Optional time window in Unix milliseconds # Example start: 1771410000000 MOG_GIVEAWAY_START_AT=0 MOG_GIVEAWAY_END_AT=0 ######################### # Auto gift (API /keys) # ######################### # Leave empty to disable gifting and keep tracking-only mode. MOG_GIFT_COOKIE= MOG_GIFT_AUTO_ENABLED=true MOG_GIFT_ADDRESS_FIELD=sender MOG_GIFT_QUANTITY=1 MOG_GIFT_MIN_INTERVAL_MS=1200 MOG_GIFT_MAX_RETRIES=3 MOG_GIFT_RETRY_BASE_DELAY_MS=1500 MOG_GIFT_REQUEST_TIMEOUT_MS=12000 MOG_GIFT_ENDPOINT=https://mog.onchainheroes.xyz/api/keys/send MOG_GIFT_ORIGIN=https://mog.onchainheroes.xyz MOG_GIFT_REFERER=https://mog.onchainheroes.xyz/ # Optional holder bonus via OpenSea checks (parallel calls on configured collections) MOG_HOLDER_BONUS_ENABLED=false MOG_OPENSEA_API_KEY= MOG_HOLDER_BONUS_COLLECTIONS=abstract:och-ringbearer MOG_HOLDER_BONUS_MULTIPLIER=2 MOG_HOLDER_BONUS_TIMEOUT_MS=7000 MOG_HOLDER_BONUS_CACHE_TTL_MS=600000 MOG_OPENSEA_API_BASE=https://api.opensea.io/api/v2 ######################### # Terminal UI # ######################### MOG_TUI_ENABLED=auto MOG_TUI_REFRESH_MS=800 MOG_TUI_MAX_ROWS=15 MOG_TUI_SHOW_JSON_LOGS=false