Home

Blockbook API

v2.0.0-draft
Base URL
https://etc-blockbook.nownodes.io

Canonical description of the Blockbook public API, based on blockbook-api.ts, api/xpub.go, and the api/server handlers.

API V2 is the current Blockbook API. It is available over REST and over WebSocket using the WsRequest/WsResponse JSON envelope documented below. The normalized API shapes are shared by all supported coins, while blockchain-specific payloads remain extensible where Blockbook returns raw backend JSON.

Amounts are strings in the lowest denomination of the chain, such as satoshis or wei, without a decimal point. Empty fields are omitted: empty means null, an empty string, numeric zero, a null object, or an empty array. Since the same API serves many different chains, this can sometimes hide otherwise meaningful zero values such as transaction version 0.

Legacy API V1 is a Bitcore Insight-compatible subset for Bitcoin-type coins. It is provided as-is for compatibility and is not being extended.

Load estimates are qualitative hints for client authors. Low means a small constant-time lookup or cached metadata. Medium means bounded indexed work or response size. High means potentially large scans, large payloads, broadcast/backend work, or external RPC enrichment. Actual cost also depends on chain speed, backend health, cache warmth, mempool size, pageSize, gap, and the number of addresses, transactions, tokens, filters, or timestamps involved.

Authentication

api-keyAuthapiKey

API Key: api-key in header

MAINNET / Blockbook 0.6.0

BlockBook

Get Blockbook and backend status.

GET
https://etc-blockbook.nownodes.io/api/status

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns Blockbook sync state and connected backend metadata.

Load estimate: Low; constant-size status metadata.

Response

200OK

Current Blockbook and backend status.

default

Public API error. Public validation errors are HTTP 400; internal errors are HTTP 500.

Get status from the API index handler.

GET
https://etc-blockbook.nownodes.io/api

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Alias served by the same handler as /api/status on full public interfaces.

Load estimate: Low; constant-size status metadata.

Response

200OK

Current Blockbook and backend status.

default

Public API error.

Get a block hash by height.

GET
https://etc-blockbook.nownodes.io/api/v2/block-index/{height}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns the block hash for a height on the backend main chain. Blockbook follows the backend main chain; after a rollback or reorg, height lookups resolve to the current main-chain block.

Load estimate: Low; indexed height-to-hash lookup.

Parameters

heightinteger>= 0requiredpath

Block height on the backend main chain.

Response

200OK

Block hash at the requested height.

default

Public API error.

Get a block by height or hash.

GET
https://etc-blockbook.nownodes.io/api/v2/block/{blockId}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns block information with paged transactions. When full transaction details are unavailable, the response can contain only transaction ids.

Blockbook follows the backend main chain. Height lookups always return the current main-chain block. Hash lookups can return a block from another fork only if the backend still keeps it.

Load estimate: Medium; grows mainly with block transaction count and requested page.

Parameters

blockIdstringrequiredpath

Block height or block hash.

pageinteger>= 1query

1-based page index. Values outside safe bounds are sanitized to the closest possible page.

Response

200OK

Block details.

default

Public API error.

Get raw block hex.

GET
https://etc-blockbook.nownodes.io/api/v2/rawblock/{blockId}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Not available on this endpoint: the request returns HTTP 500 with {"error":"Internal server error"}.

Returns raw serialized block data.

Load estimate: High for large blocks; payload size grows with the raw block size.

Parameters

blockIdstringrequiredpath

Block height or block hash.

Response

200OK

Raw block data.

default

Public API error.

Get compact block filters.

GET
https://etc-blockbook.nownodes.io/api/v2/block-filters

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns compact block filters for the script type configured on this Blockbook instance. Provide either lastN or a from/to range. When to is omitted for a range, the current best height is used.

Compact block filters are a feature of UTXO networks. On this network the endpoint returns an error.

Compact block filters are a feature of UTXO networks. On this network the endpoint returns an error.

Load estimate: High for wide ranges; work and payload grow linearly with the number of requested filters.

Parameters

scriptTypestringrequiredquery

Script type configured for block filters on this instance, for example taproot.

lastNinteger>= 1query

Return filters for the last N blocks.

frominteger>= 0query

First block height in the requested range.

tointeger>= 0query

Last block height in the requested range. Defaults to the current best height when omitted.

Response

200OK

Block filters keyed by block height.

default

Public API error.

Get a normalized transaction.

GET
https://etc-blockbook.nownodes.io/api/v2/tx/{txid}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns normalized transaction data with the same general structure for all supported coins. Coin-specific fields that do not fit the common shape are omitted here; use getTransactionSpecific for backend-native JSON.

Bitcoin-like confirmed transactions include blockHash, confirmations, blockTime, size/vsize, value/valueIn, fees, and hex. Unconfirmed transactions can include confirmationETABlocks and confirmationETASeconds.

Ethereum-like transactions have one vin and one vout, tokenTransfers, ethereumSpecific execution data, and optional addressAliases. Parsed input data is included when the 4byte signature can be resolved.

For mined transactions, blockTime is the block timestamp. For mempool transactions, blockTime is when this Blockbook instance first learned about the transaction and can differ between instances.

Load estimate: Medium; grows with inputs, outputs, token transfers, address aliases, and spending=true extra lookups.

Parameters

txidstringrequiredpath

Transaction id/hash.

spendingbooleanquery

Include spending transaction metadata for UTXO outputs when available.

Response

200OK

Normalized transaction.

default

Public API error.

Get blockchain-specific transaction JSON.

GET
https://etc-blockbook.nownodes.io/api/v2/tx-specific/{txid}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns transaction data in the exact backend-specific format. Use this when a chain exposes fields that are intentionally absent from the normalized Tx schema.

Load estimate: Medium; payload size depends on chain-specific fields and transaction complexity.

Parameters

txidstringrequiredpath

Transaction id/hash.

Response

200OK

Chain-specific transaction payload.

default

Public API error.

Get raw transaction hex.

GET
https://etc-blockbook.nownodes.io/api/rawtx/{txid}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Unversioned public endpoint exposed by Blockbook for raw transaction data.

Load estimate: Medium; payload size grows with raw transaction size.

Parameters

txidstringrequiredpath

Transaction id/hash.

Response

200OK

Raw transaction hex as a JSON string.

default

Public API error.

Broadcast a raw transaction using the path.

GET
https://etc-blockbook.nownodes.io/api/v2/sendtx/{hex}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Broadcasts hex-encoded raw transaction data. Prefer POST for large payloads.

Load estimate: High; validates and forwards to the backend, with cost growing with transaction size and backend mempool policy checks.

Parameters

hexstringrequiredpath

Raw transaction.

Response

200OK

Broadcast result.

default

Public API error.

Broadcast a raw transaction using the request body.

POST
https://etc-blockbook.nownodes.io/api/v2/sendtx

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Broadcasts hex-encoded raw transaction data from the request body. The trailing slash is mandatory in the Blockbook handler. POST bodies are limited to 8 MiB.

Load estimate: High; validates and forwards to the backend, with cost growing with transaction size and backend mempool policy checks.

Body

text/plain
string

Response

200OK

Broadcast result.

default

Public API error.

Get address/account details.

GET
https://etc-blockbook.nownodes.io/api/v2/address/{address}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns balances and transactions of an address. Transactions are sorted by block height with newest blocks first. Response size is controlled by the details parameter.

At details=basic, mempool transactions are not aggregated: unconfirmedBalance, unconfirmedSending, and unconfirmedReceiving are omitted, and unconfirmedTxs reports the raw mempool index size for the address.

Load estimate: Variable; basic is low, token/tokenBalances and txids/txslight are medium, and txs can be high as it grows with pageSize, transactions, token rows, filters, and protocol enrichment.

Parameters

addressstringrequiredpath

Chain address.

pageinteger>= 1query

1-based page index. Values outside safe bounds are sanitized to the closest possible page.

pageSizeinteger[1, 1000]query

Number of history items per page. The default and maximum for REST account endpoints is 1000.

frominteger>= 0query

First block height included in account transaction filtering.

tointeger>= 0query

Last block height included in account transaction filtering.

detailsstringbasictokenstokenBalancestxidstxslighttxstxidsquery

Controls how much account data is returned. basic returns balances and counts only. tokens adds known token rows. tokenBalances returns token rows with balances. txids adds paged transaction ids. txslight adds limited transaction details from the index. txs adds full transaction details.

filterstring | integerquery

Filter account history by input/output side, or by numeric token/internal filter id.

contractstringquery

Contract address used to filter token data.

protocolsArray<string>query

Optional protocol enrichments, comma-separated or repeated. Currently supported value: erc4626. Unknown values are rejected.

secondarystringquery

Secondary currency code used to populate fiat values.

Response

200OK

Address/account details.

default

Public API error.

Get account balance history.

GET
https://etc-blockbook.nownodes.io/api/v2/balancehistory/{descriptor}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns balance history points for an address, XPUB, or descriptor. from and to are Unix timestamps. groupBy is an aggregation interval in seconds and defaults to 3600. When fiatcurrency is omitted, rates can contain all available currencies. sentToSelf is the amount sent from an address to itself or within addresses of the same XPUB.

Load estimate: High; grows with account transaction history, time span, grouping cardinality, fiat rate lookups, and XPUB/descriptor gap.

Parameters

descriptorstringrequiredpath

Address, XPUB, or supported descriptor. URL-encode descriptors.

frominteger<int64>query

Unix timestamp lower bound.

tointeger<int64>query

Unix timestamp upper bound.

fiatcurrencystringquery

Optional fiat currency code to include in rates.

groupByinteger>= 1query

Aggregation interval in seconds. Defaults to 3600.

gapinteger[0, 10000]query

XPUB/address derivation gap limit.

Response

200OK

Balance history points.

default

Public API error.

Get contract metadata.

GET
https://etc-blockbook.nownodes.io/api/v2/contract/{contract}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns indexed token/contract metadata and optional current protocol enrichments such as ERC4626.

blockHeight reflects the indexer's best block at request time. ERC4626 fields under protocols.erc4626 are fetched through JSON-RPC calls pinned to that exact blockHeight, so the ERC4626 values are a consistent snapshot. If a vault is detected but the underlying asset metadata cannot be resolved, protocols.erc4626 contains error and omits asset; callers must not derive fiat rates or human-unit exchange rates from such a partial response.

Load estimate: Medium; indexed metadata is cheap, but optional protocol enrichment can add backend RPC calls and token metadata lookups.

Parameters

contractstringrequiredpath

Smart contract address.

currencystringquery

Secondary currency code for rates.

protocolsArray<string>query

Optional protocol enrichments, comma-separated or repeated.

Response

200OK

Contract metadata.

default

Public API error.

Estimate a fee target.

GET
https://etc-blockbook.nownodes.io/api/v2/estimatefee/{blocks}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Returns backend fee estimation for the requested confirmation target.

Load estimate: Low; a small backend fee estimate lookup.

Parameters

blocksinteger>= 1requiredpath

Confirmation target in blocks.

conservativebooleantruequery

Use conservative smart fee estimation where supported.

Response

200OK

Decimal fee estimate in chain base currency.

default

Public API error.

Get fee statistics for a block.

GET
https://etc-blockbook.nownodes.io/api/v2/feestats/{blockId}

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Not available on this endpoint: the request returns HTTP 500 with {"error":"Internal server error"}.

Returns fee statistics for transactions in one block.

Load estimate: Medium to high; grows with the number of transactions in the requested block.

Parameters

blockIdstringrequiredpath

Block height or block hash.

Response

200OK

Fee statistics.

default

Public API error.

Get current or historical fiat rates.

GET
https://etc-blockbook.nownodes.io/api/v2/tickers

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Not available on this endpoint: the request returns HTTP 400 with {"error":"No tickers found!"}.

Fiat rates are not configured for this network, so this endpoint returns an error.

Returns currency rates for the requested currency and date. If a rate is unavailable for the exact timestamp, the closest available rate can be returned. Responses include the actual rate timestamp. Without a currency parameter, all available currencies can be returned. A rate of -1 marks an unavailable or invalid currency for that timestamp.

Load estimate: Low to medium; specific currency lookups are cheap, while omitted currency and token lookups increase response size.

Parameters

currencystringquery

Optional currency code. When omitted, all available rates can be returned.

timestampinteger<int64>query

Unix timestamp for historical rates.

blockstringquery

Block height or hash whose timestamp should be used for historical rates.

tokenstringquery

Optional token symbol or contract/address key for token-specific rates.

Response

200OK

Fiat rate ticker.

default

Public API error.

Get fiat rates for multiple timestamps.

GET
https://etc-blockbook.nownodes.io/api/v2/multi-tickers

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Not available on this endpoint: the request returns HTTP 400 with {"error":"No tickers found"}.

Fiat rates are not configured for this network, so this endpoint returns an error.

Returns fiat rate tickers for a comma-separated list of Unix timestamps.

Load estimate: Medium; work and payload grow linearly with timestamp count, plus token/currency selection.

Parameters

timestampstringrequiredquery

Comma-separated Unix timestamps.

currencystringquery

Optional currency code.

tokenstringquery

Optional token symbol or contract/address key.

Response

200OK

Fiat rate tickers.

default

Public API error.

Get currencies available for a timestamp.

GET
https://etc-blockbook.nownodes.io/api/v2/tickers-list

Authorizations

ApiKeyAuthApiKeyAuth

api-key string

NOWNodes API key passed in the api-key header.

Not available on this endpoint: the request returns HTTP 400 with {"error":"No tickers found"}.

Fiat rates are not configured for this network, so this endpoint returns an error.

Returns available secondary currencies for a date together with the actual rate timestamp.

Load estimate: Low to medium; token lookups and wide currency lists increase response size.

Parameters

timestampinteger<int64>requiredquery

Unix timestamp for the requested currency list.

tokenstringquery

Optional token symbol or contract/address key.

Response

200OK

Available currencies.

default

Public API error.