Approvals with threat risks
curl --request GET \
--url https://api.webacy.com/addresses/{address}/approvals \
--header 'x-api-key: <api-key>'import requests
url = "https://api.webacy.com/addresses/{address}/approvals"
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://api.webacy.com/addresses/{address}/approvals', 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.webacy.com/addresses/{address}/approvals",
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://api.webacy.com/addresses/{address}/approvals"
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://api.webacy.com/addresses/{address}/approvals")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.webacy.com/addresses/{address}/approvals")
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{
"token_address": "<string>",
"chain_id": "<string>",
"token_name": "<string>",
"token_symbol": "<string>",
"decimals": 123,
"balance": "<string>",
"is_open_source": "<string>",
"malicious_address": "<string>",
"malicious_behavior": "<string>",
"token_type": "<string>",
"approved_list": [
{
"approved_contract": "0xdc9524a8774dc2956bdb8b55fdf91938757f3185",
"approved_amount": "2134234.234234",
"approved_time": 1709418647,
"initial_approval_time": 1709418647,
"initial_approval_hash": "0x9a10e981d8f5b0cd521195b43d5f1021faa460ef6d646c901507d0bc2f17257e",
"hash": "0x9a10e981d8f5b0cd521195b43d5f1021faa460ef6d646c901507d0bc2f17257e",
"address_info": {},
"risk": {
"transaction": {
"transaction_hash": "0x6cd992fcf67cc17f6d9be1f9aec8433d75471d3b58e3b32c473fdcb1c0536439",
"transaction_id": "external",
"from_to_address": "0x3ee18b2214aff97000d974cf647e7c347e8fa585",
"is_contract": true,
"contract_address": "0xa9937f7bfacf7747d65b0dfb4a3e78fecca9c22a",
"address_risk_data": {
"mixer": "0",
"reinit": "0",
"fake_kyc": "0",
"gas_abuse": "0",
"cybercrime": "0",
"sanctioned": "0",
"data_source": "SlowMist,BlockSec",
"blacklist_doubt": "0",
"financial_crime": "0",
"stealing_attack": "0",
"contract_address": "0",
"money_laundering": "0",
"phishing_activities": "0",
"blackmail_activities": "0",
"darkweb_transactions": "0",
"fake_standard_interface": "0",
"honeypot_related_address": "0",
"malicious_mining_activities": "0",
"number_of_malicious_contracts_created": "0",
"label_info": {
"label_type": "dex",
"label_name": "Raydium AMM",
"label_subtype": "amm"
},
"cex_info": {
"is_cex": true,
"cex_name": "Binance",
"cex_address_type": "hot_wallet",
"cex_address_subtype": "deposit"
}
},
"token_risk_data": {
"mixer": "0",
"reinit": "0",
"fake_kyc": "0",
"gas_abuse": "0",
"cybercrime": "0",
"sanctioned": "0",
"data_source": "SlowMist,BlockSec",
"blacklist_doubt": "0",
"financial_crime": "0",
"stealing_attack": "0",
"contract_address": "0",
"money_laundering": "0",
"phishing_activities": "0",
"blackmail_activities": "0",
"darkweb_transactions": "0",
"fake_standard_interface": "0",
"honeypot_related_address": "0",
"malicious_mining_activities": "0",
"number_of_malicious_contracts_created": "0",
"label_info": {
"label_type": "dex",
"label_name": "Raydium AMM",
"label_subtype": "amm"
},
"cex_info": {
"is_cex": true,
"cex_name": "Binance",
"cex_address_type": "hot_wallet",
"cex_address_subtype": "deposit"
}
},
"reported_address_risk": [
{
"id": "a7600878-956f-4119-a18c-eec2b7057762",
"checked": null,
"trusted": false,
"addresses": [
{
"chain": "ETH",
"domain": null,
"address": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984"
}
],
"createdAt": "2022-03-20T20:52:16.000Z",
"scamCategory": "PHISHING"
}
],
"reported_contract_risk": [
{
"id": "a7600878-956f-4119-a18c-eec2b7057762",
"checked": null,
"trusted": false,
"addresses": [
{
"chain": "ETH",
"domain": null,
"address": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984"
}
],
"createdAt": "2022-03-20T20:52:16.000Z",
"scamCategory": "PHISHING"
}
]
},
"score": 3,
"tags": [
{
"name": "Insufficient Wallet Age",
"description": "The age of this wallet or address is new.",
"type": "noHistoryRisk",
"severity": 3,
"key": "insufficient_wallet_age"
}
],
"categories": {
"address_characteristics": {
"key": "address_characteristics",
"name": "Wallet Characteristics",
"description": "This address may have risk factors related to address age, number of transactions, or balance.",
"tags": {
"insufficient_wallet_age": true
}
}
}
}
}
]
}{
"message": "Unauthorized"
}Risk DD
Approvals with Threat Risks
Retrieve token approvals for an address with associated threat risk analysis
GET
/
addresses
/
{address}
/
approvals
Approvals with threat risks
curl --request GET \
--url https://api.webacy.com/addresses/{address}/approvals \
--header 'x-api-key: <api-key>'import requests
url = "https://api.webacy.com/addresses/{address}/approvals"
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://api.webacy.com/addresses/{address}/approvals', 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.webacy.com/addresses/{address}/approvals",
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://api.webacy.com/addresses/{address}/approvals"
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://api.webacy.com/addresses/{address}/approvals")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.webacy.com/addresses/{address}/approvals")
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{
"token_address": "<string>",
"chain_id": "<string>",
"token_name": "<string>",
"token_symbol": "<string>",
"decimals": 123,
"balance": "<string>",
"is_open_source": "<string>",
"malicious_address": "<string>",
"malicious_behavior": "<string>",
"token_type": "<string>",
"approved_list": [
{
"approved_contract": "0xdc9524a8774dc2956bdb8b55fdf91938757f3185",
"approved_amount": "2134234.234234",
"approved_time": 1709418647,
"initial_approval_time": 1709418647,
"initial_approval_hash": "0x9a10e981d8f5b0cd521195b43d5f1021faa460ef6d646c901507d0bc2f17257e",
"hash": "0x9a10e981d8f5b0cd521195b43d5f1021faa460ef6d646c901507d0bc2f17257e",
"address_info": {},
"risk": {
"transaction": {
"transaction_hash": "0x6cd992fcf67cc17f6d9be1f9aec8433d75471d3b58e3b32c473fdcb1c0536439",
"transaction_id": "external",
"from_to_address": "0x3ee18b2214aff97000d974cf647e7c347e8fa585",
"is_contract": true,
"contract_address": "0xa9937f7bfacf7747d65b0dfb4a3e78fecca9c22a",
"address_risk_data": {
"mixer": "0",
"reinit": "0",
"fake_kyc": "0",
"gas_abuse": "0",
"cybercrime": "0",
"sanctioned": "0",
"data_source": "SlowMist,BlockSec",
"blacklist_doubt": "0",
"financial_crime": "0",
"stealing_attack": "0",
"contract_address": "0",
"money_laundering": "0",
"phishing_activities": "0",
"blackmail_activities": "0",
"darkweb_transactions": "0",
"fake_standard_interface": "0",
"honeypot_related_address": "0",
"malicious_mining_activities": "0",
"number_of_malicious_contracts_created": "0",
"label_info": {
"label_type": "dex",
"label_name": "Raydium AMM",
"label_subtype": "amm"
},
"cex_info": {
"is_cex": true,
"cex_name": "Binance",
"cex_address_type": "hot_wallet",
"cex_address_subtype": "deposit"
}
},
"token_risk_data": {
"mixer": "0",
"reinit": "0",
"fake_kyc": "0",
"gas_abuse": "0",
"cybercrime": "0",
"sanctioned": "0",
"data_source": "SlowMist,BlockSec",
"blacklist_doubt": "0",
"financial_crime": "0",
"stealing_attack": "0",
"contract_address": "0",
"money_laundering": "0",
"phishing_activities": "0",
"blackmail_activities": "0",
"darkweb_transactions": "0",
"fake_standard_interface": "0",
"honeypot_related_address": "0",
"malicious_mining_activities": "0",
"number_of_malicious_contracts_created": "0",
"label_info": {
"label_type": "dex",
"label_name": "Raydium AMM",
"label_subtype": "amm"
},
"cex_info": {
"is_cex": true,
"cex_name": "Binance",
"cex_address_type": "hot_wallet",
"cex_address_subtype": "deposit"
}
},
"reported_address_risk": [
{
"id": "a7600878-956f-4119-a18c-eec2b7057762",
"checked": null,
"trusted": false,
"addresses": [
{
"chain": "ETH",
"domain": null,
"address": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984"
}
],
"createdAt": "2022-03-20T20:52:16.000Z",
"scamCategory": "PHISHING"
}
],
"reported_contract_risk": [
{
"id": "a7600878-956f-4119-a18c-eec2b7057762",
"checked": null,
"trusted": false,
"addresses": [
{
"chain": "ETH",
"domain": null,
"address": "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984"
}
],
"createdAt": "2022-03-20T20:52:16.000Z",
"scamCategory": "PHISHING"
}
]
},
"score": 3,
"tags": [
{
"name": "Insufficient Wallet Age",
"description": "The age of this wallet or address is new.",
"type": "noHistoryRisk",
"severity": 3,
"key": "insufficient_wallet_age"
}
],
"categories": {
"address_characteristics": {
"key": "address_characteristics",
"name": "Wallet Characteristics",
"description": "This address may have risk factors related to address age, number of transactions, or balance.",
"tags": {
"insufficient_wallet_age": true
}
}
}
}
}
]
}{
"message": "Unauthorized"
}Authorizations
Path Parameters
Query Parameters
Selected chain. This includes 'eth', 'base', 'bsc', 'pol', 'opt' and 'arb' (EVM chains only for approvals)
Available options:
eth, base, bsc, pol, opt, arb Boolean to determine whether to hide trust-related flags from the response
Response
Success
Address of token being approved
ex: 1
ex: USD Coin
ex: USDC
ex: 6
ex: 0
ex: 1
0
ex: ['malicious_address']
ex: ERC20
Show child attributes
Show child attributes
Detect Address Poisoning for a Specific Wallet AddressUnderstand the Risk Profile / Risk Exposure of an Address
⌘I
