connecting to rpc.mainnet.chain.robinhood.com… (requires JavaScript)
Strategies
Four honestly documented strategies. No ML theater — every entry/exit rule is readable in one
file, and every strategy's meta.edge / meta.failureModes is a live
object on the class, not a comment that can drift from the code. Three are pure rule-based
code; the fourth, llm-strategist, is opt-in and bring-your-own-key.
Edge hypothesis: the first minutes after a NOXA instant-listing are the
most information-rich and most volatile window a memecoin ever has. A disciplined buyer who
only touches round-trippable, non-deployer-heavy launches, and exits mechanically instead of
falling in love, harvests a slice of that opening volatility. The edge is speed + discipline,
not prediction.
Entry filters (all must clear)
Liquid route exists — a real QuoterV2 quote must resolve; un-graduated Odyssey bonding-curve tokens have no Uniswap pool yet and are skipped.
Round-trip retention — buy then immediately quote a sell-back; a honeypot or thin pool that loses more than maxRoundTripLossPct (default 35%) of value is rejected.
Deployer concentration — the launching wallet must hold under maxDeployerPct (default 15%) of total supply.
Freshness — only launches seen within maxLaunchAgeSeconds (default 5 min) are considered.
Exits (mechanical, first match wins)
Take-profit: takeProfitPct (default +60%)
Stop-loss: stopLossPct (default −35%)
Time exit: maxHoldSeconds (default 30 min), regardless of PnL
Failure modes
Most new launches trend to zero — the stop loss fires often; profitability depends on winners covering losers.
Honeypots can enable a sell tax after entry — the entry-time round-trip check cannot see that.
Odyssey bonding-curve tokens are skipped pre-graduation — this is effectively a NOXA sniper.
Paper fills use the QuoterV2 mid; live, faster bots win the best fills and you eat worse slippage.
strategy 2 / 4
momentum
src/strategies/momentum.ts · quote token: USDG
Edge hypothesis: a token that has already graduated to a locked Uniswap v3
pool survived the highest-mortality phase. A subsequent breakout — price up sharply over a
short lookback — reflects real incoming demand rather than launch-day noise, and trend-
following it with a trailing stop captures the middle of the move while giving back only
the tail.
Entry
Price gain over lookbackSamples ticks (default 6) exceeds breakoutPct
(default 15%) → buy entryUsdg (default $10) worth.
Exits
Trailing stop: trailingStopPct (default 20%) off the post-entry peak
Time exit: maxHoldSeconds (default 60 min)
Failure modes
Breakouts on illiquid tokens are trivially fakeable by one wallet round-tripping the pool — this is a price-only signal with no depth check.
Trailing stops whipsaw in choppy markets — expect a string of small losses between real trends.
Discovery scans a bounded block lookback; a breakout on a token outside that window is missed until the next pass.
No edge in a flat or declining market — this is a trend-only strategy by design.
strategy 3 / 4
premium-watch
src/strategies/premium-watch.ts · quote token: USDG · alerts-only by default
Edge hypothesis: Stock Token pools are much thinner than the underlying
equity market, so DEX price can drift from the Chainlink oracle when flow is one-sided. If
the drift is a liquidity artifact, buying the discount and later selling back at fair
captures the reversion as the pool re-equilibrates.
trading is gated, on purpose
Stock Tokens are tokenized debt securities (issuer: Robinhood Assets (Jersey) Ltd) and may
not be offered to US/Canada/UK/Switzerland persons. This strategy trades convergence only
when bothenableTrading: true in its params andHOOD_STOCK_TOKEN_ELIGIBLE=true in the environment. Missing either keeps it
strictly alerts-only, which is the default and the recommended mode. Displaying spread data
and alerting are never gated.
Signal
Spread = (dexPrice - oracle) / oracle, in bps. Alerts when
|spread| >= alertThresholdBps (default 50bps). Trades a discount (DEX cheap)
when spread <= -tradeThresholdBps (default 150bps) — only in eligible+opted-in
configuration.
Exits
Convergence: spread reverts within exitThresholdBps (default 20bps)
Time exit: maxHoldSeconds (default 2h)
Failure modes
A premium/discount can be correct — DEX price may reflect information the ≤24h Chainlink heartbeat hasn't caught up to yet; fading it then loses on purpose.
Stock Token pools are thin; the probe price doesn't reflect real trade-size slippage, and the trade itself moves the spread being arbitraged.
No shorting primitive exists — only discounts are ever tradeable; premiums are alert-only by construction, not by choice.
Chainlink staleness (weekend gap, feed outage) can masquerade as a discount when the oracle, not the pool, is stale.
Edge hypothesis:launch-sniper's filters are fixed cutoffs applied
independently — a launch either clears every threshold or it doesn't. An LLM can weigh the same
real on-chain signals (round-trip retention, deployer concentration) holistically instead, and
may make better marginal calls on launches that are close to the line. It sees nothing
launch-sniper can't — same inputs, a different judgment function.
bring your own key
Set HOOD_LLM_PROVIDER (anthropic | openai |
groq | openrouter) and HOOD_LLM_API_KEY to enable
it — unset, the fleet simply runs the other three strategies. Every verdict still passes
through the exact same risk engine as every other strategy; an LLM proposes an intent, it
never executes one directly.
Signal
For each new launch, the strategy computes the same buy→sell round-trip retention and
deployer-supply-concentration numbers launch-sniper uses, sends them (numbers
only — no free-text on-chain fields, to limit prompt-injection surface) to the configured LLM
with a strict JSON-only verdict contract, and parses the response with a tolerant extractor
that throws on anything malformed.
Entry
Trades only when the verdict is {"buy": true}andconfidence >= HOOD_LLM_MIN_CONFIDENCE (default 0.6). Everything else — a
buy:false verdict, low confidence, a malformed response, or a provider timeout —
is logged to the decision journal as an alert, never a trade.
Exits
Take-profit / stop-loss / time-exit — identical bands to launch-sniper
Failure modes
LLM confidence is not calibrated probability — a confidently wrong verdict trades exactly like a confidently right one.
On-chain data reaching the prompt is attacker-controlled; only numeric signals are included today specifically to limit prompt-injection surface.
LLM round-trip latency means this strategy reacts to a launch after launch-sniper already has (or hasn't).
Every judged launch costs a real LLM API call regardless of verdict — a launch storm inflates spend with nothing to show for it.
One configured provider, no fallback chain — a provider outage means zero coverage until it recovers.