Common mistakes
Four things quietly break bots. All four are avoidable, and all four have already bitten someone.
1. Funding the key instead of the wallet
The signing EOA and the deposit wallet are different addresses. USDC.e sent to the EOA can't be traded until it's moved. Always fund the deposit wallet. → Fund the deposit wallet
2. The wrong relayer address
POLYMARKET_RELAYER_API_KEY_ADDRESS is the identity the relayer acts as, per bot. If it isn't this bot's own EOA, every wrap and redeem fails with from 0x… does not match auth 0x…. → Polymarket API key
3. Never deploying the deposit contract
The wallet address exists before the contract does. USDC.e can't wrap into a wallet that hasn't been deployed on-chain. Complete the supported wallet setup as an eligible Polymarket user. → Deploy the deposit contract
4. A copied key or a leftover master mnemonic
Use this bot's own BOT_PRIVATE_KEY, with BOT_INDEX=0, and delete any BOT_MASTER_MNEMONIC you inherited from a cloned service — otherwise the runner signs as the wrong bot. Confirm the boot-log account=… is this bot's address before flipping live trading on. → Configure Railway · Verify
One check catches most of these
The boot identity and fuel logs are useful setup checks. They do not prove order execution or Member fanout: verify the actual venue receipt and the corresponding Hive Call after an intentionally enabled trade.