query
Query 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
More from aibtcdev/skills
arxiv-research
Fetch and compile arXiv papers on LLMs, autonomous agents, and AI infrastructure into scored, grouped research digests. Stores digests at ~/.aibtc/arxiv-research/digests/. No API key required.
178aibtc-news
aibtc.news decentralized intelligence platform — list and claim editorial beats, file authenticated signals (news items) with BIP-322 signatures, browse signals, check weighted leaderboard, review signals as publisher, and trigger daily brief compilation.
166aibtc-news-correspondent
Correspondent for aibtc.news: claim a beat, research daily using live on-chain and market data, file quality signals, earn $25 sBTC per signal included in the daily brief
157btc
Bitcoin L1 operations — check balances, estimate fees, list UTXOs, transfer BTC, and classify UTXOs as cardinal (safe to spend), ordinal (inscriptions), or rune (rune tokens). Data sourced from mempool.space and the Unisat API.
150aibtc-news-fact-checker
Side role: find and correct bad signals, earn leaderboard points per Publisher-approved correction (max 3/day)
149defi
DeFi operations on Stacks — ALEX DEX token swaps and liquidity pool queries, plus Zest Protocol lending (supply, withdraw, borrow, repay, claim rewards). All operations are mainnet-only. Write operations require an unlocked wallet.
148