Common mistakes
Installed the starter before 2 November 2026?
Update it to the current main of hive-trade/bots before any live run. Older copies place Polymarket orders from a bot wallet of their own and sign their own stake, and their Kalshi rule accepts only three crypto series. The current starter only signs the Call: HiveTrade places the order in your own HiveTrade account, and each Call stakes the Hive's Amount per Call within its Total budget. Never work around an API refusal by placing a local order.
Sending money to the signing address
The bot's signing address holds no money and is not a deposit address. On Polymarket the bot's Calls are placed in your own HiveTrade account: add cash there, from your Portfolio. Create the Hive.
A Call skipped for its budget
If the bot's Total budget has less left than the exchange minimum, or your account has too little cash available to that bot's budget, HiveTrade skips the Call and buys nothing. (With less than the Amount per Call left, but at least the minimum, the Call stakes what is left.) The bot can use cash reserved for its own Total budget; it does not need extra unbudgeted cash. Other Member and Captain budgets are accounted for separately. Nothing is retried for a skipped Call. Raise the Total budget in Hive HQ → Settings → Bot spending limit (you allow it again) or add cash, then let the bot make its next Call.
Setting the amount in the bot
The bot does not choose how much each Call stakes. That is the Hive's Amount per Call, in Hive HQ → Settings → Bot spending limit. On Kalshi and Polymarket operator mode, a legacy signed amount is ignored for sizing; it does not lower the Hive's Amount per Call. Current public main signs no amount and warns that a leftover STAKE_USD, MAX_STAKE_USD or KALSHI_CONTRACTS is ignored. Check the Hive settings before a live run. Older self-managed Polymarket wallet orders follow their separate local-order protocol.
Copying another bot's identity
Use the key generated for this bot and register only its public address. Never copy credentials from a different bot or commit .env. Key setup.
Using the wrong API URL
Set BOT_API_URL=https://api.hivetrade.com for a Hive registered on app.hivetrade.com. A Hive ID and its registration only work with the API they were created on, so a test Hive registered on HiveTrade's dev site (dev.hivetrade.com) needs https://api-dev.hivetrade.com.
Leaving the placeholder rule in place
The shipped rule only shows the interface; it is not a recommendation. Your agent replaces it with the rule you describe before you enable live trading. The current starter does not enforce replacement: a configured example rule can place real orders when live trading is enabled. Your agent does not choose or improve a rule for you. The command checks once and exits. Custom bots.
Adding a second Kalshi order
HiveTrade executes the signed Kalshi intent using your connected account. The runner must not also place an order or report a Polymarket-style fill. Kalshi guide.
Deleting state to retry
A timeout may occur after an order was accepted. Keep the journal and reconcile the venue and Hive before restarting. Use a persistent volume and one instance. A dry run is not evidence of a live fill. Verification.
Trading a market that stopped accepting orders
A discovered market can become unavailable before your next run. A Polymarket intent can return go: false with code: "bot_market_not_tradable" when the platform's fresh market check says trading is disabled. Treat this as a declined intent and do not place the Captain order. The public starter already stops on go: false; this adds no new credential or signing requirement.
A Polymarket execution-mode refusal
PM_CAPTAIN_EXECUTED_BY_HIVETRADE means your client sent an older kind of Call that this Hive no longer accepts: HiveTrade places this Hive's Captain order itself. Do not place a local order or retry with a new nonce. Check that your installed client supports the Hive's mode; current public main signs pm-op-v1, so update an older copy. See execution modes.
A paused bot
423 with code: "BOT_PAUSED" means you, the operator, paused this bot in Hive HQ. No Call was placed. Do not place your own order or retry with a new nonce. Resume the bot first, with Resume new Calls in Hive HQ → Settings → Pause bot or rotate key. Key safety.