Explore the Bdtcoin Explorer network in real time
Loading blocks, transactions, mempool activity, miners, and supply data from the live network.
Loading blocks, transactions, mempool activity, miners, and supply data from the live network.
Loading grouped routes, DTO contracts, response rules, and endpoint details for the explorer backend.
A frontend-facing reference for the live explorer contract: grouped backend routes, same-origin compatibility aliases, query and path parameters, DTO shapes, transport behavior, and shared error responses.
Grouped by service responsibility so related DTOs stay together.
Includes health, explorer JSON routes, same-origin text aliases, analytics, and streaming transport.
Routes returning standard application/json envelopes or singleton DTOs.
Legacy-compatible same-origin aliases returning plain-text coin values.
Current realtime transport exposed as server-sent events.
These rules appear across multiple handlers and are useful before you inspect the individual route cards.
Most backend failures return the same JSON error envelope.
{
"error": "failed to load blocks"
}List-style endpoints reuse the frontend paging contract validated by Zod.
{
"items": [],
"pagination": { "limit": 20, "offset": 0 },
"filters": { "range": "30d", "interval": "day" }
}Bdtcoin Explorer uses backend-native atomic units and UTC-oriented timestamps.
Some same-origin frontend aliases intentionally return text/plain instead of JSON for legacy compatibility.
The live event stream is the realtime transport in the public surface.
retry: 5000
event: summary
data: {...}
event: blocks
data: {...}
Use these anchors to scan by domain instead of scrolling through the entire API surface.
Top-level availability and identity routes outside the /api/v1 explorer namespace.
Returns a minimal backend identity payload for quick smoke checks.
Simple service metadata object.
{
"service": "bdtexplorer",
"status": "ok"
}Reports process liveness and uptime details.
Health payload used by liveness checks.
{
"status": "ok",
"appName": "bdtexplorer-frontend",
"startedAt": "2026-03-19T20:00:00Z",
"uptime": "2026-03-19T20:00:00Z",
"checkedAt": "2026-03-19T20:00:00Z"
}Reports readiness with the same shape as the liveness probe.
Health payload used by readiness checks.
{
"status": "ok",
"appName": "bdtexplorer-frontend",
"startedAt": "2026-03-19T20:00:00Z",
"uptime": "2026-03-19T20:00:00Z",
"checkedAt": "2026-03-19T20:00:00Z"
}Canonical block listing, detail, latest-block lookup, and block-scoped transaction history.
Returns canonical blocks ordered newest first.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated block list.
{
"items": [
{
"height": 0,
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"previousHash": "0000000000000000000000000000000000000000000000000000000000000000",
"version": 0,
"merkleRoot": "0000000000000000000000000000000000000000000000000000000000000000",
"time": "2026-03-19T20:00:00Z",
"medianTime": "2026-03-19T20:00:00Z",
"nonce": 0,
"bits": 0,
"difficulty": 0,
"sizeBytes": 0,
"weight": 0,
"txCount": 0,
"chainwork": "0000000000000000000000000000000000000000000000000000000000000000"
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load blocks"
}Fetches the current tip block as a singleton response.
Latest canonical block.
{
"height": 0,
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"previousHash": "0000000000000000000000000000000000000000000000000000000000000000",
"version": 0,
"merkleRoot": "0000000000000000000000000000000000000000000000000000000000000000",
"time": "2026-03-19T20:00:00Z",
"medianTime": "2026-03-19T20:00:00Z",
"nonce": 0,
"bits": 0,
"difficulty": 0,
"sizeBytes": 0,
"weight": 0,
"txCount": 0,
"chainwork": "0000000000000000000000000000000000000000000000000000000000000000"
}{
"error": "block not found"
}{
"error": "failed to load latest block"
}Loads one block by height or block hash.
Block height or block hash.
Single block summary payload.
{
"height": 0,
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"previousHash": "0000000000000000000000000000000000000000000000000000000000000000",
"version": 0,
"merkleRoot": "0000000000000000000000000000000000000000000000000000000000000000",
"time": "2026-03-19T20:00:00Z",
"medianTime": "2026-03-19T20:00:00Z",
"nonce": 0,
"bits": 0,
"difficulty": 0,
"sizeBytes": 0,
"weight": 0,
"txCount": 0,
"chainwork": "0000000000000000000000000000000000000000000000000000000000000000"
}{
"error": "missing block identifier"
}{
"error": "block not found"
}{
"error": "failed to load block"
}Returns transaction summaries for a specific block.
Block height or block hash.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated transaction summaries scoped to one block.
{
"items": [
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"blockHeight": 0,
"blockPosition": 0,
"version": 0,
"lockTime": "2026-03-19T20:00:00Z",
"sizeBytes": 0,
"weight": 0,
"totalInputSats": 0,
"totalOutputSats": 0,
"feeSats": 0,
"isCoinbase": true
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "missing block identifier, invalid limit, or invalid offset"
}{
"error": "block not found"
}{
"error": "failed to load block transactions"
}Transaction detail, confirmation status, and raw-hex access.
Returns a full transaction model including inputs and outputs.
Transaction identifier.
Full transaction payload.
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"blockHeight": 0,
"blockPosition": 0,
"version": 0,
"lockTime": "2026-03-19T20:00:00Z",
"sizeBytes": 0,
"weight": 0,
"totalInputSats": 0,
"totalOutputSats": 0,
"feeSats": 0,
"isCoinbase": true,
"inputs": [
{
"inputIndex": 0,
"prevTxid": "1111111111111111111111111111111111111111111111111111111111111111",
"prevOutputIndex": 0,
"scriptSig": 0,
"sequence": 0,
"coinbaseData": 0,
"valueSats": 0,
"address": "BdtExampleAddress123"
}
],
"outputs": [
{
"outputIndex": 0,
"valueSats": 0,
"scriptPubKey": 0,
"scriptType": 0,
"requiredSignatures": 0,
"address": "BdtExampleAddress123",
"spentByTxid": "1111111111111111111111111111111111111111111111111111111111111111",
"spentByInputIndex": 0,
"spent": 0
}
]
}{
"error": "missing transaction id"
}{
"error": "transaction not found"
}{
"error": "failed to load transaction"
}Returns confirmation metadata without the full transaction body.
Transaction identifier.
Confirmation status payload.
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"confirmed": 0,
"blockHeight": 0,
"blockHash": "0000000000000000000000000000000000000000000000000000000000000000",
"blockPosition": 0
}{
"error": "missing transaction id"
}{
"error": "transaction not found"
}{
"error": "failed to load transaction status"
}Returns the serialized raw transaction hex string.
Transaction identifier.
Raw transaction payload.
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"hex": 0
}{
"error": "missing transaction id"
}{
"error": "transaction not found"
}{
"error": "failed to load raw transaction"
}Address detail plus related transaction, UTXO, and balance-history routes.
Returns aggregate address statistics and first/last seen information.
Base58 or Bech32 address.
Single address summary.
{
"address": "BdtExampleAddress123",
"firstSeenHeight": 0,
"firstSeenTxid": "1111111111111111111111111111111111111111111111111111111111111111",
"lastSeenHeight": 0,
"lastSeenTxid": "1111111111111111111111111111111111111111111111111111111111111111",
"outputCount": 0,
"inputCount": 0,
"fundedSats": 0,
"spentSats": 0,
"balanceSats": 0,
"txCount": 0,
"receivedTxCount": 0,
"sentTxCount": 0
}{
"error": "missing address"
}{
"error": "address not found"
}{
"error": "failed to load address"
}Returns paginated full transaction details touching the address.
Base58 or Bech32 address.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated full transaction payloads.
{
"items": [
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"blockHeight": 0,
"blockPosition": 0,
"version": 0,
"lockTime": "2026-03-19T20:00:00Z",
"sizeBytes": 0,
"weight": 0,
"totalInputSats": 0,
"totalOutputSats": 0,
"feeSats": 0,
"isCoinbase": true,
"inputs": [
{}
],
"outputs": [
{}
]
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "missing address, invalid limit, or invalid offset"
}{
"error": "address not found"
}{
"error": "failed to load address transactions"
}Returns spendable and historical UTXO records for the address.
Base58 or Bech32 address.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated UTXO list.
{
"items": [
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"outputIndex": 0,
"blockHeight": 0,
"valueSats": 0,
"scriptPubKey": 0,
"scriptType": 0,
"requiredSignatures": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "missing address, invalid limit, or invalid offset"
}{
"error": "address not found"
}{
"error": "failed to load address utxos"
}Returns historical balance deltas over indexed blocks.
Base58 or Bech32 address.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated balance history points.
{
"items": [
{
"blockHeight": 0,
"blockTime": "2026-03-19T20:00:00Z",
"deltaSats": 0,
"balanceSats": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "missing address, invalid limit, or invalid offset"
}{
"error": "address not found"
}{
"error": "failed to load address balance history"
}Holder leaderboards, distribution views, snapshots, and locked-allocation labeling.
Returns paginated positive-balance holder rows.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated holder list.
{
"items": [
{
"address": "BdtExampleAddress123",
"balanceSats": 0,
"fundedSats": 0,
"spentSats": 0,
"txCount": 0,
"receivedTxCount": 0,
"sentTxCount": 0,
"firstSeenHeight": 0,
"lastSeenHeight": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load holders"
}Returns locked allocation rows plus a paginated regular-holder page.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Composite leaderboard payload.
{
"lockedAllocations": {
"items": [
{
"label": "example",
"address": "BdtExampleAddress123",
"balanceSats": 0,
"expectedBalanceSats": 0,
"sharePercent": 0,
"fundedSats": 0,
"spentSats": 0,
"txCount": 0,
"receivedTxCount": 0,
"sentTxCount": 0,
"firstSeenHeight": 0,
"lastSeenHeight": 0
}
],
"summary": 0
},
"holders": {
"items": [
{
"label": "example",
"address": "BdtExampleAddress123",
"balanceSats": 0,
"expectedBalanceSats": 0,
"sharePercent": 0,
"fundedSats": 0,
"spentSats": 0,
"txCount": 0,
"receivedTxCount": 0,
"sentTxCount": 0,
"firstSeenHeight": 0,
"lastSeenHeight": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load holder leaderboard"
}Returns holder concentration buckets with tracked balance totals.
Bucket distribution payload.
{
"buckets": [
{
"minBalanceSats": 0,
"maxBalanceSats": 0,
"openEnded": true,
"addressCount": "BdtExampleAddress123",
"totalBalanceSats": 0
}
],
"totalHolderCount": 0,
"totalTrackedBalanceSats": 0,
"indexedTipHeight": 0
}{
"error": "failed to load holder buckets"
}Returns the same bucketed holder-distribution contract used across analytics views.
Bucket distribution payload.
{
"buckets": [
{
"minBalanceSats": 0,
"maxBalanceSats": 0,
"openEnded": true,
"addressCount": "BdtExampleAddress123",
"totalBalanceSats": 0
}
],
"totalHolderCount": 0,
"totalTrackedBalanceSats": 0,
"indexedTipHeight": 0
}{
"error": "failed to load holder distribution"
}Returns ranked point-in-time holder snapshots.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Snapshot payload with pagination.
{
"items": [
{
"address": "BdtExampleAddress123",
"rank": 0,
"balanceSats": 0,
"bucket": 0
}
],
"snapshotTime": "2026-03-19T20:00:00Z",
"totalHolderCount": 0,
"indexedTipHeight": 0,
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load holder snapshots"
}Returns paginated labeled locked-allocation addresses.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated locked-allocation list.
{
"items": [
{
"label": "example",
"address": "BdtExampleAddress123",
"balanceSats": 0,
"expectedBalanceSats": 0,
"sharePercent": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load locked allocation"
}Returns aggregate totals for tracked locked-allocation addresses.
Aggregate locked-allocation totals.
{
"totalBalanceSats": 0,
"totalExpectedBalanceSats": 0,
"labeledAddressCount": "BdtExampleAddress123",
"indexedTipHeight": 0
}{
"error": "failed to load locked allocation summary"
}Returns time-series changes for locked-allocation balances.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Inclusive UTC start date.
Inclusive UTC end date.
Predefined UTC time window.
Series aggregation interval.
Series payload with shared filters.
{
"items": [
{
"day": "2026-03-19T20:00:00Z",
"netChangeSats": 0,
"totalBalanceSats": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
},
"filters": {
"from": 0,
"to": 0,
"range": "example",
"interval": "example"
}
}{
"error": "invalid limit, offset, from, to, range, or interval"
}{
"error": "failed to load locked allocation series"
}Realtime explorer snapshots, stream transport, mempool state, and mempool analytics.
Returns a compact live snapshot used by streaming and homepage status surfaces.
Current live explorer summary.
{
"blockCount": 0,
"transactionCount": 0,
"addressCount": "BdtExampleAddress123",
"totalTrackedBalanceSats": 0,
"latestBlockHeight": 0,
"latestBlockHash": "0000000000000000000000000000000000000000000000000000000000000000",
"latestBlockTime": "2026-03-19T20:00:00Z"
}{
"error": "failed to load live summary"
}Returns the latest blocks with standard pagination.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated recent blocks list.
{
"items": [
{
"height": 0,
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
"previousHash": "0000000000000000000000000000000000000000000000000000000000000000",
"version": 0,
"merkleRoot": "0000000000000000000000000000000000000000000000000000000000000000",
"time": "2026-03-19T20:00:00Z",
"medianTime": "2026-03-19T20:00:00Z",
"nonce": 0,
"bits": 0,
"difficulty": 0,
"sizeBytes": 0,
"weight": 0,
"txCount": 0,
"chainwork": "0000000000000000000000000000000000000000000000000000000000000000"
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load live blocks"
}Returns paginated block-event history using the shared series filter contract.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Inclusive UTC start date.
Inclusive UTC end date.
Predefined UTC time window.
Series aggregation interval.
Paginated event history payload.
{
"items": [
{
"type": 0,
"blockHeight": 0,
"blockHash": "0000000000000000000000000000000000000000000000000000000000000000",
"blockTime": "2026-03-19T20:00:00Z",
"txCount": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
},
"filters": {
"from": 0,
"to": 0,
"range": "example",
"interval": "example"
}
}{
"error": "invalid limit, offset, from, to, range, or interval"
}{
"error": "failed to load live events"
}Server-sent event stream that pushes summary, mempool, and latest-block snapshots.
text/event-stream transport with named JSON payload events.
retry: 5000
event: summary
data: {"indexedTipHeight": 917135}
event: blocks
data: [{"height": 917135}]
{
"error": "streaming not supported or stream initialization failed"
}Returns aggregate mempool counts, bytes, and fee totals.
Current mempool summary.
{
"transactionCount": 0,
"bytes": 0,
"usageBytes": 0,
"totalFeeSats": 0,
"loaded": 0
}{
"error": "failed to load mempool summary"
}Returns paginated mempool transactions ordered for explorer listing.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated mempool transaction list.
{
"items": [
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"virtualSizeBytes": 0,
"weight": 0,
"feeSats": 0,
"modifiedFeeSats": 0,
"feeRateSatPerVByte": 0,
"time": "2026-03-19T20:00:00Z",
"height": 0,
"ancestorCount": 0,
"descendantCount": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load mempool transactions"
}Returns the latest mempool arrivals with the same DTO as the full mempool list.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated recent mempool transaction list.
{
"items": [
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"virtualSizeBytes": 0,
"feeSats": 0,
"feeRateSatPerVByte": 0,
"time": "2026-03-19T20:00:00Z"
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load recent mempool transactions"
}Returns next-block and short-horizon fee guidance.
Fee estimate summary.
{
"nextBlock": {
"smart": 0,
"min": 0,
"max": 0,
"median": 0
},
"30min": 0,
"60min": 0,
"1day": "2026-03-19T20:00:00Z"
}{
"error": "failed to load mempool fees"
}Returns mempool composition grouped by fee-rate band.
Bucketed fee-rate analytics.
{
"items": [
{
"minFeeRateSatPerVByte": 0,
"maxFeeRateSatPerVByte": 0,
"openEnded": true,
"transactionCount": 0,
"totalVirtualSizeBytes": 0,
"totalFeeSats": 0
}
]
}{
"error": "failed to load mempool fee rate buckets"
}Returns mempool composition grouped by transaction age.
Bucketed age analytics.
{
"items": [
{
"minAgeSeconds": 0,
"maxAgeSeconds": 0,
"openEnded": true,
"transactionCount": 0,
"totalVirtualSizeBytes": 0
}
]
}{
"error": "failed to load mempool age distribution"
}Returns mempool composition grouped by virtual-size band.
Bucketed size analytics.
{
"items": [
{
"minVirtualSizeBytes": 0,
"maxVirtualSizeBytes": 0,
"openEnded": true,
"transactionCount": 0,
"totalVirtualSizeBytes": 0
}
]
}{
"error": "failed to load mempool size distribution"
}Miner production datasets and whale-transfer analytics endpoints.
Returns miner ranking and network share totals.
Miner summary payload.
{
"items": [
{
"minerName": "example",
"blockCount": 0,
"totalRewardSats": 0,
"sharePercent": 0,
"latestBlockHeight": 0,
"latestBlockTime": "2026-03-19T20:00:00Z"
}
],
"totalMinerCount": 0,
"totalMinedBlockCount": 0,
"indexedTipHeight": 0
}{
"error": "failed to load miners summary"
}Returns paginated miner detail rows and optionally filters by repeated name query params.
Repeatable miner name filter.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated miner comparison list.
{
"items": [
{
"minerName": "example",
"blockCount": 0,
"totalRewardSats": 0,
"sharePercent": 0,
"latestBlockHeight": 0,
"latestBlockTime": "2026-03-19T20:00:00Z",
"averageRewardSats": 0,
"indexedTipHeight": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "miner not found"
}{
"error": "failed to compare miners"
}Returns paginated daily miner production rows.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated miner series payload.
{
"items": [
{
"day": "2026-03-19T20:00:00Z",
"minerName": "example",
"blockCount": 0,
"totalRewardSats": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load miner series"
}Returns a miner detail row and optionally nests dailySeries when include=dailySeries is present.
Miner name.
Optional nested daily-series include.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Miner detail payload with optional nested dailySeries list.
{
"minerName": "example",
"blockCount": 0,
"totalRewardSats": 0,
"sharePercent": 0,
"latestBlockHeight": 0,
"latestBlockTime": "2026-03-19T20:00:00Z",
"averageRewardSats": 0,
"indexedTipHeight": 0,
"dailySeries": {
"items": [
{
"day": "2026-03-19T20:00:00Z",
"blockCount": 0,
"totalRewardSats": 0
}
],
"pagination": 0
}
}{
"error": "invalid include, limit, or offset"
}{
"error": "miner not found"
}{
"error": "failed to load miner detail"
}Returns paginated whale transfer events above the configured backend threshold.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Paginated whale event list.
{
"items": [
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"outputIndex": 0,
"blockHeight": 0,
"blockTime": "2026-03-19T20:00:00Z",
"address": "BdtExampleAddress123",
"valueSats": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
}
}{
"error": "invalid limit or invalid offset"
}{
"error": "failed to load whale events"
}Returns summary metrics and optionally latestEvents when include=latestEvents is requested.
Optional nested latest whale events include.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Whale summary payload with optional nested latestEvents list.
{
"eventCount": 0,
"totalValueSats": 0,
"uniqueAddressCount": "BdtExampleAddress123",
"indexedTipHeight": 0,
"thresholdSats": 0,
"latestEvents": {
"items": [
{
"txid": "1111111111111111111111111111111111111111111111111111111111111111",
"blockHeight": 0,
"address": "BdtExampleAddress123",
"valueSats": 0
}
],
"pagination": 0
}
}{
"error": "invalid include, limit, or offset"
}{
"error": "failed to load whale summary"
}Returns whale-event totals over time using shared series filters.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Inclusive UTC start date.
Inclusive UTC end date.
Predefined UTC time window.
Series aggregation interval.
Series payload with shared filters.
{
"items": [
{
"day": "2026-03-19T20:00:00Z",
"eventCount": 0,
"totalValueSats": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
},
"filters": {
"from": 0,
"to": 0,
"range": "example",
"interval": "example"
}
}{
"error": "invalid limit, offset, from, to, range, or interval"
}{
"error": "failed to load whale series"
}Supply state, distribution buckets, and market summary pricing signals.
Returns current exchange-rate and market-cap style metrics.
Market snapshot payload.
{
"exchangeRate": 0,
"marketCap": 0,
"goldRate": 0,
"volume24h": 0,
"currency": "USD",
"updatedAt": "2026-03-19T20:00:00Z"
}{
"error": "failed to load market summary"
}Returns issued, mined, total, max, circulating, unmined, and locked supply totals.
Supply state payload.
{
"issuedSupplySats": 0,
"unspentSupplySats": 0,
"unspentOutputCount": 0,
"indexedTipHeight": 0,
"maxSupplySats": 0,
"totalSupplySats": 0,
"totalMinedSats": 0,
"circulatingSupplySats": 0,
"unminedSupplySats": 0,
"lockedAllocationSats": 0
}{
"error": "failed to load supply summary"
}Returns supply concentration buckets across tracked balances.
Bucketed supply distribution payload.
{
"buckets": [
{
"minBalanceSats": 0,
"maxBalanceSats": 0,
"openEnded": true,
"addressCount": "BdtExampleAddress123",
"totalBalanceSats": 0
}
],
"totalTrackedSupplySats": 0,
"indexedTipHeight": 0
}{
"error": "failed to load supply distribution"
}Returns the remaining mineable supply as a same-origin plain-text coin value sourced from the canonical supply summary.
Plain-text coin value.
71000000
{
"error": "failed to load supply summary"
}Returns circulating supply as a same-origin plain-text coin value sourced from the canonical supply summary.
Plain-text coin value.
71000000
{
"error": "failed to load supply summary"
}Returns the protocol max supply as a same-origin plain-text coin value sourced from the canonical supply summary.
Plain-text coin value.
71000000
{
"error": "failed to load supply summary"
}Returns total supply as a same-origin plain-text coin value sourced from the canonical supply summary.
Plain-text coin value.
71000000
{
"error": "failed to load supply summary"
}Overview totals plus transaction, address, mining, fee, and block series analytics.
Returns top-level indexed chain totals.
Overview metric payload.
{
"blockCount": 0,
"transactionCount": 0,
"addressCount": "BdtExampleAddress123",
"indexedTipHeight": 0
}{
"error": "failed to load stats overview"
}Returns aggregate transaction metrics.
Transaction metrics payload.
{
"transactionCount": 0,
"coinbaseTransactionCount": 0,
"nonCoinbaseTransactionCount": 0,
"totalFeesSats": 0,
"averageFeeSats": 0,
"averageSizeBytes": 0,
"averageWeight": 0,
"indexedTipHeight": 0
}{
"error": "failed to load transaction stats"
}Returns transaction metrics over time.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Inclusive UTC start date.
Inclusive UTC end date.
Predefined UTC time window.
Series aggregation interval.
Series payload with shared filters.
{
"items": [
{
"day": "2026-03-19T20:00:00Z",
"transactionCount": 0,
"coinbaseTransactionCount": 0,
"nonCoinbaseTransactionCount": 0,
"totalFeesSats": 0,
"averageFeeSats": 0,
"averageSizeBytes": 0,
"averageWeight": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
},
"filters": {
"from": 0,
"to": 0,
"range": "example",
"interval": "example"
}
}{
"error": "invalid limit, offset, from, to, range, or interval"
}{
"error": "failed to load transaction stats series"
}Returns indexed address and balance totals.
Address metrics payload.
{
"addressCount": "BdtExampleAddress123",
"fundedAddressCount": "BdtExampleAddress123",
"zeroBalanceAddressCount": "BdtExampleAddress123",
"totalTrackedBalanceSats": 0,
"totalFundedSats": 0,
"totalSpentSats": 0,
"indexedTipHeight": 0
}{
"error": "failed to load address stats"
}Returns address-growth and address-activity metrics over time.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Inclusive UTC start date.
Inclusive UTC end date.
Predefined UTC time window.
Series aggregation interval.
Series payload with shared filters.
{
"items": [
{
"day": "2026-03-19T20:00:00Z",
"newAddressCount": "BdtExampleAddress123",
"cumulativeAddressCount": "BdtExampleAddress123",
"activeAddressCount": "BdtExampleAddress123",
"receivingAddressCount": "BdtExampleAddress123",
"sendingAddressCount": "BdtExampleAddress123"
}
],
"pagination": {
"limit": 0,
"offset": 0
},
"filters": {
"from": 0,
"to": 0,
"range": "example",
"interval": "example"
}
}{
"error": "invalid limit, offset, from, to, range, or interval"
}{
"error": "failed to load address stats series"
}Returns aggregate block-production metrics.
Mining metric payload.
{
"blockCount": 0,
"averageBlockSizeBytes": 0,
"averageBlockWeight": 0,
"averageTransactionsPerBlock": 0,
"latestBlockHeight": 0,
"latestBlockTime": "2026-03-19T20:00:00Z"
}{
"error": "failed to load mining stats"
}Returns mining metrics over time.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Inclusive UTC start date.
Inclusive UTC end date.
Predefined UTC time window.
Series aggregation interval.
Series payload with shared filters.
{
"items": [
{
"day": "2026-03-19T20:00:00Z",
"blockCount": 0,
"averageBlockSizeBytes": 0,
"averageBlockWeight": 0,
"averageTransactionsPerBlock": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
},
"filters": {
"from": 0,
"to": 0,
"range": "example",
"interval": "example"
}
}{
"error": "invalid limit, offset, from, to, range, or interval"
}{
"error": "failed to load mining stats series"
}Returns fee totals and fee-rate averages over time.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Inclusive UTC start date.
Inclusive UTC end date.
Predefined UTC time window.
Series aggregation interval.
Series payload with shared filters.
{
"items": [
{
"day": "2026-03-19T20:00:00Z",
"totalFeesSats": 0,
"averageFeeSats": 0,
"averageFeeRateSatPerVByte": 0
}
],
"pagination": {
"limit": 0,
"offset": 0
},
"filters": {
"from": 0,
"to": 0,
"range": "example",
"interval": "example"
}
}{
"error": "invalid limit, offset, from, to, range, or interval"
}{
"error": "failed to load fee stats series"
}Returns block-production and interval metrics over time.
Page size. Defaults to 20.
Zero-based result offset. Defaults to 0.
Inclusive UTC start date.
Inclusive UTC end date.
Predefined UTC time window.
Series aggregation interval.
Series payload with shared filters.
{
"items": [
{
"day": "2026-03-19T20:00:00Z",
"blockCount": 0,
"averageBlockSizeBytes": 0,
"averageBlockWeight": 0,
"averageTransactionsPerBlock": 0,
"averageDifficulty": 0,
"averageBlockIntervalSeconds": "example"
}
],
"pagination": {
"limit": 0,
"offset": 0
},
"filters": {
"from": 0,
"to": 0,
"range": "example",
"interval": "example"
}
}{
"error": "invalid limit, offset, from, to, range, or interval"
}{
"error": "failed to load block stats series"
}Exact-match search resolution and live suggestion APIs used by the explorer search experience.
Attempts to resolve a query into one exact block, transaction, or address result.
Search query string.
Single exact-match search result.
{
"query": 0,
"type": 0,
"id": 0,
"path": 0,
"found": 0
}{
"error": "missing search query"
}{
"error": "search result not found"
}{
"error": "failed to resolve search query"
}Returns a lightweight suggestion list for partial search input.
Search query string.
Maximum suggestion count. Defaults to 5.
Suggestion list payload.
{
"items": [
{
"type": 0,
"id": 0,
"path": 0,
"label": "example"
}
]
}{
"error": "missing search query"
}{
"error": "invalid limit"
}{
"error": "failed to load search suggestions"
}