---
title: "Alias of /rhc/alpha-wallets (PRO+)"
method: GET
path: "/rhc/alpha/leaderboard"
tags: ["Robinhood Chain"]
---

# Alias of /rhc/alpha-wallets (PRO+)

`GET /rhc/alpha/leaderboard`

## Request

- Base URL: `https://madeonsol.com/api/v1`
- URL: `https://madeonsol.com/api/v1/rhc/alpha/leaderboard`
- Auth: HTTP bearer

Path alias matching Solana's `/alpha/leaderboard`. Identical handler, including the PRO+ gate. Tier: **PRO**.

## Response `200`

Identical to `/rhc/alpha-wallets`.

- object
  - `chain` 'robinhood'
  - `wallets` object[]
    - `wallet` string: Trader EOA (lowercase 0x).
    - `classification` 'bot' | 'smart_money' | 'trader'
    - `is_known_kol` boolean
    - `trades` integer
    - `tokens` integer
    - `buy_eth` number
    - `sell_eth` number
    - `net_eth` number: Realized net flow (sell − buy).
    - `win_rate` number, nullable
    - `memecoin_share` number, nullable: Share of trades in launchpad memecoins (vs tokenized stocks/stables).
    - `avg_trade_mc_usd` number, nullable
    - `last_trade_at` string, date-time, nullable
    - `zero_cost_share` number, nullable: Share of gross ETH extracted from tokens with no recorded buy (deployer/insider dumps). Null = never sold. ≥0.5 wallets are excluded unless include_zero_cost_dumps=true.
  - `total` integer
  - `limit` integer
  - `offset` integer
  - `has_more` boolean
  - `attribution` object: Interim attribution disclosure: mv_rhc_alpha_wallets is built from attributed trades only (`trader_eoa IS NOT NULL`), and trader_eoa was only written reliably from 2026-07-18 — pre-floor history is not reflected in win_rate/net_eth/classification. Removed once the trader_eoa backfill lands.
    - `attribution_complete_from` string, date-time
    - `note` string

## Other responses

- `401`: Missing or invalid API key, or an expired free-tier key. Authentication-stage error: no `X-RateLimit-*` headers, no `_rid`.
- `403`: PRO+ tier required.
- `429`: Too many requests. Every 429 carries `Retry-After`. A quota 429 (`rate_limit_exceeded`, with `X-RateLimit-*`), a heavy-query concurrency 429 (`error_kind` `concurrency`/`capacity`), or the per-IP authentication-failure block (30 failed auths/min; plain `error` + `retry_after_seconds`, no `X-RateLimit-*`).
- `500`: Unexpected server error from the route (`Internal server error`, with `_rid`). Safe to retry with backoff. A failed API-key lookup is a 503 `auth_backend_unavailable`, never a 500.
- `503`: Temporarily unavailable — a Postgres statement timeout while the dataset is under load or maintenance (`statement_timeout`, with `X-RateLimit-*` and `_rid`), or the API-key lookup itself unavailable (`auth_backend_unavailable`, authentication stage: no `X-RateLimit-*`, no `_rid`, not counted as a failed authentication). Always carries `Retry-After`; honour it.

---

[API](https://skmtc.dev/madeonsol/apis/madeonsol-api.md) · [All operations](https://skmtc.dev/madeonsol/apis/madeonsol-api/llms.txt) · [OpenAPI document](https://skmtc.dev/madeonsol/apis/madeonsol-api/revisions/96ce84657f55?raw)
