---
title: "GET /v2/market/tokens/{chain_id}/{address}/holders"
method: GET
path: "/v2/market/tokens/{chain_id}/{address}/holders"
tags: ["Product Market"]
---

# GET /v2/market/tokens/{chain_id}/{address}/holders

`GET /v2/market/tokens/{chain_id}/{address}/holders`

## Request

- Base URL: `https://api.arbital.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.arbital.xyz/v2/market/tokens/{chain_id}/{address}/holders`
- Auth: HTTP bearer

Returns a bounded, display-only Mobula top-holder snapshot enriched from permitted public CALLD, FOMO, and Pump identities. Known pools, contracts, and lockers are excluded; unclassified addresses remain visible and are not verified human wallets. Arc remains outside the existing chain allowlist. Buy/sell counts are provider totals; P&L is a provider gross estimate with fees excluded. Holder facts are request-time observations and are never portfolio, quote, or execution authority.

## Path parameters

- `chain_id` 'solana:mainnet-beta' | 'eip155:1' | 'eip155:56' | 'eip155:4663' | 'eip155:8453', required
- `address` string, required

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

Current holder facts plus available public platform identity matches

- ProductMarketHolderProfilesResponseV1
  - `asset` union, required
    - object
      - `address` string, required
      - `chain_id` 'solana:mainnet-beta', required
    - object
      - `address` string, required
      - `chain_id` 'eip155:1' | 'eip155:56' | 'eip155:143' | 'eip155:4663' | 'eip155:5042' | 'eip155:8453' | 'eip155:42161', required
  - `enrichment_status` 'available' | 'unavailable', required
  - `freshness` 'fresh' | 'stale', required
  - `items` ProductMarketHolderProfileV1[], required
    - `address` string, required
    - `average_cost_usd` string, nullable, required
    - `balance` string, required
    - `buy_transaction_count` string, required: Mobula total transaction count for this wallet and token, not restricted to the current position.
    - `friend_match` boolean, nullable, required
    - `gmgn_avatar_url` string, nullable, required: Retained for compatibility; unavailable from the Mobula holder mapping and returned as null.
    - `gmgn_name` string, nullable, required: Retained for compatibility; unavailable from the Mobula holder mapping and returned as null.
    - `gmgn_twitter_username` string, nullable, required: Retained for compatibility; unavailable from the Mobula holder mapping and returned as null.
    - `holding_pct` string, required: Percentage points of total token supply.
    - `holding_value_usd` string, required
    - `maker_token_tags` string[], required: Retained for compatibility; returned as an empty array.
    - `profiles` ProductMarketHolderPlatformProfileV1[], required
      - `avatar_url` string, nullable, required: For CALLD profiles, the approved image or stable default; external profiles may be null.
      - `display_name` string, nullable, required
      - `platform` 'calld' | 'fomo' | 'pump', required
      - `platform_profile_id` string, required
      - `profile_observed_at_ms` string, nullable, required
      - `username` string, nullable, required
      - `viewer_follows` boolean, nullable, required
      - `wallet_verified_at_ms` string, nullable, required
    - `rank` integer, required
    - `realized_profit_usd` string, nullable, required
    - `sell_transaction_count` string, required: Mobula total transaction count for this wallet and token, not restricted to the current position.
    - `sold_pct` string, nullable, required
    - `started_holding_at_ms` string, nullable, required
    - `tags` string[], required: Mobula provider labels for display only; not evidence of public-profile identity.
    - `unrealized_pnl_pct` string, nullable, required
    - `unrealized_profit_usd` string, nullable, required
  - `next_cursor` string, nullable, required
  - `observed_at_ms` string, required
  - `percentage_basis` 'total_supply', required

## Other responses

- `400`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `401`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `408`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `409`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `413`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `503`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.

---

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