curl --request POST \
--url https://pro-api.nikiwa.com/api/tools/get_wallet_stats \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"wallet_address": "<string>",
"network": "<string>",
"tokens": [
"<string>"
]
}
'import requests
url = "https://pro-api.nikiwa.com/api/tools/get_wallet_stats"
payload = {
"wallet_address": "<string>",
"network": "<string>",
"tokens": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({wallet_address: '<string>', network: '<string>', tokens: ['<string>']})
};
fetch('https://pro-api.nikiwa.com/api/tools/get_wallet_stats', 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://pro-api.nikiwa.com/api/tools/get_wallet_stats",
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([
'wallet_address' => '<string>',
'network' => '<string>',
'tokens' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://pro-api.nikiwa.com/api/tools/get_wallet_stats"
payload := strings.NewReader("{\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"tokens\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://pro-api.nikiwa.com/api/tools/get_wallet_stats")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"tokens\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pro-api.nikiwa.com/api/tools/get_wallet_stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"tokens\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"wallet_address": "0x1111111111111111111111111111111111111111",
"network": "ethereum",
"tokens": [
{
"symbol": "ETH",
"address": "Native",
"balance": 2,
"balance_usd": 5000,
"received": {
"total_amount": 3,
"total_amount_usd": 7500,
"count": 4
},
"sent": {
"total_amount": 1,
"total_amount_usd": 2500,
"count": 2
}
}
],
"activity_summary": {
"first_activity_date": "2026-01-01 00:00:00 UTC",
"last_activity_date": "2026-01-31 12:00:00 UTC"
},
"metadata": {
"cluster_name": null,
"category_name": null,
"account_type": null,
"label": null
}
}get_wallet_stats
Activity stats for a wallet: per-token sent/received, first/last activity, labels.
curl --request POST \
--url https://pro-api.nikiwa.com/api/tools/get_wallet_stats \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"wallet_address": "<string>",
"network": "<string>",
"tokens": [
"<string>"
]
}
'import requests
url = "https://pro-api.nikiwa.com/api/tools/get_wallet_stats"
payload = {
"wallet_address": "<string>",
"network": "<string>",
"tokens": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({wallet_address: '<string>', network: '<string>', tokens: ['<string>']})
};
fetch('https://pro-api.nikiwa.com/api/tools/get_wallet_stats', 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://pro-api.nikiwa.com/api/tools/get_wallet_stats",
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([
'wallet_address' => '<string>',
'network' => '<string>',
'tokens' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://pro-api.nikiwa.com/api/tools/get_wallet_stats"
payload := strings.NewReader("{\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"tokens\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://pro-api.nikiwa.com/api/tools/get_wallet_stats")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"tokens\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pro-api.nikiwa.com/api/tools/get_wallet_stats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"wallet_address\": \"<string>\",\n \"network\": \"<string>\",\n \"tokens\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"wallet_address": "0x1111111111111111111111111111111111111111",
"network": "ethereum",
"tokens": [
{
"symbol": "ETH",
"address": "Native",
"balance": 2,
"balance_usd": 5000,
"received": {
"total_amount": 3,
"total_amount_usd": 7500,
"count": 4
},
"sent": {
"total_amount": 1,
"total_amount_usd": 2500,
"count": 2
}
}
],
"activity_summary": {
"first_activity_date": "2026-01-01 00:00:00 UTC",
"last_activity_date": "2026-01-31 12:00:00 UTC"
},
"metadata": {
"cluster_name": null,
"category_name": null,
"account_type": null,
"label": null
}
}Reading the result
The response example uses made-up values and shows selected fields. Fields vary by network and available data.-
tokenscontains balances and separatereceivedandsenttotals and transfer counts for each asset. -
activity_summarygives the first and last activity dates found in the returned token statistics. -
metadatacontains account labels when available. Missing labels can benull.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Wallet address to analyze. Use the address format for the selected network.
Network to query, for example ethereum. See Supported Networks for coverage.
Optional token symbols or identifiers to filter activity, for example ["ETH"]. Omit to use the network's native-token default.
Response
Activity stats for a wallet: per-token sent/received, first/last activity, labels. Fields vary by network and available data. Check for status: no_data, status: error, or an error field even when HTTP status is 200. See Errors & status.
Response fields depend on the network and available data. The example shows selected fields; see Reading the result for details.
Was this page helpful?