Auditsalsk1992/CloddsBot › Robinhood Crypto

Bot × exchange

Does CloddsBot work with Robinhood Crypto?

The CloddsBot README names Robinhood Crypto as a supported exchange (README scanned 2026-09-17). We did not run the bot against Robinhood Crypto: this page reports what the public code says and what the exchange itself publishes.

Robinhood Crypto facts

Puerto Rico residents
Accepted, in writing: every U.S. state, the U.S. Virgin Islands, Puerto Rico and D.C. (source, 2026-09-17)
Markets
Spot crypto only (source, 2026-09-17)
Official API
Yes: Robinhood Crypto Trading API with Ed25519-signed requests; even the public trading-pairs endpoint requires a key (source, 2026-09-17)

Exchange data: CoinGecko public API and the exchange's own endpoints, 2026-09-17. More on the Robinhood Crypto page.

What the audit says about running it live

From the CloddsBot audit (2026-09-17), the controls that matter most once a live API key is connected:

ControlVerdictEvidence
API key permissionsAbsent.env.example documents trading credentials for Polymarket/Kalshi/Manifold/Metaculus (POLY_API_KEY, POLY_PRIVATE_KEY, KALSHI_API_KEY, etc.) with no instruction to disable withdrawals or restrict the key by IP. Futures-exchange keys (Binance/Bybit/MEXC/Hyperliquid) referenced in src/execution/futures.ts are not documented in .env.example at all.
Orphaned stop-lossNot verifiedsrc/execution/futures.ts defines FuturesExecutionService.placeStopLoss() / placeTakeProfit(), i.e. exchange-side STOP_LOSS orders are supported (not purely in-memory). Could not confirm within this session's budget whether a stop is placed automatically on every entry, or reconciled/re-verified after a reconnect or process restart.
Websocket and data reconnectionNot verifiedExecutionService interface exposes connectFillsWebSocket/disconnectFillsWebSocket/isFillsWebSocketConnected (referenced in src/trading/orchestrator.ts pass-through list), implying a fills websocket exists, but the reconnect/backoff and HTTP 429 handling logic was not located within this session's time and API-search budget.
Order rejection handlingPartialsrc/trading/orchestrator.ts guardMethod() wraps every guarded order call in try/catch, logs the error via logger.error and returns a structured {success:false, status:'rejected'} result. No bounded-retry-on-partial-fill logic was located within budget.
Position reconciliation with the exchangePartialGET https://api.github.com/search/code?q=reconcile+repo:alsk1992/CloddsBot returns only 1 hit, inside src/feeds/betfair/index.ts. No general position-vs-exchange reconciliation module was found covering Binance/Bybit/MEXC/Hyperliquid/Solana/Polymarket/Kalshi.

Before you connect a key