brk_query
Query interface for Bitcoin indexed and computed data.
What It Enables
Query blocks, transactions, addresses, and 1000+ on-chain metrics through a unified API. Supports pagination, range queries, and multiple output formats.
Key Features
- Unified access: Single entry point to indexer, computer, and mempool data
- Metric discovery: List metrics, filter by index type, fuzzy search
- Range queries: By height, date, or relative offsets (
from=-100) - Multi-metric bulk queries: Fetch multiple metrics in one call
- Async support: Tokio-compatible with
AsyncQuerywrapper - Format flexibility: JSON, CSV, or raw values
Core API
let query = build;
// Current height
let height = query.height;
// Metric queries (two-phase: resolve then format)
let resolved = query.resolve?;
let data = query.format?;
// Block queries
let info = query.block_by_height?;
// Transaction queries
let tx = query.transaction?;
// Address queries
let stats = query.address?;
Query Types
| Domain | Methods |
|---|---|
| Metrics | metrics, resolve, format, metric_to_indexes |
| Blocks | block, block_by_height, blocks, block_txs, block_status, block_by_timestamp |
| Transactions | transaction, transaction_status, transaction_hex, outspend, outspends |
| Addresses | address, address_txids, address_utxos |
| Mining | difficulty_adjustments, hashrate, mining_pools, reward_stats |
| Mempool | mempool_info, recommended_fees, mempool_blocks |
Async Usage
let async_query = build;
// Run blocking queries in thread pool
let result = async_query.run.await;
// Access inner Query
let height = async_query.inner.height;
Recommended: mimalloc v3
Use mimalloc v3 as the global allocator to reduce memory usage.
Built On
brk_indexerfor raw indexed databrk_computerfor derived metricsbrk_mempoolfor mempool queriesbrk_readerfor raw block access