import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPnlV2WalletOverview('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF');
curl --request GET \
--url https://data.solanatracker.io/v2/pnl/wallets/{wallet} \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/v2/pnl/wallets/{wallet}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://data.solanatracker.io/v2/pnl/wallets/{wallet}', 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://data.solanatracker.io/v2/pnl/wallets/{wallet}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://data.solanatracker.io/v2/pnl/wallets/{wallet}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.solanatracker.io/v2/pnl/wallets/{wallet}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/v2/pnl/wallets/{wallet}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"wallet": "CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"pnlMode": "strict",
"identity": {
"name": "Cented",
"twitter": "@Cented7",
"avatar": "https://kol-avatar.solanatracker.io/CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"platforms": [
"axiom",
"bloom"
],
"type": "kol",
"tags": [
"kol",
"axiom",
"bloom"
]
},
"summary": {
"pnl": {
"realized": 10705447.32,
"unrealized": 1395.74,
"total": 10706843.06
},
"invested": 49779099.94,
"proceeds": 60484547.26,
"openPositions": {
"cost": 5118.14,
"value": 7855.98
},
"counts": {
"buys": 196215,
"sells": 138588,
"trades": 334803,
"tokensTraded": 78676,
"tokensHeldEver": 78553
},
"averages": {
"buy": 259.77,
"sell": 436.43
},
"roi": 21.51,
"timing": {
"firstTrade": 1738348560665,
"lastTrade": 1777057718629,
"avgHoldTimeSecs": 20391
}
},
"analysis": {
"winRate": 61.17,
"avgPnlPerAsset": 135.12,
"avgBuyValue": 648.88,
"tokens": {
"closed": 78518,
"winning": 48029,
"losing": 30375
},
"distribution": [
{
"range": ">500%",
"count": 145,
"rate": 0.18
},
{
"range": "200-500%",
"count": 1068,
"rate": 1.36
},
{
"range": "50-200%",
"count": 10662,
"rate": 13.58
},
{
"range": "0-50%",
"count": 36273,
"rate": 46.2
},
{
"range": "-50-0%",
"count": 29252,
"rate": 37.26
},
{
"range": "<-50%",
"count": 1118,
"rate": 1.42
}
]
},
"stats": {
"total": 78676,
"holding": 100,
"sold": 78424,
"profitable": 48041,
"losing": 30370
},
"tags": {
"isArbitrage": false,
"platforms": [
"axiom-flash",
"bloom"
]
},
"updatedAt": "2026-04-24T19:08:38.649Z"
}{
"error": "<string>"
}{
"error": "<string>"
}Get Wallet Summary
钱包级交易概览:总盈亏、胜率、均值、笔数、ROI 分桶、平台标签及 summary.timing.avgHoldTimeSecs。逐代币明细请用 /positions。传 ?currency=sol 或 ?currency=eur 可按当前现货参考价在读取时转换金额字段。
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPnlV2WalletOverview('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF');
curl --request GET \
--url https://data.solanatracker.io/v2/pnl/wallets/{wallet} \
--header 'x-api-key: <api-key>'import requests
url = "https://data.solanatracker.io/v2/pnl/wallets/{wallet}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://data.solanatracker.io/v2/pnl/wallets/{wallet}', 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://data.solanatracker.io/v2/pnl/wallets/{wallet}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://data.solanatracker.io/v2/pnl/wallets/{wallet}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://data.solanatracker.io/v2/pnl/wallets/{wallet}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/v2/pnl/wallets/{wallet}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"wallet": "CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"pnlMode": "strict",
"identity": {
"name": "Cented",
"twitter": "@Cented7",
"avatar": "https://kol-avatar.solanatracker.io/CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"platforms": [
"axiom",
"bloom"
],
"type": "kol",
"tags": [
"kol",
"axiom",
"bloom"
]
},
"summary": {
"pnl": {
"realized": 10705447.32,
"unrealized": 1395.74,
"total": 10706843.06
},
"invested": 49779099.94,
"proceeds": 60484547.26,
"openPositions": {
"cost": 5118.14,
"value": 7855.98
},
"counts": {
"buys": 196215,
"sells": 138588,
"trades": 334803,
"tokensTraded": 78676,
"tokensHeldEver": 78553
},
"averages": {
"buy": 259.77,
"sell": 436.43
},
"roi": 21.51,
"timing": {
"firstTrade": 1738348560665,
"lastTrade": 1777057718629,
"avgHoldTimeSecs": 20391
}
},
"analysis": {
"winRate": 61.17,
"avgPnlPerAsset": 135.12,
"avgBuyValue": 648.88,
"tokens": {
"closed": 78518,
"winning": 48029,
"losing": 30375
},
"distribution": [
{
"range": ">500%",
"count": 145,
"rate": 0.18
},
{
"range": "200-500%",
"count": 1068,
"rate": 1.36
},
{
"range": "50-200%",
"count": 10662,
"rate": 13.58
},
{
"range": "0-50%",
"count": 36273,
"rate": 46.2
},
{
"range": "-50-0%",
"count": 29252,
"rate": 37.26
},
{
"range": "<-50%",
"count": 1118,
"rate": 1.42
}
]
},
"stats": {
"total": 78676,
"holding": 100,
"sold": 78424,
"profitable": 48041,
"losing": 30370
},
"tags": {
"isArbitrage": false,
"platforms": [
"axiom-flash",
"bloom"
]
},
"updatedAt": "2026-04-24T19:08:38.649Z"
}{
"error": "<string>"
}{
"error": "<string>"
}SDK Example
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.getPnlV2WalletOverview('FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF');
授权
用于鉴权的 API Key
路径参数
Solana 钱包地址(Base58,约 32–44 字符)
^[1-9A-HJ-NP-Za-km-z]{32,44}$查询参数
对被无效 PnL 启发式标记的仓位:strict 归零;adjusted 按成本基础封顶;raw 不改动已实现盈亏。API 也接受别名 pnl_mode 与 mode。
strict, adjusted, raw 响应金额字段的计价单位,默认 usd。传 sol 或 eur 时按 ClickHouse 参考价在读取时将美元快照换算;历史端点按各快照日汇率,钱包摘要用现货。笔数、百分比、时间戳与 ROI 不换算;无效值返回 400。
usd, sol, eur 响应
Successful response.
strict, adjusted, raw Response denomination when ?currency=sol or ?currency=eur is requested. Omitted for the default USD response.
sol, eur Unified wallet identity. Only fields with known values are returned; a wallet can carry multiple tags at once.
Show child attributes
Show child attributes
Aggregated wallet-level PnL summary across all positions.
Show child attributes
Show child attributes
Win/loss analysis computed across all closed positions.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Metadata tags about the wallet.
Show child attributes
Show child attributes
此页面对您有帮助吗?