wallet/getaccountbalance
curl --request POST \
--url https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance \
--header 'Content-Type: application/json' \
--data '
{
"account_identifier": {
"address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e"
},
"block_identifier": {
"hash": "0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd",
"number": 77096758
},
"visible": false
}
'import requests
url = "https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance"
payload = {
"account_identifier": { "address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e" },
"block_identifier": {
"hash": "0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd",
"number": 77096758
},
"visible": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
account_identifier: {address: '41608f8da72479edc7dd921e4c30bb7e7cddbe722e'},
block_identifier: {
hash: '0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd',
number: 77096758
},
visible: false
})
};
fetch('https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance', 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://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance",
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([
'account_identifier' => [
'address' => '41608f8da72479edc7dd921e4c30bb7e7cddbe722e'
],
'block_identifier' => [
'hash' => '0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd',
'number' => 77096758
],
'visible' => false
]),
CURLOPT_HTTPHEADER => [
"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://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance"
payload := strings.NewReader("{\n \"account_identifier\": {\n \"address\": \"41608f8da72479edc7dd921e4c30bb7e7cddbe722e\"\n },\n \"block_identifier\": {\n \"hash\": \"0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd\",\n \"number\": 77096758\n },\n \"visible\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
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://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance")
.header("Content-Type", "application/json")
.body("{\n \"account_identifier\": {\n \"address\": \"41608f8da72479edc7dd921e4c30bb7e7cddbe722e\"\n },\n \"block_identifier\": {\n \"hash\": \"0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd\",\n \"number\": 77096758\n },\n \"visible\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_identifier\": {\n \"address\": \"41608f8da72479edc7dd921e4c30bb7e7cddbe722e\"\n },\n \"block_identifier\": {\n \"hash\": \"0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd\",\n \"number\": 77096758\n },\n \"visible\": false\n}"
response = http.request(request)
puts response.read_body{
"balance": 123,
"frozen": [
{
"frozen_balance": 123,
"expire_time": 123
}
],
"delegated_frozenV2": [
{
"type": "<string>",
"frozen_balance": 123
}
],
"undelegated_frozenV2": [
{
"type": "<string>",
"unfreeze_amount": 123,
"unfreeze_expire_time": 123
}
]
}TRON node API
wallet/getaccountbalance | TRON
TRON API method that retrieves the TRX balance and related balance information for a specific account. Use it on TRON via Chainstack.
POST
/
95e61622bf6a8af293978377718e3b77
/
wallet
/
getaccountbalance
wallet/getaccountbalance
curl --request POST \
--url https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance \
--header 'Content-Type: application/json' \
--data '
{
"account_identifier": {
"address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e"
},
"block_identifier": {
"hash": "0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd",
"number": 77096758
},
"visible": false
}
'import requests
url = "https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance"
payload = {
"account_identifier": { "address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e" },
"block_identifier": {
"hash": "0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd",
"number": 77096758
},
"visible": False
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
account_identifier: {address: '41608f8da72479edc7dd921e4c30bb7e7cddbe722e'},
block_identifier: {
hash: '0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd',
number: 77096758
},
visible: false
})
};
fetch('https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance', 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://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance",
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([
'account_identifier' => [
'address' => '41608f8da72479edc7dd921e4c30bb7e7cddbe722e'
],
'block_identifier' => [
'hash' => '0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd',
'number' => 77096758
],
'visible' => false
]),
CURLOPT_HTTPHEADER => [
"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://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance"
payload := strings.NewReader("{\n \"account_identifier\": {\n \"address\": \"41608f8da72479edc7dd921e4c30bb7e7cddbe722e\"\n },\n \"block_identifier\": {\n \"hash\": \"0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd\",\n \"number\": 77096758\n },\n \"visible\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
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://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance")
.header("Content-Type", "application/json")
.body("{\n \"account_identifier\": {\n \"address\": \"41608f8da72479edc7dd921e4c30bb7e7cddbe722e\"\n },\n \"block_identifier\": {\n \"hash\": \"0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd\",\n \"number\": 77096758\n },\n \"visible\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_identifier\": {\n \"address\": \"41608f8da72479edc7dd921e4c30bb7e7cddbe722e\"\n },\n \"block_identifier\": {\n \"hash\": \"0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd\",\n \"number\": 77096758\n },\n \"visible\": false\n}"
response = http.request(request)
puts response.read_body{
"balance": 123,
"frozen": [
{
"frozen_balance": 123,
"expire_time": 123
}
],
"delegated_frozenV2": [
{
"type": "<string>",
"frozen_balance": 123
}
],
"undelegated_frozenV2": [
{
"type": "<string>",
"unfreeze_amount": 123,
"unfreeze_expire_time": 123
}
]
}TRON API method that retrieves the TRX balance and related balance information for a specific account. This method provides comprehensive balance data including available balance, frozen balance, and delegated resources.
Get balance at a specific block using a hex address:
Alternatively, get a specific block with If
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
account_identifier.address— the account address to query. Use base58 withvisible: true, or hex withvisible: false.block_identifier— required object specifying the block to query. Provide both the 32‑bytehash(64 hex chars) and the matchingnumber.visible— optional boolean for address format. Default isfalse(hex).
Response
balance— available TRX balance (in sun, where 1 TRX = 1,000,000 sun)frozen— array of frozen balance informationfrozen_balance— amount of TRX frozenexpire_time— expiration timestamp for frozen balance
delegated_frozenV2— delegated frozen balance information for v2 stakingundelegated_frozenV2— undelegated frozen balance information for v2 staking
Use case
Thewallet/getaccountbalance method is used for:
- Checking available TRX balance for transactions and transfers.
- Monitoring frozen balance and staking information.
- Analyzing delegated resource allocations.
- Managing account liquidity and resource planning.
curl examples
Get current balance with a base58 address (at a specific block):Shell
curl --request POST \
--url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance' \
--header 'Content-Type: application/json' \
--data '{
"account_identifier": { "address": "TZ4UXDV5ZhNW7fb2AMSbgfAEZ7hWsnYS2g" },
"block_identifier": { "hash": "0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd", "number": 77096758 },
"visible": true
}'
Shell
curl --request POST \
--url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance' \
--header 'Content-Type: application/json' \
--data '{
"account_identifier": { "address": "41608f8da72479edc7dd921e4c30bb7e7cddbe722e" },
"block_identifier": { "hash": "0000000004986736812cbf15ffbcdd229bd3d76a595db895719867cc2da3a5bd", "number": 77096758 },
"visible": false
}'
- avoid
INVALID hex Stringby providing a real 32‑byte block hash (64 hex chars). - avoid
account_identifier is nullby passingaccount_identifier: { address: ... }rather than a top‑leveladdress. - avoid
block_identifier nullandhash length not equals 32by always includingblock_identifier.hashwith 64 hex chars, andblock_identifier.numberthat matches the same block.
find a valid block hash
Usewallet/getnowblock to fetch the latest block and copy the blockID field as the block_identifier.hash value.Shell
curl --request POST \
--url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getnowblock' \
--header 'Content-Type: application/json'
wallet/getblockbynum and use its blockID.working example (auto picks latest block)
Run this to fetch the latestblockID, resolve its block number, and immediately query the balance at that block.Shell
# requires jq
BLOCK_ID=$(curl -s -X POST \
'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getnowblock' \
-H 'Content-Type: application/json' | jq -r '.blockID')
NUMBER=$(curl -s -X POST \
'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getblockbyid' \
-H 'Content-Type: application/json' \
--data "{\"value\": \"$BLOCK_ID\"}" | jq -r '.block_header.raw_data.number')
curl --request POST \
--url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance' \
--header 'Content-Type: application/json' \
--data "{\n \"account_identifier\": { \"address\": \"41608f8da72479edc7dd921e4c30bb7e7cddbe722e\" },\n \"block_identifier\": { \"hash\": \"$BLOCK_ID\", \"number\": $NUMBER },\n \"visible\": false\n}"
jq is not available, use Python instead:Shell
BLOCK_ID=$(curl -s -X POST \
'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getnowblock' \
-H 'Content-Type: application/json' | python3 -c 'import sys,json; print(json.load(sys.stdin)["blockID"])')
NUMBER=$(curl -s -X POST \
'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getblockbyid' \
-H 'Content-Type: application/json' \
--data "{\"value\": \"$BLOCK_ID\"}" | python3 -c 'import sys,json; print(json.load(sys.stdin)["block_header"]["raw_data"]["number"])')
curl --request POST \
--url 'https://tron-mainnet.core.chainstack.com/95e61622bf6a8af293978377718e3b77/wallet/getaccountbalance' \
--header 'Content-Type: application/json' \
--data "{\n \"account_identifier\": { \"address\": \"41608f8da72479edc7dd921e4c30bb7e7cddbe722e\" },\n \"block_identifier\": { \"hash\": \"$BLOCK_ID\", \"number\": $NUMBER },\n \"visible\": false\n}"
Body
application/json
Response
200 - application/json
Account balance information
Last modified on June 22, 2026
Was this page helpful?