---
title: "Robinhood Chain shared-funder evidence for a tracked wallet (PRO+)"
method: GET
path: "/rhc/wallet/{address}/funding"
tags: ["Robinhood Chain"]
---

# Robinhood Chain shared-funder evidence for a tracked wallet (PRO+)

`GET /rhc/wallet/{address}/funding`

## Request

- Base URL: `https://madeonsol.com/api/v1`
- URL: `https://madeonsol.com/api/v1/rhc/wallet/{address}/funding`
- Auth: HTTP bearer

Robinhood Chain (eip155:4663). Addresses that sent a qualifying native ETH or ERC-20 transfer to this wallet AND to other tracked wallets (KOL EVM wallets, elite/good deployers), with the supporting transactions. Evidence of a funding connection — not proof of common ownership. Internal (contract → wallet) ETH transfers are not observed. Forward-looking coverage from monitoring start; no historical backfill.

## Path parameters

- `address` string, required

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

OK. `status`: ok | partial_coverage | not_tracked | collection_disabled | collection_stale | not_started. `collection_stale` = the collector has not reported within the staleness window, so evidence after `coverage.heartbeat_at` may be missing. An empty `shared_funders` with status ok means no shared funder was OBSERVED within coverage — never that wallets are independent.

- object
  - `chain` 'solana' | 'robinhood'
  - `chain_id` string
  - `native_asset` string
  - `address` string
  - `status` 'ok' | 'partial_coverage' | 'not_tracked' | 'collection_disabled' | 'collection_stale' | 'not_started'
  - `summary` string
  - `shared_funders` object[]
    - `funder` string
    - `funder_explorer_url` string
    - `funder_label` object, nullable
      - `label` string
      - `category` string
      - `verified` boolean
    - `service_funder` boolean: Known exchange/service: a common funding source, not a connection signal
    - `to_this_wallet` object[]
      - `asset` string: 'native' or the token contract
      - `symbol` string, nullable
      - `decimals` integer, nullable
      - `amount_raw` string: Exact integer (raw units)
      - `amount` string, nullable: Exact decimal string when decimals are known
      - `transfer_count` integer
      - `first_seen` string, date-time: Chain block time of the earliest transfer when resolved; otherwise the collector's observation time (Solana block times are resolved asynchronously and can stay unknown after bounded retries). Not a guaranteed on-chain timestamp.
      - `last_seen` string, date-time: Same basis as first_seen, for the latest transfer.
      - `transactions` object[]
        - `tx` string
        - `explorer_url` string
    - `connected_wallets` object[]
      - `address` string
      - `explorer_url` string
      - `tracked_as` string[]
      - `transfers` object[]
        - `asset` string: 'native' or the token contract
        - `symbol` string, nullable
        - `decimals` integer, nullable
        - `amount_raw` string: Exact integer (raw units)
        - `amount` string, nullable: Exact decimal string when decimals are known
        - `transfer_count` integer
        - `first_seen` string, date-time: Chain block time of the earliest transfer when resolved; otherwise the collector's observation time (Solana block times are resolved asynchronously and can stay unknown after bounded retries). Not a guaranteed on-chain timestamp.
        - `last_seen` string, date-time: Same basis as first_seen, for the latest transfer.
        - `transactions` object[]
          - `tx` string
          - `explorer_url` string
  - `pagination` object
    - `limit` integer
    - `offset` integer
    - `total` integer
    - `has_more` boolean
  - `coverage` object: collection_enabled, mode (off|shadow|on), heartbeat_at, collector_current, monitoring_started_at, last_committed_position, last_committed_at, tracked_intervals, known_gaps, supported/unsupported transfer types, recovery, history note
  - `disclaimer` string
  - `direct_funding` object: Optional, additive: where THIS wallet was funded from (the same block as `funding` on the wallet/deployer profiles). Absent when the direct read fails — the shared-funder answer above still stands. `observed: false` carries `coverage`, `coverage_explanation`, `observation_started_at` and `note` (no funding observed within coverage is not evidence the wallet was never funded). `observed: true` adds the coverage fields, `asset_scope`, `native_funding`, `token_funding`, `sources[]` and `source_count` (PRO); cross-wallet `relationships` counts are ULTRA+ and removed below ULTRA.
    - `observed` boolean
    - `coverage` string: Coverage level of the funding evidence, e.g. forward_only.
    - `coverage_explanation` string
    - `observation_started_at` string, date-time, nullable
    - `note` string
  - `wallet_coverage` object: What the funding collector can see for THIS address. not_tracked: no evidence is collected for it at all; internal_transfers_not_visible (RHC): tracked, but the address is a contract / EIP-7702 smart account whose native funding typically arrives as internal value the node cannot show.
    - `state` 'tracked' | 'not_tracked' | 'internal_transfers_not_visible'
    - `currently_tracked` boolean
    - `ever_tracked` boolean
    - `address_kind` 'eoa' | 'eoa_7702' | 'contract' | 'unknown', nullable
    - `limitations` string[]

## Other responses

- `400`: Invalid address or query parameters.
- `401`: Missing or invalid API key.
- `403`: Tier below PRO.
- `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`: `code: feature_disabled` (feature switched off by the operator; on in production since 2026-09-20) or `code: funding_data_unavailable` (data error — NOT an empty result; retry).

---

[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/9ea9a35ee2bf?raw)
