curl --request POST \
--url https://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chain": "<string>",
"data": {
"from": "<string>",
"to": "<string>",
"data": "<string>",
"value": "<string>"
},
"account_address": "<string>",
"metadata": {
"domain": "<string>"
},
"options": [
"<string>"
]
}
'import requests
url = "https://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan"
payload = {
"chain": "<string>",
"data": {
"from": "<string>",
"to": "<string>",
"data": "<string>",
"value": "<string>"
},
"account_address": "<string>",
"metadata": { "domain": "<string>" },
"options": ["<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({
chain: '<string>',
data: {from: '<string>', to: '<string>', data: '<string>', value: '<string>'},
account_address: '<string>',
metadata: {domain: '<string>'},
options: ['<string>']
})
};
fetch('https://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan', 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.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan",
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([
'chain' => '<string>',
'data' => [
'from' => '<string>',
'to' => '<string>',
'data' => '<string>',
'value' => '<string>'
],
'account_address' => '<string>',
'metadata' => [
'domain' => '<string>'
],
'options' => [
'<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://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan"
payload := strings.NewReader("{\n \"chain\": \"<string>\",\n \"data\": {\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"data\": \"<string>\",\n \"value\": \"<string>\"\n },\n \"account_address\": \"<string>\",\n \"metadata\": {\n \"domain\": \"<string>\"\n },\n \"options\": [\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://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"<string>\",\n \"data\": {\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"data\": \"<string>\",\n \"value\": \"<string>\"\n },\n \"account_address\": \"<string>\",\n \"metadata\": {\n \"domain\": \"<string>\"\n },\n \"options\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan")
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 \"chain\": \"<string>\",\n \"data\": {\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"data\": \"<string>\",\n \"value\": \"<string>\"\n },\n \"account_address\": \"<string>\",\n \"metadata\": {\n \"domain\": \"<string>\"\n },\n \"options\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"rawResponse": {
"validation": {},
"simulation": {}
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}Scan a TRON transaction
Scans a TRON transaction for security risks using Blockaid. Only TRON mainnet is supported; testnet chain IDs are rejected.
curl --request POST \
--url https://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"chain": "<string>",
"data": {
"from": "<string>",
"to": "<string>",
"data": "<string>",
"value": "<string>"
},
"account_address": "<string>",
"metadata": {
"domain": "<string>"
},
"options": [
"<string>"
]
}
'import requests
url = "https://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan"
payload = {
"chain": "<string>",
"data": {
"from": "<string>",
"to": "<string>",
"data": "<string>",
"value": "<string>"
},
"account_address": "<string>",
"metadata": { "domain": "<string>" },
"options": ["<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({
chain: '<string>',
data: {from: '<string>', to: '<string>', data: '<string>', value: '<string>'},
account_address: '<string>',
metadata: {domain: '<string>'},
options: ['<string>']
})
};
fetch('https://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan', 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.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan",
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([
'chain' => '<string>',
'data' => [
'from' => '<string>',
'to' => '<string>',
'data' => '<string>',
'value' => '<string>'
],
'account_address' => '<string>',
'metadata' => [
'domain' => '<string>'
],
'options' => [
'<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://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan"
payload := strings.NewReader("{\n \"chain\": \"<string>\",\n \"data\": {\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"data\": \"<string>\",\n \"value\": \"<string>\"\n },\n \"account_address\": \"<string>\",\n \"metadata\": {\n \"domain\": \"<string>\"\n },\n \"options\": [\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://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"chain\": \"<string>\",\n \"data\": {\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"data\": \"<string>\",\n \"value\": \"<string>\"\n },\n \"account_address\": \"<string>\",\n \"metadata\": {\n \"domain\": \"<string>\"\n },\n \"options\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.portalhq.io/api/v3/clients/me/integrations/blockaid/tron/scan")
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 \"chain\": \"<string>\",\n \"data\": {\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"data\": \"<string>\",\n \"value\": \"<string>\"\n },\n \"account_address\": \"<string>\",\n \"metadata\": {\n \"domain\": \"<string>\"\n },\n \"options\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"rawResponse": {
"validation": {},
"simulation": {}
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Client API Key or Client Session Token (CST). Pass as a Bearer token in the Authorization header.
Body
Chain ID in CAIP-2 format. Only tron:mainnet is supported.
Show child attributes
Show child attributes
The TRON account address (base58) the transaction relates to. Optional. Defaults to the client's TRON address, falling back to data.from. If none of account_address, data.from, or a client TRON address is available, the request is rejected.
Optional context about the request origin, forwarded to Blockaid. Provide either domain (dApp requests) or non_dapp (non-dApp requests), but not both. When omitted entirely, a default domain of https://portalhq.io is applied. Note: if you supply a metadata object, the default is not applied, so a dApp request must include domain.
- Option 1
- Option 2
Show child attributes
Show child attributes
Response sections to include (e.g. validation, simulation).
Response
Scan completed successfully
Show child attributes
Show child attributes
Was this page helpful?