About query
Query Skill provides Stacks network and blockchain queries through the Hiro API. It is for users inspecting accounts, blocks, contracts, or network status, and also supports mempool data, contract events, and read-only contract calls.
Key features
- 01Get STX fee estimates
- 02View account balances and transactions
- 03Query blocks and network status
- 04Read contract information and events
- 05Call read-only contract functions
Use cases
- 01Check an account's balance and nonce
- 02Inspect pending transactions and network status
- 03Read a contract ABI or its events
- 04Retrieve results from a read-only contract function
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ aibtcdev/ skills --skill queryAfter installing, type/queryin Claude Code to confirm it loaded.
Bundled filesAGENT.mdquery.ts
Details
From the project READMEQuery Skill
Provides Stacks network and blockchain query operations using the Hiro API. No wallet required for most queries; get-account-info and get-account-transactions fall back to the active wallet address if no address is provided.
Usage
bun run query/query.ts <subcommand> [options]
Subcommands
get-stx-fees
Get current STX fee estimates for different priority levels.
bun run query/query.ts get-stx-fees
Output:
{
"network": "mainnet",
"fees": {
"low": { "microStx": 1000, "stx": "0.001 STX", "description": "Lower fee, may take longer to confirm" },
"medium": { "microStx": 2500, "stx": "0.0025 STX", "description": "Standard fee, typical confirmation time" },
"high": { "microStx": 5000, "stx": "0.005 STX", "description": "Higher fee, faster confirmation" }
},
"byTransactionType": {
"tokenTransfer": { "low": 1000, "medium": 2500, "high": 5000 },
"contractCall": { "low": 1500, "medium": 3000, "high": 6000 },
"smartContract": { "low": 2000, "medium": 4000, "high": 8000 }
},
"unit": "micro-STX",
"note": "1 STX = 1,000,000 micro-STX. Fees are estimates based on current mempool conditions."
}
get-account-info
Get account information including nonce and STX balance.
bun run query/query.ts get-account-info [--address <stxAddress>]
Options:
--address(optional) — Stacks address to check (uses active wallet if omitted)
Output:
{
"address": "SP...",
"network": "mainnet",
"nonce": 42,
"balance": { "microStx": "1000000000", "stx": "1000 STX" },
"explorerUrl": "https://explorer.hiro.so/address/SP...?chain=mainnet"
}
get-account-transactions
Get transaction history for a Stacks account.
bun run query/query.ts get-account-transactions [--address <stxAddress>] [--limit 20] [--offset 0]
Options:
--address(optional) — Stacks address (uses active wallet if omitted)--limit(optional) — Maximum results (default: 20)--offset(optional) — Pagination offset (default: 0)
Output:
{
"address": "SP...",
"network": "mainnet",
"total": 150,
"limit": 20,
"offset": 0,
"transactions": [
{
"txId": "0x...",
"type": "token_transfer",
"status": "success",
"sender": "SP...",
"blockHeight": 145000,
"fee": "1000",
"explorerUrl": "https://explorer.hiro.so/txid/0x...?chain=mainnet"
}
],
"explorerUrl": "https://explorer.hiro.so/address/SP...?chain=mainnet"
}
get-block-info
Get information about a specific Stacks block.
bun run query/query.ts get-block-info --height-or-hash <value>
Options:
--height-or-hash(required) — Block height (integer) or block hash (0x-prefixed)
Output:
{
"network": "mainnet",
"hash": "0x...",
"height": 145000,
"canonical": true,
"burnBlockHeight": 840000,
"burnBlockTime": 1700000000,
"burnBlockTimeIso": "2024-01-01T00:00:00.000Z",
"txCount": 12,
"txIds": ["0x..."]
}
get-mempool-info
Get pending transactions in the Stacks mempool.
bun run query/query.ts get-mempool-info [--sender-address <addr>] [--limit 20] [--offset 0]
Options:
--sender-address(optional) — Filter by sender address--limit(optional) — Maximum results (default: 20)--offset(optional) — Pagination offset (default: 0)
Output:
{
"network": "mainnet",
"total": 5,
"limit": 20,
"offset": 0,
"transactions": [
{
"txId": "0x...",
"type": "contract_call",
"sender": "SP...",
"fee": "2500",
"nonce": 43,
"receiptTime": "2024-01-01T00:00:00.000Z",
"explorerUrl": "https://explorer.hiro.so/txid/0x...?chain=mainnet"
}
]
}
get-contract-info
Get information about a smart contract including its ABI.
bun run query/query.ts get-contract-info --contract-id <address.contract-name>
Options:
--contract-id(required) — Contract ID in formataddress.contract-name
Output:
{
"contractId": "SP...contract-name",
"network": "mainnet",
"txId": "0x...",
"blockHeight": 140000,
"functions": [
{ "name": "transfer", "access": "public", "args": [...], "outputs": {...} }
],
"variables": [...],
"maps": [...],
"fungibleTokens": [...],
"nonFungibleTokens": [...],
"explorerUrl": "https://explorer.hiro.so/txid/SP...contract-name?chain=mainnet"
}
get-contract-events
Get events emitted by a smart contract.
bun run query/query.ts get-contract-events --contract-id <address.contract-name> [--limit 20] [--offset 0]
Options:
--contract-id(required) — Contract ID in formataddress.contract-name--limit(optional) — Maximum results (default: 20)--offset(optional) — Pagination offset (default: 0)
Output:
{
"contractId": "SP...contract-name",
"network": "mainnet",
"limit": 20,
"offset": 0,
"events": [...],
"explorerUrl": "https://explorer.hiro.so/txid/SP...contract-name?chain=mainnet"
}
get-network-status
Get the current status of the Stacks network.
bun run query/query.ts get-network-status
Output:
{
"network": "mainnet",
"serverVersion": "stacks-node 2.4.0.0.0",
"status": "ready",
"chainTip": { "block_height": 145000, "block_hash": "0x..." },
"coreInfo": {
"peerVersion": 4026533888,
"stacksTipHeight": 145000,
"burnBlockHeight": 840000,
"networkId": 1
}
}
call-read-only
Call a read-only function on a smart contract.
bun run query/query.ts call-read-only --contract-id <id> --function-name <name> [--args <json>] [--sender <address>]
Options:
--contract-id(required) — Contract ID in formataddress.contract-name--function-name(required) — Name of the read-only function--args(optional) — JSON array of hex-encoded Clarity values (default:[])--sender(optional) — Sender address (uses active wallet or contract address if omitted)
The --args option accepts a JSON array of hex-encoded Clarity values. Use @stacks/transactions to encode values. For example, uintCV(1) serialized as hex would be "0100000000000000000000000000000001".
Output:
{
"contractId": "SP...contract-name",
"functionName": "get-balance",
"network": "mainnet",
"okay": true,
"result": "0x0100000000000000000000000000000064",
"cause": null
}
Notes
- All queries use the Hiro API (
api.mainnet.hiro.soorapi.testnet.hiro.so) - Network is controlled by the
NETWORKenvironment variable (default: testnet) get-account-infoandget-account-transactionsfall back to the active wallet addresscall-read-onlyfalls back to the contract's own address as sender if no wallet is active