38 KiB
brk-client / BrkClient
Class: BrkClient
Defined in: Developer/brk/modules/brk-client/index.js:4491
Main BRK client with metrics tree and API methods
Extends
BrkClientBase
Constructors
Constructor
new BrkClient(
options):BrkClient
Defined in: Developer/brk/modules/brk-client/index.js:5408
Parameters
options
string | BrkClientOptions
Returns
BrkClient
Overrides
BrkClientBase.constructor
Properties
_cachePromise
_cachePromise:
Promise<Cache|null>
Defined in: Developer/brk/modules/brk-client/index.js:1102
Inherited from
BrkClientBase._cachePromise
metrics
metrics:
MetricsTree
Defined in: Developer/brk/modules/brk-client/index.js:5411
Methods
_fetchMetricData()
_fetchMetricData<
T>(path,onUpdate?):Promise<MetricData<T>>
Defined in: Developer/brk/modules/brk-client/index.js:1169
Fetch metric data and wrap with helper methods (internal)
Type Parameters
T
T
Parameters
path
string
onUpdate?
(value) => void
Returns
Promise<MetricData<T>>
Inherited from
BrkClientBase._fetchMetricData
get()
get(
path):Promise<Response>
Defined in: Developer/brk/modules/brk-client/index.js:1109
Parameters
path
string
Returns
Promise<Response>
Inherited from
BrkClientBase.get
getAddress()
getAddress(
address):Promise<AddressStats>
Defined in: Developer/brk/modules/brk-client/index.js:6583
Address information
Retrieve address information including balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR).
Endpoint: GET /api/address/{address}
Parameters
address
string
Returns
Promise<AddressStats>
getAddressConfirmedTxs()
getAddressConfirmedTxs(
address,after_txid?,limit?):Promise<string[]>
Defined in: Developer/brk/modules/brk-client/index.js:6624
Address confirmed transactions
Get confirmed transaction IDs for an address, 25 per page. Use ?after_txid= for pagination.
Endpoint: GET /api/address/{address}/txs/chain
Parameters
address
string
after_txid?
string
Txid to paginate from (return transactions before this one)
limit?
number
Maximum number of results to return. Defaults to 25 if not specified.
Returns
Promise<string[]>
getAddressMempoolTxs()
getAddressMempoolTxs(
address):Promise<string[]>
Defined in: Developer/brk/modules/brk-client/index.js:6645
Address mempool transactions
Get unconfirmed transaction IDs for an address from the mempool (up to 50).
Endpoint: GET /api/address/{address}/txs/mempool
Parameters
address
string
Returns
Promise<string[]>
getAddressTxs()
getAddressTxs(
address,after_txid?,limit?):Promise<string[]>
Defined in: Developer/brk/modules/brk-client/index.js:6601
Address transaction IDs
Get transaction IDs for an address, newest first. Use after_txid for pagination.
Endpoint: GET /api/address/{address}/txs
Parameters
address
string
after_txid?
string
Txid to paginate from (return transactions before this one)
limit?
number
Maximum number of results to return. Defaults to 25 if not specified.
Returns
Promise<string[]>
getAddressUtxos()
getAddressUtxos(
address):Promise<Utxo[]>
Defined in: Developer/brk/modules/brk-client/index.js:6661
Address UTXOs
Get unspent transaction outputs (UTXOs) for an address. Returns txid, vout, value, and confirmation status for each UTXO.
Endpoint: GET /api/address/{address}/utxo
Parameters
address
string
Returns
Promise<Utxo[]>
getApi()
getApi():
Promise<any>
Defined in: Developer/brk/modules/brk-client/index.js:6567
Compact OpenAPI specification
Compact OpenAPI specification optimized for LLM consumption. Removes redundant fields while preserving essential API information. Full spec available at /openapi.json.
Endpoint: GET /api.json
Returns
Promise<any>
getBlock()
getBlock(
hash):Promise<BlockInfo>
Defined in: Developer/brk/modules/brk-client/index.js:6693
Block information
Retrieve block information by block hash. Returns block metadata including height, timestamp, difficulty, size, weight, and transaction count.
Endpoint: GET /api/block/{hash}
Parameters
hash
string
Returns
Promise<BlockInfo>
getBlockByHeight()
getBlockByHeight(
height):Promise<BlockInfo>
Defined in: Developer/brk/modules/brk-client/index.js:6677
Block by height
Retrieve block information by block height. Returns block metadata including hash, timestamp, difficulty, size, weight, and transaction count.
Endpoint: GET /api/block-height/{height}
Parameters
height
number
Returns
Promise<BlockInfo>
getBlockByTimestamp()
getBlockByTimestamp(
timestamp):Promise<BlockTimestamp>
Defined in: Developer/brk/modules/brk-client/index.js:7207
Block by timestamp
Find the block closest to a given UNIX timestamp.
Endpoint: GET /api/v1/mining/blocks/timestamp/{timestamp}
Parameters
timestamp
number
Returns
Promise<BlockTimestamp>
getBlockFeeRates()
getBlockFeeRates(
time_period):Promise<any>
Defined in: Developer/brk/modules/brk-client/index.js:7143
Block fee rates (WIP)
Work in progress. Get block fee rate percentiles (min, 10th, 25th, median, 75th, 90th, max) for a time period. Valid periods: 24h, 3d, 1w, 1m, 3m, 6m, 1y, 2y, 3y
Endpoint: GET /api/v1/mining/blocks/fee-rates/{time_period}
Parameters
time_period
Returns
Promise<any>
getBlockFees()
getBlockFees(
time_period):Promise<BlockFeesEntry[]>
Defined in: Developer/brk/modules/brk-client/index.js:7159
Block fees
Get average block fees for a time period. Valid periods: 24h, 3d, 1w, 1m, 3m, 6m, 1y, 2y, 3y
Endpoint: GET /api/v1/mining/blocks/fees/{time_period}
Parameters
time_period
Returns
Promise<BlockFeesEntry[]>
getBlockRaw()
getBlockRaw(
hash):Promise<number[]>
Defined in: Developer/brk/modules/brk-client/index.js:6709
Raw block
Returns the raw block data in binary format.
Endpoint: GET /api/block/{hash}/raw
Parameters
hash
string
Returns
Promise<number[]>
getBlockRewards()
getBlockRewards(
time_period):Promise<BlockRewardsEntry[]>
Defined in: Developer/brk/modules/brk-client/index.js:7175
Block rewards
Get average block rewards (coinbase = subsidy + fees) for a time period. Valid periods: 24h, 3d, 1w, 1m, 3m, 6m, 1y, 2y, 3y
Endpoint: GET /api/v1/mining/blocks/rewards/{time_period}
Parameters
time_period
Returns
Promise<BlockRewardsEntry[]>
getBlocks()
getBlocks():
Promise<BlockInfo[]>
Defined in: Developer/brk/modules/brk-client/index.js:6789
Recent blocks
Retrieve the last 10 blocks. Returns block metadata for each block.
Endpoint: GET /api/blocks
Returns
Promise<BlockInfo[]>
getBlocksFromHeight()
getBlocksFromHeight(
height):Promise<BlockInfo[]>
Defined in: Developer/brk/modules/brk-client/index.js:6805
Blocks from height
Retrieve up to 10 blocks going backwards from the given height. For example, height=100 returns blocks 100, 99, 98, ..., 91. Height=0 returns only block 0.
Endpoint: GET /api/blocks/{height}
Parameters
height
number
Returns
Promise<BlockInfo[]>
getBlockSizesWeights()
getBlockSizesWeights(
time_period):Promise<BlockSizesWeights>
Defined in: Developer/brk/modules/brk-client/index.js:7191
Block sizes and weights
Get average block sizes and weights for a time period. Valid periods: 24h, 3d, 1w, 1m, 3m, 6m, 1y, 2y, 3y
Endpoint: GET /api/v1/mining/blocks/sizes-weights/{time_period}
Parameters
time_period
Returns
Promise<BlockSizesWeights>
getBlockStatus()
getBlockStatus(
hash):Promise<BlockStatus>
Defined in: Developer/brk/modules/brk-client/index.js:6725
Block status
Retrieve the status of a block. Returns whether the block is in the best chain and, if so, its height and the hash of the next block.
Endpoint: GET /api/block/{hash}/status
Parameters
hash
string
Returns
Promise<BlockStatus>
getBlockTxid()
getBlockTxid(
hash,index):Promise<string>
Defined in: Developer/brk/modules/brk-client/index.js:6742
Transaction ID at index
Retrieve a single transaction ID at a specific index within a block. Returns plain text txid.
Endpoint: GET /api/block/{hash}/txid/{index}
Parameters
hash
string
Bitcoin block hash
index
number
Transaction index within the block (0-based)
Returns
Promise<string>
getBlockTxids()
getBlockTxids(
hash):Promise<string[]>
Defined in: Developer/brk/modules/brk-client/index.js:6758
Block transaction IDs
Retrieve all transaction IDs in a block. Returns an array of txids in block order.
Endpoint: GET /api/block/{hash}/txids
Parameters
hash
string
Returns
Promise<string[]>
getBlockTxs()
getBlockTxs(
hash,start_index):Promise<Transaction[]>
Defined in: Developer/brk/modules/brk-client/index.js:6775
Block transactions (paginated)
Retrieve transactions in a block by block hash, starting from the specified index. Returns up to 25 transactions at a time.
Endpoint: GET /api/block/{hash}/txs/{start_index}
Parameters
hash
string
Bitcoin block hash
start_index
number
Starting transaction index within the block (0-based)
Returns
Promise<Transaction[]>
getDifficultyAdjustment()
getDifficultyAdjustment():
Promise<DifficultyAdjustment>
Defined in: Developer/brk/modules/brk-client/index.js:7099
Difficulty adjustment
Get current difficulty adjustment information including progress through the current epoch, estimated retarget date, and difficulty change prediction.
Endpoint: GET /api/v1/difficulty-adjustment
Returns
Promise<DifficultyAdjustment>
getDifficultyAdjustments()
getDifficultyAdjustments():
Promise<DifficultyAdjustmentEntry[]>
Defined in: Developer/brk/modules/brk-client/index.js:7221
Difficulty adjustments (all time)
Get historical difficulty adjustments including timestamp, block height, difficulty value, and percentage change.
Endpoint: GET /api/v1/mining/difficulty-adjustments
Returns
Promise<DifficultyAdjustmentEntry[]>
getDifficultyAdjustmentsByPeriod()
getDifficultyAdjustmentsByPeriod(
time_period):Promise<DifficultyAdjustmentEntry[]>
Defined in: Developer/brk/modules/brk-client/index.js:7237
Difficulty adjustments
Get historical difficulty adjustments for a time period. Valid periods: 24h, 3d, 1w, 1m, 3m, 6m, 1y, 2y, 3y.
Endpoint: GET /api/v1/mining/difficulty-adjustments/{time_period}
Parameters
time_period
Returns
Promise<DifficultyAdjustmentEntry[]>
getDiskUsage()
getDiskUsage():
Promise<DiskUsage>
Defined in: Developer/brk/modules/brk-client/index.js:6992
Disk usage
Returns the disk space used by BRK and Bitcoin data.
Endpoint: GET /api/server/disk
Returns
Promise<DiskUsage>
getHashrate()
getHashrate():
Promise<HashrateSummary>
Defined in: Developer/brk/modules/brk-client/index.js:7251
Network hashrate (all time)
Get network hashrate and difficulty data for all time.
Endpoint: GET /api/v1/mining/hashrate
Returns
Promise<HashrateSummary>
getHashrateByPeriod()
getHashrateByPeriod(
time_period):Promise<HashrateSummary>
Defined in: Developer/brk/modules/brk-client/index.js:7267
Network hashrate
Get network hashrate and difficulty data for a time period. Valid periods: 24h, 3d, 1w, 1m, 3m, 6m, 1y, 2y, 3y
Endpoint: GET /api/v1/mining/hashrate/{time_period}
Parameters
time_period
Returns
Promise<HashrateSummary>
getHealth()
getHealth():
Promise<Health>
Defined in: Developer/brk/modules/brk-client/index.js:7357
Health check
Returns the health status of the API server, including uptime information.
Endpoint: GET /health
Returns
Promise<Health>
getIndexes()
getIndexes():
Promise<IndexInfo[]>
Defined in: Developer/brk/modules/brk-client/index.js:6943
List available indexes
Returns all available indexes with their accepted query aliases. Use any alias when querying metrics.
Endpoint: GET /api/metrics/indexes
Returns
Promise<IndexInfo[]>
getJson()
getJson<
T>(path,onUpdate?):Promise<T>
Defined in: Developer/brk/modules/brk-client/index.js:1124
Make a GET request with stale-while-revalidate caching
Type Parameters
T
T
Parameters
path
string
onUpdate?
(value) => void
Called when data is available
Returns
Promise<T>
Inherited from
BrkClientBase.getJson
getMempool()
getMempool():
Promise<MempoolInfo>
Defined in: Developer/brk/modules/brk-client/index.js:6819
Mempool statistics
Get current mempool statistics including transaction count, total vsize, and total fees.
Endpoint: GET /api/mempool/info
Returns
Promise<MempoolInfo>
getMempoolBlocks()
getMempoolBlocks():
Promise<MempoolBlock[]>
Defined in: Developer/brk/modules/brk-client/index.js:7113
Projected mempool blocks
Get projected blocks from the mempool for fee estimation. Each block contains statistics about transactions that would be included if a block were mined now.
Endpoint: GET /api/v1/fees/mempool-blocks
Returns
Promise<MempoolBlock[]>
getMempoolTxids()
getMempoolTxids():
Promise<string[]>
Defined in: Developer/brk/modules/brk-client/index.js:6833
Mempool transaction IDs
Get all transaction IDs currently in the mempool.
Endpoint: GET /api/mempool/txids
Returns
Promise<string[]>
getMetric()
getMetric(
metric,index,start?,end?,limit?,format?):Promise<string|AnyMetricData>
Defined in: Developer/brk/modules/brk-client/index.js:6866
Get metric data
Fetch data for a specific metric at the given index. Use query parameters to filter by date range and format (json/csv).
Endpoint: GET /api/metric/{metric}/{index}
Parameters
metric
string
Metric name
index
Aggregation index
start?
number
Inclusive starting index, if negative counts from end
end?
number
Exclusive ending index, if negative counts from end
limit?
string
Maximum number of values to return (ignored if end is set)
format?
Format of the output
Returns
Promise<string | AnyMetricData>
getMetricInfo()
getMetricInfo(
metric):Promise<Index[]>
Defined in: Developer/brk/modules/brk-client/index.js:6847
Get supported indexes for a metric
Returns the list of indexes supported by the specified metric. For example, realized_price might be available on dateindex, weekindex, and monthindex.
Endpoint: GET /api/metric/{metric}
Parameters
metric
string
Returns
Promise<Index[]>
getMetrics()
getMetrics(
metrics?,index?,start?,end?,limit?,format?):Promise<string|AnyMetricData[]>
Defined in: Developer/brk/modules/brk-client/index.js:6907
Bulk metric data
Fetch multiple metrics in a single request. Supports filtering by index and date range. Returns an array of MetricData objects. For a single metric, use get_metric instead.
Endpoint: GET /api/metrics/bulk
Parameters
metrics?
string
Requested metrics
index?
Index to query
start?
number
Inclusive starting index, if negative counts from end
end?
number
Exclusive ending index, if negative counts from end
limit?
string
Maximum number of values to return (ignored if end is set)
format?
Format of the output
Returns
Promise<string | AnyMetricData[]>
getMetricsCount()
getMetricsCount():
Promise<MetricCount[]>
Defined in: Developer/brk/modules/brk-client/index.js:6931
Metric count
Returns the number of metrics available per index type.
Endpoint: GET /api/metrics/count
Returns
Promise<MetricCount[]>
getMetricsTree()
getMetricsTree():
Promise<TreeNode>
Defined in: Developer/brk/modules/brk-client/index.js:6888
Metrics catalog
Returns the complete hierarchical catalog of available metrics organized as a tree structure. Metrics are grouped by categories and subcategories.
Endpoint: GET /api/metrics
Returns
Promise<TreeNode>
getOpenapi()
getOpenapi():
Promise<any>
Defined in: Developer/brk/modules/brk-client/index.js:7369
OpenAPI specification
Full OpenAPI 3.1 specification for this API.
Endpoint: GET /openapi.json
Returns
Promise<any>
getPool()
getPool(
slug):Promise<PoolDetail>
Defined in: Developer/brk/modules/brk-client/index.js:7283
Mining pool details
Get detailed information about a specific mining pool including block counts and shares for different time periods.
Endpoint: GET /api/v1/mining/pool/{slug}
Parameters
slug
Returns
Promise<PoolDetail>
getPools()
getPools():
Promise<PoolInfo[]>
Defined in: Developer/brk/modules/brk-client/index.js:7297
List all mining pools
Get list of all known mining pools with their identifiers.
Endpoint: GET /api/v1/mining/pools
Returns
Promise<PoolInfo[]>
getPoolStats()
getPoolStats(
time_period):Promise<PoolsSummary>
Defined in: Developer/brk/modules/brk-client/index.js:7313
Mining pool statistics
Get mining pool statistics for a time period. Valid periods: 24h, 3d, 1w, 1m, 3m, 6m, 1y, 2y, 3y
Endpoint: GET /api/v1/mining/pools/{time_period}
Parameters
time_period
Returns
Promise<PoolsSummary>
getRecommendedFees()
getRecommendedFees():
Promise<RecommendedFees>
Defined in: Developer/brk/modules/brk-client/index.js:7127
Recommended fees
Get recommended fee rates for different confirmation targets based on current mempool state.
Endpoint: GET /api/v1/fees/recommended
Returns
Promise<RecommendedFees>
getRewardStats()
getRewardStats(
block_count):Promise<RewardStats>
Defined in: Developer/brk/modules/brk-client/index.js:7329
Mining reward statistics
Get mining reward statistics for the last N blocks including total rewards, fees, and transaction count.
Endpoint: GET /api/v1/mining/reward-stats/{block_count}
Parameters
block_count
number
Number of recent blocks to include
Returns
Promise<RewardStats>
getSyncStatus()
getSyncStatus():
Promise<SyncStatus>
Defined in: Developer/brk/modules/brk-client/index.js:7004
Sync status
Returns the sync status of the indexer, including indexed height, tip height, blocks behind, and last indexed timestamp.
Endpoint: GET /api/server/sync
Returns
Promise<SyncStatus>
getText()
getText(
path):Promise<string>
Defined in: Developer/brk/modules/brk-client/index.js:1157
Make a GET request and return raw text (for CSV responses)
Parameters
path
string
Returns
Promise<string>
Inherited from
BrkClientBase.getText
getTx()
getTx(
txid):Promise<Transaction>
Defined in: Developer/brk/modules/brk-client/index.js:7020
Transaction information
Retrieve complete transaction data by transaction ID (txid). Returns inputs, outputs, fee, size, and confirmation status.
Endpoint: GET /api/tx/{txid}
Parameters
txid
string
Returns
Promise<Transaction>
getTxHex()
getTxHex(
txid):Promise<string>
Defined in: Developer/brk/modules/brk-client/index.js:7036
Transaction hex
Retrieve the raw transaction as a hex-encoded string. Returns the serialized transaction in hexadecimal format.
Endpoint: GET /api/tx/{txid}/hex
Parameters
txid
string
Returns
Promise<string>
getTxOutspend()
getTxOutspend(
txid,vout):Promise<TxOutspend>
Defined in: Developer/brk/modules/brk-client/index.js:7053
Output spend status
Get the spending status of a transaction output. Returns whether the output has been spent and, if so, the spending transaction details.
Endpoint: GET /api/tx/{txid}/outspend/{vout}
Parameters
txid
string
Transaction ID
vout
number
Output index
Returns
Promise<TxOutspend>
getTxOutspends()
getTxOutspends(
txid):Promise<TxOutspend[]>
Defined in: Developer/brk/modules/brk-client/index.js:7069
All output spend statuses
Get the spending status of all outputs in a transaction. Returns an array with the spend status for each output.
Endpoint: GET /api/tx/{txid}/outspends
Parameters
txid
string
Returns
Promise<TxOutspend[]>
getTxStatus()
getTxStatus(
txid):Promise<TxStatus>
Defined in: Developer/brk/modules/brk-client/index.js:7085
Transaction status
Retrieve the confirmation status of a transaction. Returns whether the transaction is confirmed and, if so, the block height, hash, and timestamp.
Endpoint: GET /api/tx/{txid}/status
Parameters
txid
string
Returns
Promise<TxStatus>
getVersion()
getVersion():
Promise<string>
Defined in: Developer/brk/modules/brk-client/index.js:7381
API version
Returns the current version of the API server
Endpoint: GET /version
Returns
Promise<string>
indexToDate()
indexToDate(
index,i):Date
Defined in: Developer/brk/modules/brk-client/index.js:5392
Convert an index value to a Date for date-based indexes.
Parameters
index
The index type
i
number
The index value
Returns
Date
isDateIndex()
isDateIndex(
index):boolean
Defined in: Developer/brk/modules/brk-client/index.js:5401
Check if an index type is date-based.
Parameters
index
Returns
boolean
listMetrics()
listMetrics(
page?):Promise<PaginatedMetrics>
Defined in: Developer/brk/modules/brk-client/index.js:6957
Metrics list
Paginated flat list of all available metric names. Use page query param for pagination.
Endpoint: GET /api/metrics/list
Parameters
page?
number
Pagination index
Returns
Promise<PaginatedMetrics>
metric()
metric(
metric,index):MetricEndpointBuilder<unknown>
Defined in: Developer/brk/modules/brk-client/index.js:6555
Create a dynamic metric endpoint builder for any metric/index combination.
Use this for programmatic access when the metric name is determined at runtime.
For type-safe access, use the metrics tree instead.
Parameters
metric
string
The metric name
index
The index name
Returns
MetricEndpointBuilder<unknown>
searchMetrics()
searchMetrics(
metric,limit?):Promise<string[]>
Defined in: Developer/brk/modules/brk-client/index.js:6976
Search metrics
Fuzzy search for metrics by name. Supports partial matches and typos.
Endpoint: GET /api/metrics/search/{metric}
Parameters
metric
string
limit?
number
Returns
Promise<string[]>
validateAddress()
validateAddress(
address):Promise<AddressValidation>
Defined in: Developer/brk/modules/brk-client/index.js:7345
Validate address
Validate a Bitcoin address and get information about its type and scriptPubKey.
Endpoint: GET /api/v1/validate-address/{address}
Parameters
address
string
Bitcoin address to validate (can be any string)
Returns
Promise<AddressValidation>