Skip to content

/wallet/getaccount

Query account information.

  • Source: framework/src/main/java/org/tron/core/services/http/GetAccountServlet.java
  • Method: GET / POST
  • Solidity endpoint: /walletsolidity/getaccount

Request parameters

GET reads these fields from URL query parameters; POST reads them from a JSON request body.

Field Method Type Required Description
address GET string Yes Account address; hex (21 bytes, 0x41 prefix) when visible=false, base58check when visible=true
address POST string No Account address; omitted uses the Protobuf empty address and normally returns {}
visible GET / POST bool No Format for addresses and text fields

POST example:

curl --request POST \
     --url https://nile.trongrid.io/wallet/getaccount \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "address": "41dd791d6b49e190062d650e6a23c575510d35f2f9"
}
'

Response

Returns a protocol.Account (see protocol/src/main/protos/core/Tron.proto). Common fields:

Field Type Description
address bytes Account address
account_name bytes Account name
type enum Normal / AssetIssue / Contract
balance int64 TRX balance (sun, 1 TRX = 1e6 sun)
create_time int64 Creation time, milliseconds
votes repeated Vote Vote records
frozen repeated Frozen Stake 1.0 freezes (bandwidth)
frozenV2 repeated FreezeV2 Stake 2.0 freezes
unfrozenV2 repeated UnFreezeV2 Stake 2.0 unfreezes in progress
account_resource AccountResource Energy-related
asset / assetV2 map\<string,int64> TRC-10 holdings
allowance int64 Unwithdrawn witness rewards
latest_opration_time int64 Time of the most recent operation
owner_permission Permission Owner permission configuration
witness_permission Permission Witness permission configuration (present for SR accounts)
active_permission repeated Permission Active permission configurations

Response example:

{
  "address": "41dd791d6b49e190062d650e6a23c575510d35f2f9",
  "balance": 1793227200,
  "create_time": 1776933207000,
  "latest_opration_time": 1777444809000,
  "free_net_usage": 441,
  "latest_consume_free_time": 1777431471000,
  "net_window_size": 28800000,
  "net_window_optimized": true,
  "account_resource": {
    "latest_consume_time_for_energy": 1777444809000,
    "energy_window_size": 28800000,
    "energy_window_optimized": true
  },
  "owner_permission": {
    "permission_name": "owner",
    "threshold": 1,
    "keys": [
      { "address": "41dd791d6b49e190062d650e6a23c575510d35f2f9", "weight": 1 }
    ]
  },
  "active_permission": [
    {
      "type": "Active",
      "id": 2,
      "permission_name": "active",
      "threshold": 1,
      "operations": "7fff1fc0033efb0f000000000000000000000000000000000000000000000000",
      "keys": [
        { "address": "41dd791d6b49e190062d650e6a23c575510d35f2f9", "weight": 1 }
      ]
    }
  ],
  "frozenV2": [
    {},
    { "type": "ENERGY" },
    { "type": "TRON_POWER" }
  ],
  "assetV2": [
    { "key": "1005416", "value": 100000000 }
  ],
  "free_asset_net_usageV2": [
    { "key": "1005416", "value": 0 }
  ],
  "asset_optimized": true
}

Returns {} if address is missing or the account does not exist.

Error responses

Method Trigger Response
GET / POST Request body exceeds node.http.maxMessageSize Usually HTTP 413 Payload Too Large when rejected by SizeLimitHandler
GET / POST address is not valid hex (visible=false) {"Error": "class org.tron.core.services.http.JsonFormat$ParseException : <pos>: INVALID hex String"}
GET / POST address is not valid base58check (visible=true) Non-base58 characters → {"Error": "class org.tron.core.services.http.JsonFormat$ParseException : <pos>: INVALID base58 String, <details>"}; checksum-only error → {"Error": "class java.lang.NullPointerException : null"} (GET and POST behave identically: the GET path wraps address into JSON and goes through the same JsonFormat.merge)
POST Request body is not valid JSON / field type mismatch (POST) {"Error": "class org.tron.json.JSONException : <parser info>"} or {"Error": "class org.tron.core.services.http.JsonFormat$ParseException : <decoder info>"}
GET / POST Other exceptions {"Error": "<exceptionClass> : <message>"}