Skip to main content

robinhood-chain

PyPI Python Downloads License: MIT

Star on GitHub · 📂 Examples · 📚 API docs · 🏦 Robinhood Chain hub

Robinhood Chain SDK for Python — EVM-native trading intelligence, chain id 4663.

Live KOL trades, token discovery, launch-bundle detection, early-buyer quality, deployer reputation, the Uniswap v2/v3/v4 trade tape, OHLC candles, and smart-money wallet ranking — for Robinhood Chain (an Arbitrum Orbit L2, chain id 4663), served from our self-hosted node. Everything is EVM-native: lowercase 0x addresses (token_address), eth_amount, tx_hash, block_number, net_flow_eth. No Solana field names.

Robinhood Chain coverage is bundled into every MadeOnSol tier at no extra cost — the same msk_ API key and the same base URL. Free tier: 200 requests/day, no card. Get a key at madeonsol.com/pricing.

New customers get a 3-day free trial of Pro or Ultra when you pay by card — full access, nothing charged during the trial, cancel anytime. Start at madeonsol.com/pricing.

Quick start (10 seconds)

pip install robinhood-chain
from robinhood_chain import RobinhoodClient

client = RobinhoodClient(api_key="msk_...")  # free key at https://madeonsol.com/pricing

# Real-time KOL trades on Robinhood Chain (chain id 4663)
feed = client.kol_feed(limit=5, action="buy")
for t in feed["trades"]:
    print(t["kol_name"], t["action"], t["token_address"], t["eth_amount"], "ETH", t["tx_hash"])

GET https://madeonsol.com/api/v1/rhc/kol/feed → every buy/sell from tracked KOLs' verified EVM wallets on Robinhood Chain, attributed via tx.from, sub-second from execution, enriched with live MC and mc_multiple_since_trade ("did the call run").

Authentication

Bearer msk_ API key — the same key and base URL as the Solana MadeOnSol API. This package also serves the x402-Py key-mode surface: Bearer auth only (the Solana-native pay-per-call x402 rail is not ported to Robinhood Chain).

import os
from robinhood_chain import RobinhoodClient

client = RobinhoodClient(api_key=os.environ["MADEONSOL_API_KEY"])

Endpoints — the 14 Robinhood Chain routes

Base URL https://madeonsol.com/api/v1. All addresses are lowercase 0x (40 hex).

KOL intelligence

Method Route Tier
client.kol_feed(limit=, before=, action=, kol=, min_eth=) GET /api/v1/rhc/kol/feed BASIC
client.kol_leaderboard(period=, limit=) GET /api/v1/rhc/kol/leaderboard BASIC
client.kol_hot_tokens(window=) GET /api/v1/rhc/kol/hot-tokens BASIC
client.kol_wallet(wallet) GET /api/v1/rhc/kol/{wallet} BASIC

Trades & tokens

Method Route Tier
client.trades(limit=, token=, dex=, action=, min_eth=, before=) GET /api/v1/rhc/trades PRO+
client.tokens(limit=, sort=, min_mc_usd=, min_liquidity_usd=, launchpad=) GET /api/v1/rhc/tokens PRO+
client.token(address) GET /api/v1/rhc/tokens/{address} BASIC
client.token_candles(address, limit=, from_=, to=) GET /api/v1/rhc/tokens/{address}/candles PRO+
client.token_kol_consensus(address) GET /api/v1/rhc/tokens/{address}/kol-consensus PRO+
client.token_buyer_quality(address) GET /api/v1/rhc/tokens/{address}/buyer-quality BASIC
client.token_bundle(address) GET /api/v1/rhc/tokens/{address}/bundle BASIC

Deployer hunter & alpha wallets

Method Route Tier
client.deployer_hunter_leaderboard(sort=, tier=, min_tokens=, limit=, offset=) GET /api/v1/rhc/deployer-hunter/leaderboard BASIC
client.deployer_hunter_profile(address) GET /api/v1/rhc/deployer-hunter/{address} BASIC
client.alpha_wallets(classification=, identity=, min_memecoin_share=, sort=, limit=, offset=, ...) GET /api/v1/rhc/alpha-wallets PRO+

Examples

KOL leaderboard & consensus

# KOLs ranked by trade count then net ETH flow (net_eth = buy − sell, not PnL)
lb = client.kol_leaderboard(period="24h", limit=20)   # '24h' | '7d' | '30d'
for row in lb["leaderboard"]:
    print(row["kol_name"], row["trades"], "trades", row["net_eth"], "ETH net")

# Tokens bought by 2+ distinct KOLs in the window (consensus signal)
hot = client.kol_hot_tokens(window="1h")              # '5m'|'15m'|'1h'|'6h'|'24h'
for tok in hot["tokens"]:
    print(tok["token_symbol"], tok["kols_buying"], "KOLs", tok["buy_eth"], "ETH")

# One KOL's profile: last-200-trade stats + 50 most recent trades
me = client.kol_wallet("0x1234567890abcdef1234567890abcdef12345678")
print(me["stats"]["net_eth"], me["stats"]["tokens_traded"])

Token bundle + early-buyer quality

addr = "0xabcdef1234567890abcdef1234567890abcdef12"

# Launch-bundle detection — RHC is an Arbitrum Orbit L2, so bundle_kind is
# 'same_block' or 'none' (there is NO atomic_tx on EVM).
b = client.token_bundle(addr)
print(b["bundle"]["bundle_kind"], b["bundle"]["held_ratio"], b["bundle"]["fully_exited"])

# 0–100 early-buyer quality — win-rate, KOL-presence, bundle + dump-cluster legs
q = client.token_buyer_quality(addr)
print(q["quality"]["score"], q["quality"]["signal"], q["quality"]["breakdown"])

# KOL consensus (PRO+): net_flow_eth, exit rate, median entry MC; ULTRA adds wallet lists
c = client.token_kol_consensus(addr)
if c["consensus"]:
    print(c["consensus"]["net_flow_eth"], c["consensus"]["kol_exit_rate"])

DEX trade tape & candles (PRO+)

# Every Uniswap v2/v3/v4 swap — trader_eoa is the real wallet (tx.from), not the router
tape = client.trades(dex="uniswap-v3", min_eth=0.1, limit=50)
for s in tape["trades"]:
    print(s["trader_eoa"], s["action"], s["eth_amount"], "ETH", s["tx_hash"], s["block_number"])

# 1-minute OHLC candles (oldest → newest)
candles = client.token_candles(addr, limit=240)
for k in candles["candles"]:
    print(k["bucket_start"], k["close_price_usd"], k["volume_usd"])

Deployer reputation & smart money

# Deployer reputation leaderboard — graduation_rate = share reaching $40K+ peak MC,
# runner_rate = share reaching $100K+ (most RHC launchpads are direct-to-DEX)
lb = client.deployer_hunter_leaderboard(sort="runner_rate", tier="elite", min_tokens=3, limit=20)
for d in lb["deployers"]:
    print(d["deployer_address"], d["tier"], d["graduation_rate"], d["runner_rate"])

# One deployer — unknown wallets return is_deployer: false (not a 404)
prof = client.deployer_hunter_profile("0x1111111111111111111111111111111111111111")
print(prof["is_deployer"], prof.get("recent_tokens_count"))

# Smart-money wallet ranking — net_eth is realized net flow (sell − buy)
sm = client.alpha_wallets(classification="smart_money", min_memecoin_share=0.7, sort="net_eth", limit=25)
for w in sm["wallets"]:
    print(w["wallet"], w["classification"], w["net_eth"], "ETH", w["win_rate"])

Async

Every endpoint has an async twin via client.aclient() — same signature, returns a coroutine:

import asyncio
from robinhood_chain import RobinhoodClient

client = RobinhoodClient(api_key="msk_...")

async def main():
    feed = await client.aclient().kol_feed(limit=10)
    print(feed["count"])

asyncio.run(main())

Errors & rate limits

Non-2xx responses raise a typed error carrying the API's error message and _rid request id:

from robinhood_chain import RobinhoodClient, AuthError, TierError, NotFoundError, RateLimitError

client = RobinhoodClient(api_key="msk_...")
try:
    client.trades(limit=50)               # PRO+
except TierError as e:
    print("upgrade needed:", e.message, e.request_id)
except RateLimitError as e:
    print("slow down; resets at", e.reset)
except NotFoundError as e:
    print("no RHC data:", e.message)

# Rate-limit headers from the most recent call:
print(client.last_rate_limit)
# {'limit': 100, 'remaining': 92, 'used': 8, 'reset': 1714000000, 'request_id': 'rid_abc'}

AuthError (401), TierError (403), NotFoundError (404), RateLimitError (429) all subclass RobinhoodAPIErrorRobinhoodError. Transient failures (429/5xx) are retried automatically with exponential backoff (max_retries, default 2).

Tiers

Tier Robinhood Chain endpoints
BASIC (free) KOL feed/leaderboard/hot-tokens/profile, token snapshot, buyer-quality, bundle, deployer-hunter leaderboard/profile
PRO+ + DEX trade tape, token discovery, candles, KOL consensus, alpha-wallets

Robinhood Chain is bundled into every tier at no extra cost. Get a key at madeonsol.com/pricing.

Also available for Robinhood Chain

Platform Package
TypeScript SDK robinhood-chain-sdk (npm)
Rust SDK robinhood-chain (crates.io)
MCP server mcp-server-robinhood-chain (npm)

Links

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robinhood_chain-0.1.2.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robinhood_chain-0.1.2-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file robinhood_chain-0.1.2.tar.gz.

File metadata

  • Download URL: robinhood_chain-0.1.2.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for robinhood_chain-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c8df3ab2847d04e8281353054bd484ffab1a49a02f783b0e9a0d94e3cd6c3c0c
MD5 3b48eb053b4defd3bbebeb417ab3bc99
BLAKE2b-256 0b2656e39cd87d3b424c93168dcb2d416fb188dff3751d113d02795f903aeaae

See more details on using hashes here.

File details

Details for the file robinhood_chain-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for robinhood_chain-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94611102ed639e429ecdcd6e1569a66525db415c22c18e49d83e261b642a36c4
MD5 b92f14a85e22f82e628ab2089d142111
BLAKE2b-256 c690a9846973941562f88f4c6fcb10f050dd41cb80c5653c1f40f75b3c1057a1

See more details on using hashes here.

Release history Release notifications | RSS feed

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page