---
title: "A Robinhood Chain developer's launches and own-token buys/sells as one timeline (PRO+)"
method: GET
path: "/rhc/deployer-hunter/{address}/activity"
tags: ["Robinhood Chain"]
---

# A Robinhood Chain developer's launches and own-token buys/sells as one timeline (PRO+)

`GET /rhc/deployer-hunter/{address}/activity`

## Request

- Base URL: `https://madeonsol.com/api/v1`
- URL: `https://madeonsol.com/api/v1/rhc/deployer-hunter/{address}/activity`
- Auth: HTTP bearer

The REST timeline behind the `rhc:dev_activity` WS channel (2026-10-15). Events: `launch` (a token whose recorded deployer is this address), `dev_buy` / `dev_sell` (a trade of one of those tokens by this address itself, the effective trading account with ERC-4337 senders resolved). Same developer definition as the WS producer, and `event_id` equals the WS event id, so REST and WS can be joined. `attribution` `creator` = seen at launch, `pool_creator` = only the first pool's creator is known (weaker).

One event per trade leg, newest first, keyset paged over both sources with `next_cursor`. The trade scan is bounded: `coverage.scan_truncated` + `next_cursor` say where it stopped, never a false end. Window: `since` (default 30 days, at most 90). `coverage.dev_trades_complete_from` is the later of the window start and the Postgres floor; older months are in the archive and not read (`archive_required_before`).

**Not included (v1):** developer token transfers, trades from other wallets of the same person, history below `dev_trades_complete_from`. An empty timeline is not proof that nothing happened outside those bounds.

## Path parameters

- `address` string, required

## Query parameters

- `limit` integer
- `since` string, date-time
- `types` string
- `cursor` string

## Response `200`

OK. An address with no attributed token returns an empty timeline with `coverage.tokens_attributed: 0`.

- object
  - `chain` 'robinhood'
  - `address` string
  - `events` object[]
    - `id` string: Stable timeline key: t:<trade row id> or l:<token>.
    - `type` 'launch' | 'dev_buy' | 'dev_sell'
    - `at` string, date-time: Chain time (launch: first seen).
    - `block_number` integer, nullable
    - `token_address` string
    - `token_symbol` string, nullable
    - `attribution` 'creator' | 'pool_creator'
    - `token_name` string, nullable: launch only
    - `launchpad` string, nullable: launch only
    - `event_id` string: dev trades only: the rhc:dev_activity id dx1:<tx>:<token>:<type>:<actor>
    - `tx_hash` string
    - `log_index` integer, nullable
    - `dex` string, nullable
    - `eth_amount` number, nullable
    - `token_amount_raw` string, nullable: Raw uint256 of the token leg.
    - `price_usd` number, nullable
  - `count` integer
  - `summary` object
    - `launches` integer
    - `dev_buys` integer
    - `dev_sells` integer
  - `next_cursor` string, nullable
  - `has_more` boolean
  - `window` object
    - `since` string, date-time
    - `max_days` integer
  - `coverage` object
    - `tokens_attributed` integer
    - `tokens_truncated` boolean
    - `dev_trades_complete_from` string, date-time, nullable: Null when the archive floor is unknown.
    - `archive_required_before` string, date-time, nullable
    - `trades_scanned` integer
    - `scan_truncated` boolean
    - `transfers_included` false
    - `linked_wallets_included` false
  - `note` string

## Other responses

- `400`: Invalid address or query parameters
- `401`: Missing or invalid API key, or an expired free-tier key. Authentication-stage error: no `X-RateLimit-*` headers, no `_rid`.
- `403`: Tier gate - PRO 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

---

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