SDK
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.batchPnlV2WalletSummaries(['FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF']);
curl --request POST \
--url https://data.solanatracker.io/v2/pnl/wallets/batch \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"wallets": [
"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
]
}
'import requests
url = "https://data.solanatracker.io/v2/pnl/wallets/batch"
payload = { "wallets": ["CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o", "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
wallets: [
'CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o',
'vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg'
]
})
};
fetch('https://data.solanatracker.io/v2/pnl/wallets/batch', 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/batch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'wallets' => [
'CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o',
'vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://data.solanatracker.io/v2/pnl/wallets/batch"
payload := strings.NewReader("{\n \"wallets\": [\n \"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o\",\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://data.solanatracker.io/v2/pnl/wallets/batch")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"wallets\": [\n \"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o\",\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/v2/pnl/wallets/batch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallets\": [\n \"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o\",\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"count": 1,
"wallets": [
{
"wallet": "CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"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": 8614.39,
"value": 10010.13
},
"counts": {
"buys": 193041,
"sells": 141762,
"trades": 334803,
"tokensTraded": 78676,
"tokensHeldEver": 78195
},
"averages": {
"buy": 257.87,
"sell": 426.66
},
"roi": 21.51,
"timing": {
"firstTrade": 1713909067699,
"lastTrade": 1777034218124
}
},
"tags": {
"isArbitrage": false,
"platforms": [
"axiom",
"bloom"
]
},
"updatedAt": 1777034218124
}
],
"notFound": [
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
]
}{
"error": "<string>"
}{
"error": "<string>"
}Batch
Get Wallet Summaries Batch
Hasta 100 carteras: resumen PnL, identidad y tags. Sin datos en notFound, direcciones inválidas en invalid, exceso con objeto truncated.
POST
/
v2
/
pnl
/
wallets
/
batch
SDK
import { Client } from '@solana-tracker/data-api';
const client = new Client({ apiKey: 'YOUR_API_KEY' });
const data = await client.batchPnlV2WalletSummaries(['FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF']);
curl --request POST \
--url https://data.solanatracker.io/v2/pnl/wallets/batch \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"wallets": [
"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
]
}
'import requests
url = "https://data.solanatracker.io/v2/pnl/wallets/batch"
payload = { "wallets": ["CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o", "vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
wallets: [
'CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o',
'vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg'
]
})
};
fetch('https://data.solanatracker.io/v2/pnl/wallets/batch', 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/batch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'wallets' => [
'CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o',
'vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://data.solanatracker.io/v2/pnl/wallets/batch"
payload := strings.NewReader("{\n \"wallets\": [\n \"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o\",\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://data.solanatracker.io/v2/pnl/wallets/batch")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"wallets\": [\n \"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o\",\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://data.solanatracker.io/v2/pnl/wallets/batch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallets\": [\n \"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o\",\n \"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"count": 1,
"wallets": [
{
"wallet": "CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"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": 8614.39,
"value": 10010.13
},
"counts": {
"buys": 193041,
"sells": 141762,
"trades": 334803,
"tokensTraded": 78676,
"tokensHeldEver": 78195
},
"averages": {
"buy": 257.87,
"sell": 426.66
},
"roi": 21.51,
"timing": {
"firstTrade": 1713909067699,
"lastTrade": 1777034218124
}
},
"tags": {
"isArbitrage": false,
"platforms": [
"axiom",
"bloom"
]
},
"updatedAt": 1777034218124
}
],
"notFound": [
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
]
}{
"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.batchPnlV2WalletSummaries(['FbMxP3GVq8TQ36nbYgx4NP9iygMpwAwFWJwW81ioCiSF']);
Autorizaciones
Clave API
Cuerpo
application/json
Wallet addresses to summarize. Up to 100 unique valid wallets are processed.
Maximum array length:
100Ejemplo:
[
"CyaE1VxvBrahnPWkqm5VsdCvyS2QmNht2UFrKJHga54o",
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"
]
Respuesta
Wallet summaries found.
Number of wallets returned.
Show child attributes
Show child attributes
Valid wallets with no indexed summary. Omitted when empty.
Wallet addresses that failed Base58 validation. Omitted when empty.
Returned when more than 100 unique valid wallets are submitted.
Show child attributes
Show child attributes
¿Esta página le ayudó?