Audits › HKUDS/Vibe-Trading › Robinhood Crypto
Bot × exchange
Does Vibe-Trading work with Robinhood Crypto?
The Vibe-Trading 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 Vibe-Trading audit (2026-09-17), the controls that matter most once a live API key is connected:
| Control | Verdict | Evidence |
|---|---|---|
| API key permissions | Partial | agent/src/trading/onboarding.py: explicit setup_hint text for several connectors, e.g. Binance 'Create a read-only Spot API key; do not enable withdrawals', OKX 'do not grant Trade or Withdraw permissions', Upbit 'do not grant withdrawal permission'. GET /search/code?q=withdraw+repo:HKUDS/Vibe-Trading+language:Python returned 10 hits, none inspected as an actual withdrawal API call |
| Orphaned stop-loss | Not verified | agent/src/live/mandate/model.py has no stop-loss field of any kind in HardCaps/Mandate |
| Websocket and data reconnection | Not verified | agent/src/market_data.py implements a multi-source REST fallback chain with bounded retries (max_fallback_attempts=5) for market data |
| Order rejection handling | Present | agent/src/live/order_guard.py _allow(): inspects the broker response envelope; an error envelope is audited as kind='order_rejected'/outcome='error' and does NOT increment the daily counter; class attribute 'repeatable = False' documented as 'a live order must never be silently re-issued' |
| Position reconciliation with the exchange | Not verified | agent/backtest/binance_account_reconciliation.py exists but lives under agent/backtest/ (shadow-account/backtest verification), not under agent/src/live/ |
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.