curl --request POST \
--url https://pro-api.nikiwa.com/api/tools/get_wallet_stablecoin_compliance \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"wallet_address": "<string>"
}
'import requests
url = "https://pro-api.nikiwa.com/api/tools/get_wallet_stablecoin_compliance"
payload = { "wallet_address": "<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>'})
};
fetch('https://pro-api.nikiwa.com/api/tools/get_wallet_stablecoin_compliance', 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_stablecoin_compliance",
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>'
]),
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_stablecoin_compliance"
payload := strings.NewReader("{\n \"wallet_address\": \"<string>\"\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_stablecoin_compliance")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"wallet_address\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pro-api.nikiwa.com/api/tools/get_wallet_stablecoin_compliance")
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}"
response = http.request(request)
puts response.read_body{
"type": "stablecoin_compliance_history",
"data": {
"address": "0x1111111111111111111111111111111111111111",
"detected_family": "evm",
"queried_issuers": [
"circle",
"tether"
],
"events": [
{
"issuer": "tether",
"asset": "USDT",
"network": "ethereum",
"action": "blacklist",
"address": "0x1111111111111111111111111111111111111111",
"tx_hash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"timestamp": 1769860800,
"timestamp_iso": "2026-01-31T12:00:00+00:00",
"amount": null
}
],
"summary": {
"tether": {
"ever_blacklisted": true,
"currently_blacklisted_on": [
"ethereum"
],
"destroyed_total": "0"
}
},
"errors": []
}
}get_wallet_stablecoin_compliance
Stablecoin compliance history for an address: blacklist, unblacklist, and freeze events with timestamps. Detects the chain automatically across EVM chains, Tron, Solana, and Bitcoin. No network argument is needed.
curl --request POST \
--url https://pro-api.nikiwa.com/api/tools/get_wallet_stablecoin_compliance \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"wallet_address": "<string>"
}
'import requests
url = "https://pro-api.nikiwa.com/api/tools/get_wallet_stablecoin_compliance"
payload = { "wallet_address": "<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>'})
};
fetch('https://pro-api.nikiwa.com/api/tools/get_wallet_stablecoin_compliance', 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_stablecoin_compliance",
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>'
]),
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_stablecoin_compliance"
payload := strings.NewReader("{\n \"wallet_address\": \"<string>\"\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_stablecoin_compliance")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"wallet_address\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pro-api.nikiwa.com/api/tools/get_wallet_stablecoin_compliance")
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}"
response = http.request(request)
puts response.read_body{
"type": "stablecoin_compliance_history",
"data": {
"address": "0x1111111111111111111111111111111111111111",
"detected_family": "evm",
"queried_issuers": [
"circle",
"tether"
],
"events": [
{
"issuer": "tether",
"asset": "USDT",
"network": "ethereum",
"action": "blacklist",
"address": "0x1111111111111111111111111111111111111111",
"tx_hash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"timestamp": 1769860800,
"timestamp_iso": "2026-01-31T12:00:00+00:00",
"amount": null
}
],
"summary": {
"tether": {
"ever_blacklisted": true,
"currently_blacklisted_on": [
"ethereum"
],
"destroyed_total": "0"
}
},
"errors": []
}
}Reading the result
The response example uses made-up values and shows selected fields. Fields vary by network and available data.-
data.eventslists issuer actions, newest first, with the network, transaction hash, and timestamp.amountis present when the action has an amount. -
data.summarygroups history by issuer.currently_blacklisted_onis inferred from the latest blacklist and unblacklist events found on each network. -
Check
queried_networks,unsupported_cells, anderrorsfor coverage. The excerpt shows one network; the API wrapper searches the default supported networks. Use the blacklist-status tool for a specific issuer and network.
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.
Response
Stablecoin compliance history for an address: blacklist, unblacklist, and freeze events with timestamps. Detects the chain automatically across EVM chains, Tron, Solana, and Bitcoin. No network argument is needed. 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?