メインコンテンツへスキップ
GET
/
v2
/
token
/
{chain}
/
{tokenAddress}
/
holders
トークン - 保有者
curl --request GET \
  --url https://api.chainstream.io/v2/token/{chain}/{tokenAddress}/holders \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.chainstream.io/v2/token/{chain}/{tokenAddress}/holders"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.chainstream.io/v2/token/{chain}/{tokenAddress}/holders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.chainstream.io/v2/token/{chain}/{tokenAddress}/holders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.chainstream.io/v2/token/{chain}/{tokenAddress}/holders"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.chainstream.io/v2/token/{chain}/{tokenAddress}/holders")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.chainstream.io/v2/token/{chain}/{tokenAddress}/holders")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "data": [
    {
      "amount": "1000000000000000000",
      "amountInUsd": "1000000000000000000",
      "percentage": "100",
      "walletAddress": "0x1234567890abcdef",
      "accountAddress": "<string>",
      "accuAmount": "<string>",
      "accuCost": "<string>",
      "addrType": 123,
      "addressLabel": "<string>",
      "amountInNative": "<string>",
      "avgBuyPriceUsd": "<string>",
      "avgCostUsd": "<string>",
      "avgSellPriceUsd": "<string>",
      "buyAmountCur": "<string>",
      "buyVolumeNative": "<string>",
      "buyVolumeUsd": "<string>",
      "createdAt": 123,
      "endHoldingAt": 123,
      "exchange": "<string>",
      "firstBuyTime": 123,
      "historyBoughtCost": "<string>",
      "historyBoughtFee": "<string>",
      "historySoldFee": "<string>",
      "historySoldIncome": "<string>",
      "historyTransferInAmount": "<string>",
      "historyTransferInCost": "<string>",
      "historyTransferOutAmount": "<string>",
      "historyTransferOutFee": "<string>",
      "historyTransferOutIncome": "<string>",
      "isClosed": true,
      "isNew": true,
      "isTransferIn": true,
      "lastActiveAt": 123,
      "lastBlock": 123,
      "lossCount": 123,
      "makerTokenTags": [
        "<string>"
      ],
      "nativeBalance": "<string>",
      "netflowAmount": "<string>",
      "netflowAmountUsd": "<string>",
      "netflowUsd": "<string>",
      "positionCostUsd": "<string>",
      "realizedPnlRatio": "<string>",
      "realizedProfit": "<string>",
      "roi": "<string>",
      "sellAmountCur": "<string>",
      "sellAmountPercentage": "<string>",
      "sellVolumeNative": "<string>",
      "sellVolumeUsd": "<string>",
      "startHoldingAt": 123,
      "tags": [
        "<string>"
      ],
      "tokenTransferIn": "<unknown>",
      "tokenTransferOut": "<unknown>",
      "totalBuyCount": 123,
      "totalCostUsd": "<string>",
      "totalProfit": "<string>",
      "totalSellCount": 123,
      "transferInAmount7d": "<string>",
      "transferInCount": 123,
      "transferOutAmount7d": "<string>",
      "transferOutCount": 123,
      "unrealizedPnlRatio": "<string>",
      "unrealizedProfit": "<string>",
      "walletTagV2": "<string>",
      "winCount": 123
    }
  ],
  "endCursor": "eyJpZCI6ImVuZCJ9",
  "hasNext": false,
  "hasPrev": false,
  "startCursor": "eyJpZCI6InN0YXJ0In0=",
  "total": 564094
}
トークンのホルダー一覧と残高を取得します。上位のホルダーのみを取得したい場合は、topHolders エンドポイントを利用してください。
関連: GraphQL ホルダー | MCP: token_get_holders

承認

Authorization
string
header
必須

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

パスパラメータ

chain
enum<string>
必須

サポートされているネットワークに記載されているチェーン名 Supported blockchain chains

利用可能なオプション:
sol,
eth,
bsc
tokenAddress
string
必須

トークンのアドレス

クエリパラメータ

cursor
string

ページネーションカーソル

limit
integer<int64>
デフォルト:20

ページあたりの結果数

direction
enum<string>
デフォルト:next

ページネーション方向(next または prev) Pagination direction

利用可能なオプション:
next,
prev
sortBy
enum<string>

DTO.TOKEN.HOLDERS.SORT_BY Sort by: amountPercentage (default) | holdingUsd | usdValue | totalPnl | realizedPnl | unrealizedPnl | buyVolume | sellVolume | netflowUsd | lastActiveAt | createdAt Sort field for token holders query

利用可能なオプション:
amountPercentage,
holdingUsd,
usdValue,
totalPnl,
realizedPnl,
unrealizedPnl,
buyVolume,
sellVolume,
netflowUsd,
lastActiveAt,
createdAt
sortDirection
enum<string>

Sort direction: desc (default) | asc Sort direction (case-insensitive: accepts "asc"/"ASC"/"Asc" etc.)

利用可能なオプション:
asc,
desc
tag
enum<string>

Filter by wallet tag: smart | kol | sniper | dev | bundle | bluechip | fresh | insider | pro | sandwich | phishing Token trader tag

利用可能なオプション:
smart,
kol,
sniper,
dev,
bundle,
bluechip,
fresh,
insider,
pro,
sandwich,
phishing
minCostUsd
string

Minimum position cost in USD (inclusive). Filters out holders whose open position cost is below this threshold. Maps to OpenSearch field position_cost_in_usd.

レスポンス

200 - application/json

保有者を取得

Generic pagination response

data
object[]
必須

Page data

endCursor
string | null

Cursor for the end of current page

:

"eyJpZCI6ImVuZCJ9"

hasNext
boolean

Whether there is a next page

:

false

hasPrev
boolean

Whether there is a previous page

:

false

startCursor
string | null

Cursor for the start of current page

:

"eyJpZCI6InN0YXJ0In0="

total
integer<int64> | null

Total number of items matching the query (not just the current page). When None, the caller should treat it as unknown (backward-compatible).

:

564094