Audits › alsk1992/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:
| Control | Verdict | Evidence |
|---|---|---|
| API key permissions | Absent | .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-loss | Not verified | src/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 reconnection | Not verified | ExecutionService 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 handling | Partial | src/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 exchange | Partial | GET 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
- Create the API key with trading enabled and withdrawals disabled, and restrict it to your server's IP if Robinhood Crypto allows it.
- Start in paper or dry-run mode if the bot has one (the README mentions it).
- Decide the maximum loss per day before the first order and check the bot can enforce it: see the circuit breaker control. If it cannot, the watchdog enforces it from outside with a read-only key.