Providers

Blockstream

Bitcoin through Esplora at blockstream.info. An independent second backend for the same chain, so a Mempool outage isn't your outage.
IDblockstream05 / 19keyless
Provider

Blockstream

  • bitcoin
Chains
1
Auth
none
Operations
6 of 10
served 6 / 10

Operations

  • balancegetBalanceserved
  • historygetTxHistoryserved
  • tx detailgetTxDetailserved
  • utxosgetUtxosserved
  • pubkeygetPubkeyserved
  • contractgetContractInfoabsent
  • tokensgetTokenBalancesabsent
  • transfersgetTokenTransfersabsent
  • gasgetGasDataabsent
  • blockgetBlockInfoserved

Access

Createcreate("blockstream")
Import@agntn/explorers/providers/blockstream
Hostblockstream.info
Statusproviders on the docs worker

Address it

ts
const blockstream = await create("blockstream");
await blockstream.getBalance("1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa");

Bitcoin only, no key.

What it reads

The Esplora wire format: /api/address/:address, /api/address/:address/txs, /api/address/:address/utxo, /api/tx/:hash and /api/blocks/:height, a page of blocks the provider searches for the exact height. Balances with funded and spent totals and the mempool delta, history, unspent outputs, the public key a spend showed, one transaction, blocks.

Gotchas

  • /api/address/:address/utxo answers 400 past a few hundred unspent outputs, same as mempool.space, and that comes back as an HTTPError rather than a partial list.
  • /api/fee-estimates doesn't match Mempool's recommendation shape, so gas data stays unsupported rather than approximated. Read fees through Mempool.
  • Blockstream and Mempool share the mapping in src/core/esplora.ts, so a transaction, an unspent output or a shown key from either has the same fields. OP_RETURN and inscriptions too, both read through src/core/script.ts.
  • In provider selection Blockstream sits after Mempool among keyless Bitcoin providers, so it answers when Mempool is rate limiting, unreachable or failing with a 5xx and you didn't name a provider. Keyless Blockchair comes after it. That's the whole reason it's here.

Where it lives

src/providers/blockstream.ts.