Skip to main content
Queries are requests that do not require network consensus. Queries are processed only by the single node the request is sent to. Below is a list of network queries by service.

Recommend Using Mirror Node REST API

For obtaining token information and historical data, consider using the Mirror Node REST API endpoint Get Token Account Balance which offers several advantages:
  • Cost-effective and scalable: Mirror node providers offer paid plans with a large number of queries included. The Hedera-hosted mirror node offers free queries with specific throttles for testing. While some SDK queries are currently free, these are subject to change in the future.
  • Performance: Mirror nodes don’t burden consensus nodes, allowing them to focus on processing transactions and providing efficient access to historical data without impacting network performance.
  • Historical data: Mirror nodes store complete transaction history, records, and events - ideal for analytics, auditing, and monitoring past activity.
📚 For more details on querying data, read: Querying Data on Hedera: SDK vs Mirror Node REST API

DEPRECATION NOTICE: AccountBalanceQuery

The AccountBalanceQuery is deprecated and will be completely removed in July 2026. This is the only SDK method presented on this page and it will no longer function after this date.A gradual throttle reduction begins in May 2026. To avoid rate limiting and future service disruptions, you must migrate to the Mirror Node REST API.📚 For the full migration guide, read: Migrating from AccountBalanceQuery: What You Need to Know

Get Query Cost

A query that returns the cost of a query prior to submitting the query to the network node for processing. If the cost of the query is greater than the default max query payment (1 HBAR) you can use setMaxQueryPayment(<hbar>) to change the default.
MethodTypeDescription
getCost(<client>)ClientGet the cost of the query in HBAR
getCost(<client, timeout>)Client, DurationThe max length of time the SDK will attempt to retry in the event of repeated busy responses from the node(s)
getCostAsync(<client>)ClientGet the cost of a query asynchronously
//Create the query request
AccountBalanceQuery query = new AccountBalanceQuery()
     .setAccountId(accountId);

//Get the cost of the query
Hbar queryCost = query.getCost(client);

System.out.println("The account balance query cost is " +queryCost);

//v2.0.0