Robinhood Chain

KOL trade feed on Robinhood Chain (BASIC+; 5-min delay on free)

Every buy/sell from tracked Solana KOLs' verified EVM wallets on Robinhood Chain (chain id 4663), attributed to the effective trading account from our self-hosted node (tx.from normally, or the ERC-4337 userOp sender when bundled — never the bundler) — DEX swaps and launchpad curve snipes, within seconds of execution on PRO and up (the free tier serves this feed on a 5-minute delay). The KOL→EVM mapping is recovered by tracing each KOL's Solana→EVM bridge deposits (deBridge / Relay / Mayan / Wormhole) — a dataset unique to MadeOnSol. Every row is enriched with the token's current MC/liquidity/peak, the deployer's reputation tier, and mc_multiple_since_trade (current MC ÷ MC when the KOL bought — 'did the call run'). Tier: BASIC (any valid key).

get/rhc/kol/feed

Request

  • Base URL: https://madeonsol.com/api/v1
  • URL: https://madeonsol.com/api/v1/rhc/kol/feed
  • Auth: HTTP bearer

Query parameters

limitinteger
beforestring date-time

Cursor: return trades strictly older than this ISO timestamp. Pass next_before from the previous response to page backwards.

cursorstring

PREFERRED pagination (audit F09 follow-up): the next_cursor from a previous page — an opaque strict (traded_at, id) keyset, so paging never repeats or skips rows that share a timestamp and progresses with limit=1 through runs of identical timestamps. Malformed or tampered → 400. Cannot be combined with before= (400); before= stays supported as the legacy bound.

action'buy' | 'sell'

Only buys or only sells.

kolstring

Filter to a single KOL by their EVM wallet address (0x, 40 hex).

min_ethnumber

Minimum trade size in ETH.

exclude_sells'true' | 'false' | '1' | '0'

Convenience alias for action=buy — drops sells from the feed. Ignored if action is set explicitly.

min_mc_usdnumber

Only trades where the token's market cap at trade time was at least this (USD).

max_mc_usdnumber

Only trades where the token's market cap at trade time was at most this (USD). Combine with min_mc_usd for a band; min_mc_usd must be <= max_mc_usd or the request 400s.

token_age_max_mininteger

Only trades on tokens first seen at most this many minutes ago — the 'fresh launches KOLs are buying' filter. Tokens with unknown first-seen time are excluded.

min_kol_winratenumber

Only trades by KOLs whose 7-day win rate (mv_rhc_kol_scores.winrate_7d, CLOSED positions only — sold ≥ 90 % of bought) is at least this (0–1). KOLs with no closed positions have a NULL win rate and are dropped, so min_kol_winrate=0 is NOT a no-op: it means "scored".

strategy'scalper' | 'day_trader' | 'swing' | 'inactive' | 'unscored'

Only trades by KOLs in this hold-time bucket (mv_rhc_kol_scores.strategy). An RHC-specific bucket, not Solana's auto_strategy_tag.

Response

chain echoes robinhood; next_before is the pagination cursor; data_age_seconds is the age of the newest row.

chain'robinhood'
countinteger
matched_kolsinteger nullable

KOLs matching min_kol_winrate/strategy; null when neither filter is set.

data_age_secondsinteger nullable
next_beforestring date-time nullable
next_cursorstring nullable

Opaque keyset cursor for the next (older) page — pass as cursor=. PREFERRED over next_before, which is a strict timestamp bound that skips same-timestamp siblings of the boundary row.

has_moreboolean

false only when the feed is exhausted (not merely when the page is short).

Changes

No recorded changes to this operation across all 1 revision of this API.