# Blockchain.com

> Read the Bitcoin blockchain through Blockchain.com, the explorer behind blockchain.info. Check what an address or a whole wallet holds, follow its transactions, see whether a payment has confirmed and what it moved, read blocks and the mempool, track the price in thirty currencies, and pull the data behind any of Blockchain.com's charts: the hash rate, the difficulty, the fees, the mining pool split. Free, and there is nothing to sign up for.

App · Cryptocurrency · 20 actions. Web page: https://docs.lodol.com/docs/integrations/blockchain-com

## Actions

### Convert bitcoin to money

Work out what an amount of bitcoin is worth at Blockchain.com's current rate. Give the amount in bitcoin (0.5 rather than 50000000) and the answer comes back in the currency chosen. This is a rate lookup: nothing is bought, sold or moved.

**Inputs**

- Currency (`currency`, text): The currency to quote bitcoin in. The list is the one Blockchain.com is quoting right now; refresh it if a currency you expect is missing. Default: `USD`.
- Bitcoin (`bitcoin_amount`, number, required): How much bitcoin to convert, written as bitcoin rather than satoshi. Up to eight decimal places, which is one satoshi. At least 0.

**Outputs**

- `amount` (number)
- `bitcoin_amount` (number)
- `currency` (text)
- `satoshi` (number)

**Example output**

```json
{
  "amount": 115641.33,
  "bitcoin_amount": 1.5,
  "currency": "USD",
  "satoshi": 150000000
}
```

### Convert money to bitcoin

Work out how much bitcoin an amount of money buys at Blockchain.com's current rate. Answers in bitcoin and in satoshi, so whichever unit the next step needs is already there. This is a rate lookup: nothing is bought, sold or moved.

**Inputs**

- Currency (`currency`, text): The currency to quote bitcoin in. The list is the one Blockchain.com is quoting right now; refresh it if a currency you expect is missing. Default: `USD`.
- Amount (`amount`, number, required): How much money to convert, in the currency above. At least 0.

**Outputs**

- `amount` (number)
- `bitcoin_amount` (number)
- `currency` (text)
- `satoshi` (number)

**Example output**

```json
{
  "amount": 500.0,
  "bitcoin_amount": 0.00648557,
  "currency": "USD",
  "satoshi": 648557
}
```

### Count pending transactions

Count the transactions waiting to be confirmed. One number, and the cheapest way to tell whether the Bitcoin network is congested: when the queue is deep, transactions take longer and fees run higher. Nothing to fill in.

**Inputs**: None.

**Outputs**

- `pending_transaction_count` (number)

**Example output**

```json
{
  "pending_transaction_count": 43607
}
```

### Get a block

Look up one block, by its height or by its hash: when it was mined, how big it is, what the miner collected in fees, and the transactions inside it. A Bitcoin block holds several thousand transactions, so they come back a page at a time rather than all at once: the answer says how many there are in total and where the next page starts. A recent block is around 8 MB at Blockchain.com's end, so give this step a few seconds.

**Inputs**

- Block (`block`, text, required): Which block to fetch: its height (a plain number, counting from 0 for the first block in January 2009) or its 64-character hash. A blockchain.com link to a block works too.
- Transactions to return (`transaction_limit`, number): How many of the block's transactions to bring back. A block commonly holds three to four thousand, so ask for what the workflow will read. From 1 to 100. Default: `10`.
- Skip this many transactions (`transaction_offset`, number): Where in the block's transaction list to start. Leave it empty to start at the first, which is always the miner's own reward. Pass back the 'next_offset' from a previous run to continue. At least 0.

**Outputs**

- `block` (object)
- `has_more` (true/false)
- `hash` (text)
- `height` (number)
- `next_offset` (number)
- `offset` (number)
- `returned_count` (number)
- `transaction_count` (number)
- `transactions` (list)

**Example output**

```json
{
  "block": {
    "bits": 386021311,
    "block_index": 965227,
    "fee": 4183960,
    "fee_btc": 0.0418396,
    "hash": "000000000000000000014ac241bca01224050941af2ddb8675b76390f6887575",
    "height": 965227,
    "main_chain": true,
    "mrkl_root": "8e6d5467d074d87e64d55e3140acf1fd2ba29e07ddf5e50e6cd3421f2b2b0c93",
    "n_tx": 4327,
    "nonce": 1178521365,
    "prev_block": "0000000000000000000124a5e18d3508bdc69a708e235ba53b4afc6f0f614edc",
    "size": 1583714,
    "time": 1788386691,
    "time_utc": "2026-09-02T22:04:51Z",
    "ver": 544022528,
    "weight": 3993110
  },
  "has_more": true,
  "hash": "000000000000000000014ac241bca01224050941af2ddb8675b76390f6887575",
  "height": 965227,
  "next_offset": 1,
  "offset": 0,
  "returned_count": 1,
  "transaction_count": 4327,
  "transactions": [
    {
      "block_height": 965168,
      "block_index": 965168,
      "double_spend": false,
      "fee": 538,
      "fee_btc": 5.38e-06,
      "hash": "2a9cfca73bcfa70a8e3f381c2d3cfc3de295048e304939f6d07d37fbdaab1680",
      "inputs": [],
      "lock_time": 0,
      "out": [],
      "size": 375,
      "time": 1788352641,
      "time_utc": "2026-09-02T12:37:21Z",
      "tx_index": 4506715548509935,
      "ver": 2,
      "vin_sz": 2,
      "vout_sz": 2,
      "weight": 846
    }
  ]
}
```

### Get a chart

Get the data behind any of the charts on blockchain.com as a list of dated points: the bitcoin price, the hash rate, the difficulty, the fees, how many transactions a day, how big the mempool is, and twenty-two more. Pick the series and the time range, and optionally smooth it with a rolling average. Every point carries a readable date as well as the raw timestamp, so the answer can go straight into a report.

**Inputs**

- Chart (`chart`, text, required): Which series to fetch. These are the charts Blockchain.com serves through its API. One of: `market-price` (Market price (USD)), `market-cap` (Market capitalisation (USD)), `trade-volume` (Exchange trade volume (USD)), `total-bitcoins` (Bitcoins in circulation), `hash-rate` (Network hash rate), `difficulty` (Mining difficulty), `miners-revenue` (Miners' revenue (USD)), `transaction-fees` (Total transaction fees (BTC)), `transaction-fees-usd` (Total transaction fees (USD)), `cost-per-transaction` (Mining cost per transaction (USD)), and 18 more.
- Time range (`time_range`, text): How far back to go. Long ranges are thinned to around 1,500 points so the answer stays a workable size. One of: `7days` (Last 7 days), `30days` (Last 30 days), `3months` (Last 3 months), `6months` (Last 6 months), `1year` (Last year), `2years` (Last 2 years), `3years` (Last 3 years), `all` (All time, back to 2009). Default: `1year`.
- Smooth over (`rolling_average`, text): Average each point over this much surrounding time, to take the noise out of a jumpy series such as the hash rate. Leave it empty for the raw numbers. One of: `1hours` (1 hour), `8hours` (8 hours), `1days` (1 day), `7days` (7 days), `30days` (30 days).
- Start from (`start_date`, date): Begin the series on this date instead of counting back from today. Leave it empty to end at today.

**Outputs**

- `chart` (text)
- `description` (text)
- `first_time_utc` (text)
- `last_time_utc` (text)
- `latest_value` (number)
- `name` (text)
- `period` (text)
- `point_count` (number)
- `points` (list)
- `rolling_average` (text)
- `time_range` (text)
- `unit` (text)

**Example output**

```json
{
  "chart": "market-price",
  "description": "Average USD market price across major bitcoin exchanges.",
  "first_time_utc": "2026-08-03T00:00:00Z",
  "last_time_utc": "2026-08-03T00:00:00Z",
  "latest_value": 63487.43,
  "name": "Market Price (USD)",
  "period": "day",
  "point_count": 1,
  "points": [
    {
      "time_utc": "2026-08-03T00:00:00Z",
      "timestamp": 1785715200,
      "value": 63487.43
    }
  ],
  "rolling_average": null,
  "time_range": "30days",
  "unit": "USD"
}
```

### Get a transaction

Look up one Bitcoin transaction: what it moved, what it paid in fees, where it came from and where it went, and whether it has been confirmed yet or is still waiting. Amounts come back in bitcoin as well as satoshi. The answer says outright whether it is confirmed and in which block, so a workflow can wait on a payment without reading the transaction itself.

**Inputs**

- Transaction ID (`transaction_hash`, text, required): The transaction's ID: 64 hexadecimal characters, sometimes called a TXID or transaction hash. A blockchain.com link to the transaction works too.

**Outputs**

- `block_height` (number)
- `confirmed` (true/false)
- `hash` (text)
- `output_total` (number)
- `output_total_btc` (number)
- `transaction` (object)

**Example output**

```json
{
  "block_height": 965168,
  "confirmed": true,
  "hash": "2a9cfca73bcfa70a8e3f381c2d3cfc3de295048e304939f6d07d37fbdaab1680",
  "output_total": 100000546,
  "output_total_btc": 1.00000546,
  "transaction": {
    "block_height": 965168,
    "block_index": 965168,
    "double_spend": false,
    "fee": 538,
    "fee_btc": 5.38e-06,
    "hash": "2a9cfca73bcfa70a8e3f381c2d3cfc3de295048e304939f6d07d37fbdaab1680",
    "inputs": [],
    "lock_time": 0,
    "out": [],
    "size": 375,
    "time": 1788352641,
    "time_utc": "2026-09-02T12:37:21Z",
    "tx_index": 4506715548509935,
    "ver": 2,
    "vin_sz": 2,
    "vout_sz": 2,
    "weight": 846
  }
}
```

### Get activity across several addresses

Treat a set of addresses as one wallet. Answers with each address's own totals, the combined totals across all of them, and the transactions that touched any of them, newest first, so a wallet spread over several addresses reads as one history rather than several. An extended public key (xpub) can stand for a whole wallet here.

**Inputs**

- Bitcoin addresses (`addresses`, list, required): One or more Bitcoin addresses. Add a row for each. An extended public key (one starting xpub, ypub or zpub) works here too and covers every address in that wallet at once, which is the way to watch a whole wallet rather than a single address.
- Transactions to return (`limit`, number): How many transactions to bring back, newest first. Raise it to see further into the history, or lower it when only the latest few matter. From 1 to 100. Default: `50`.
- Skip this many transactions (`offset`, number): How many of the newest transactions to skip before the ones returned. Leave it empty for the newest. To walk through a long history, pass back the 'next_offset' the previous run reported. At least 0.

**Outputs**

- `address_count` (number)
- `addresses` (list)
- `has_more` (true/false)
- `next_offset` (number)
- `offset` (number)
- `returned_count` (number)
- `transactions` (list)
- `wallet` (object)

**Example output**

```json
{
  "address_count": 1,
  "addresses": [
    {
      "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
      "final_balance": 10744287807,
      "final_balance_btc": 107.44287807,
      "hash160": "62e907b15cbf27d5425399ebf6f0fb50ebb88f18",
      "n_tx": 65657,
      "total_received": 10744287807,
      "total_received_btc": 107.44287807,
      "total_sent": 0,
      "total_sent_btc": 0.0
    }
  ],
  "has_more": false,
  "next_offset": null,
  "offset": 0,
  "returned_count": 1,
  "transactions": [
    {
      "block_height": 965168,
      "block_index": 965168,
      "double_spend": false,
      "fee": 538,
      "fee_btc": 5.38e-06,
      "hash": "2a9cfca73bcfa70a8e3f381c2d3cfc3de295048e304939f6d07d37fbdaab1680",
      "inputs": [],
      "lock_time": 0,
      "out": [],
      "size": 375,
      "time": 1788352641,
      "time_utc": "2026-09-02T12:37:21Z",
      "tx_index": 4506715548509935,
      "ver": 2,
      "vin_sz": 2,
      "vout_sz": 2,
      "weight": 846
    }
  ],
  "wallet": {
    "final_balance": 10744287807,
    "final_balance_btc": 107.44287807,
    "n_tx": 65657,
    "total_received": 10744287807,
    "total_received_btc": 107.44287807,
    "total_sent": 0,
    "total_sent_btc": 0.0
  }
}
```

### Get an address

Look up one Bitcoin address in full: what it holds, what it has received and sent in total, and its transactions newest first. Every amount comes back in bitcoin as well as satoshi, and every timestamp with a readable date beside it. Page through a long history with the offset, which the answer hands back for the next run.

**Inputs**

- Bitcoin address (`address`, text, required): The Bitcoin address to look up. Every address format works (the ones starting 1, 3, bc1q or bc1p) and a blockchain.com link to an address works too, so a value copied out of the explorer can be pasted straight in.
- Transactions to return (`limit`, number): How many transactions to bring back, newest first. Raise it to see further into the history, or lower it when only the latest few matter. From 1 to 100. Default: `50`.
- Skip this many transactions (`offset`, number): How many of the newest transactions to skip before the ones returned. Leave it empty for the newest. To walk through a long history, pass back the 'next_offset' the previous run reported. At least 0.

**Outputs**

- `address` (text)
- `final_balance` (number)
- `final_balance_btc` (number)
- `has_more` (true/false)
- `hash160` (text)
- `next_offset` (number)
- `offset` (number)
- `returned_count` (number)
- `total_received` (number)
- `total_received_btc` (number)
- `total_sent` (number)
- `total_sent_btc` (number)
- `transaction_count` (number)
- `transactions` (list)

**Example output**

```json
{
  "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  "final_balance": 10744287807,
  "final_balance_btc": 107.44287807,
  "has_more": true,
  "hash160": "62e907b15cbf27d5425399ebf6f0fb50ebb88f18",
  "next_offset": 1,
  "offset": 0,
  "returned_count": 1,
  "total_received": 10744287807,
  "total_received_btc": 107.44287807,
  "total_sent": 0,
  "total_sent_btc": 0.0,
  "transaction_count": 65657,
  "transactions": [
    {
      "block_height": 965168,
      "block_index": 965168,
      "double_spend": false,
      "fee": 538,
      "fee_btc": 5.38e-06,
      "hash": "2a9cfca73bcfa70a8e3f381c2d3cfc3de295048e304939f6d07d37fbdaab1680",
      "inputs": [],
      "lock_time": 0,
      "out": [],
      "size": 375,
      "time": 1788352641,
      "time_utc": "2026-09-02T12:37:21Z",
      "tx_index": 4506715548509935,
      "ver": 2,
      "vin_sz": 2,
      "vout_sz": 2,
      "weight": 846
    }
  ]
}
```

### Get network statistics

A snapshot of the whole Bitcoin network right now: the market price, the total mined so far, the hash rate, the mining difficulty and when it next changes, how many blocks and transactions there have been in the last day, and the average time between blocks. The figures Blockchain.com reports in awkward units (bitcoins in satoshi, hash rate in gigahashes) are repeated in the units people actually quote. Nothing to fill in.

**Inputs**: None.

**Outputs**

- `bitcoins_mined_24h` (number)
- `blocks_size` (number)
- `difficulty` (number)
- `estimated_transaction_volume_usd` (number)
- `hash_rate` (number)
- `hash_rate_exahashes_per_second` (number)
- `market_price_usd` (number)
- `miners_revenue_usd` (number)
- `minutes_between_blocks` (number)
- `n_blocks_mined` (number)
- `n_blocks_total` (number)
- `n_tx` (number)
- `nextretarget` (number)
- `timestamp` (number)
- `timestamp_utc` (text)
- `total_bitcoins_in_circulation` (number)
- `totalbc` (number)
- `trade_volume_btc` (number)
- `trade_volume_usd` (number)

**Example output**

```json
{
  "bitcoins_mined_24h": 425.0,
  "blocks_size": 225427324,
  "difficulty": 125807076547197,
  "estimated_transaction_volume_usd": 6223127809.03,
  "hash_rate": 850530902720.82,
  "hash_rate_exahashes_per_second": 850.53,
  "market_price_usd": 77262.31,
  "miners_revenue_usd": 0.0,
  "minutes_between_blocks": 9.9259,
  "n_blocks_mined": 136,
  "n_blocks_total": 965227,
  "n_tx": 572961,
  "nextretarget": 965663,
  "timestamp": 1788386724000,
  "timestamp_utc": "2026-09-02T22:05:24Z",
  "total_bitcoins_in_circulation": 20078834.375,
  "totalbc": 2007883437500000,
  "trade_volume_btc": 3988.57,
  "trade_volume_usd": 308166131.79
}
```

### Get pending transactions

List the transactions broadcast to the network but not yet confirmed in a block: the mempool, newest first. Each one comes with the fee it is offering, which is what decides how soon it is mined. Use 'Count pending transactions' instead when only the depth of the queue matters.

**Inputs**

- Transactions to return (`limit`, number): How many pending transactions to bring back, newest first. From 1 to 100. Default: `25`.

**Outputs**

- `returned_count` (number)
- `transactions` (list)

**Example output**

```json
{
  "returned_count": 1,
  "transactions": [
    {
      "block_height": 965168,
      "block_index": 965168,
      "double_spend": false,
      "fee": 538,
      "fee_btc": 5.38e-06,
      "hash": "2a9cfca73bcfa70a8e3f381c2d3cfc3de295048e304939f6d07d37fbdaab1680",
      "inputs": [],
      "lock_time": 0,
      "out": [],
      "size": 375,
      "time": 1788352641,
      "time_utc": "2026-09-02T12:37:21Z",
      "tx_index": 4506715548509935,
      "ver": 2,
      "vin_sz": 2,
      "vout_sz": 2,
      "weight": 846
    }
  ]
}
```

### Get spendable coins

List the coins these addresses can still spend (the unspent outputs, or UTXOs) with what each is worth and how many confirmations it has. Set a minimum number of confirmations to leave out anything too recent to rely on; six is the usual bar for treating a payment as settled. This is the confirmation filter Blockchain.com actually honours, which is why it is offered here and nowhere else in this integration.

**Inputs**

- Bitcoin addresses (`addresses`, list, required): One or more Bitcoin addresses. Add a row for each. An extended public key (one starting xpub, ypub or zpub) works here too and covers every address in that wallet at once, which is the way to watch a whole wallet rather than a single address.
- Outputs to return (`limit`, number): How many unspent outputs to bring back. A busy wallet can have thousands; the default covers most of them. From 1 to 1000. Default: `250`.
- Minimum confirmations (`min_confirmations`, number): Leave out coins with fewer confirmations than this. Zero includes everything, including coins that are still unconfirmed. Six is the usual bar for treating a payment as settled. From 0 to 1000. Default: `0`.

**Outputs**

- `has_more` (true/false)
- `min_confirmations` (number)
- `output_count` (number)
- `outputs` (list)
- `total_value` (number)
- `total_value_btc` (number)

**Example output**

```json
{
  "has_more": false,
  "min_confirmations": 6,
  "output_count": 1,
  "outputs": [
    {
      "confirmations": 59,
      "script": "76a91462e907b15cbf27d5425399ebf6f0fb50ebb88f1888ac",
      "tx_hash_big_endian": "2a9cfca73bcfa70a8e3f381c2d3cfc3de295048e304939f6d07d37fbdaab1680",
      "tx_index": 4506715548509935,
      "tx_output_n": 0,
      "value": 546,
      "value_btc": 5.46e-06
    }
  ],
  "total_value": 546,
  "total_value_btc": 5.46e-06
}
```

### Get the bitcoin price

Get what one bitcoin is worth, averaged across the major exchanges. The chosen currency's price sits at the top of the answer ready to use, with the buy and sell sides and a 15-minute-delayed figure beside it, and every other currency Blockchain.com quotes follows underneath.

**Inputs**

- Currency (`currency`, text): The currency to quote bitcoin in. The list is the one Blockchain.com is quoting right now; refresh it if a currency you expect is missing. Default: `USD`.

**Outputs**

- `buy` (number)
- `currency` (text)
- `currency_count` (number)
- `price` (number)
- `price_15m` (number)
- `prices` (list)
- `sell` (number)
- `symbol` (text)

**Example output**

```json
{
  "buy": 77305.51,
  "currency": "USD",
  "currency_count": 2,
  "price": 77305.51,
  "price_15m": 77305.51,
  "prices": [
    {
      "buy": 66533.7,
      "currency": "EUR",
      "price": 66533.7,
      "price_15m": 66533.7,
      "sell": 66533.7,
      "symbol": "EUR"
    },
    {
      "buy": 77305.51,
      "currency": "USD",
      "price": 77305.51,
      "price_15m": 77305.51,
      "sell": 77305.51,
      "symbol": "USD"
    }
  ],
  "sell": 77305.51,
  "symbol": "USD"
}
```

### Get the block reward

Get the bitcoin a miner currently earns for finding a block. This is the subsidy, which halves roughly every four years (it was 50 BTC in 2009) and does not include the transaction fees in the block. Nothing to fill in.

**Inputs**: None.

**Outputs**

- `block_reward_btc` (number)
- `block_reward_satoshi` (number)

**Example output**

```json
{
  "block_reward_btc": 3.125,
  "block_reward_satoshi": 312500000
}
```

### Get the latest block

Get the block mined most recently: its hash, its height, when it was found and how many transactions it settled. A new one arrives roughly every ten minutes, so this is the way to tell how far the chain has moved. Feed the hash into 'Get a block' to read what is inside it. Nothing to fill in.

**Inputs**: None.

**Outputs**

- `block_index` (number)
- `hash` (text)
- `height` (number)
- `time` (number)
- `time_utc` (text)
- `transaction_count` (number)

**Example output**

```json
{
  "block_index": 965227,
  "hash": "000000000000000000014ac241bca01224050941af2ddb8675b76390f6887575",
  "height": 965227,
  "time": 1788386691,
  "time_utc": "2026-09-02T22:04:51Z",
  "transaction_count": 4327
}
```

### Get the mining pool split

See which mining pools found the recent blocks and what share each one took, ordered largest first. The window is in whole days, up to the ten Blockchain.com will look back. Blocks whose miner cannot be identified are grouped as 'Unknown', which is normally the largest single entry.

**Inputs**

- Days to look back (`days`, number): How many days of blocks to count. Blockchain.com looks back at most ten. From 1 to 10. Default: `4`.

**Outputs**

- `days` (number)
- `pool_count` (number)
- `pools` (list)
- `total_blocks` (number)

**Example output**

```json
{
  "days": 5,
  "pool_count": 3,
  "pools": [
    {
      "blocks_mined": 424,
      "name": "Unknown",
      "share_percent": 57.07
    },
    {
      "blocks_mined": 127,
      "name": "AntPool",
      "share_percent": 17.09
    },
    {
      "blocks_mined": 110,
      "name": "F2Pool",
      "share_percent": 14.8
    }
  ],
  "total_blocks": 743
}
```

### Get wallet balances

Look up what one or more Bitcoin addresses hold. Answers with each address's current balance and everything it has ever received, in bitcoin as well as in satoshi, plus a combined total across all of them. An extended public key (xpub) covers a whole wallet in one row, which is the way to watch every address a wallet has ever generated. This is the cheapest way to check a balance; use 'Get an address' when the transactions matter too.

**Inputs**

- Bitcoin addresses (`addresses`, list, required): One or more Bitcoin addresses. Add a row for each. An extended public key (one starting xpub, ypub or zpub) works here too and covers every address in that wallet at once, which is the way to watch a whole wallet rather than a single address.

**Outputs**

- `address_count` (number)
- `addresses` (list)
- `total_balance` (number)
- `total_balance_btc` (number)

**Example output**

```json
{
  "address_count": 1,
  "addresses": [
    {
      "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
      "final_balance": 10744287807,
      "final_balance_btc": 107.44287807,
      "total_received": 10744287807,
      "total_received_btc": 107.44287807,
      "transaction_count": 65657
    }
  ],
  "total_balance": 10744287807,
  "total_balance_btc": 107.44287807
}
```

### Get when an address was first used

Find the date an address first appeared on the blockchain: the timestamp of the block its first transaction was confirmed in. Useful for telling a long-standing wallet from one created this morning, which is often the first thing worth knowing about an address you did not expect. Blockchain.com asks that this part of its API is called no more than once every ten seconds, so keep it out of a tight loop over a long list.

**Inputs**

- Bitcoin address (`address`, text, required): The Bitcoin address to look up. Every address format works (the ones starting 1, 3, bc1q or bc1p) and a blockchain.com link to an address works too, so a value copied out of the explorer can be pasted straight in.

**Outputs**

- `address` (text)
- `first_seen` (number)
- `first_seen_utc` (text)

**Example output**

```json
{
  "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  "first_seen": 1231006505,
  "first_seen_utc": "2009-01-03T18:15:05Z"
}
```

### List every block at a height

List every block mined at a height, including any that lost the race. Almost always there is exactly one; to read that one, use 'Get a block' with the height, which is simpler. This action is for the rare case where two miners solved the same height at once: it names which of them ended up on the chain and which was orphaned. Transactions are left out.

**Inputs**

- Block height (`height`, number, required): The block number, counting from 0 for the very first block in January 2009. Bitcoin gains one roughly every ten minutes. From 0 to 10000000.

**Outputs**

- `block_count` (number)
- `blocks` (list)
- `height` (number)
- `main_chain_hash` (text)

**Example output**

```json
{
  "block_count": 1,
  "blocks": [
    {
      "bits": 386021311,
      "block_index": 965227,
      "fee": 4183960,
      "fee_btc": 0.0418396,
      "hash": "000000000000000000014ac241bca01224050941af2ddb8675b76390f6887575",
      "height": 965227,
      "main_chain": true,
      "mrkl_root": "8e6d5467d074d87e64d55e3140acf1fd2ba29e07ddf5e50e6cd3421f2b2b0c93",
      "n_tx": 4327,
      "nonce": 1178521365,
      "prev_block": "0000000000000000000124a5e18d3508bdc69a708e235ba53b4afc6f0f614edc",
      "size": 1583714,
      "time": 1788386691,
      "time_utc": "2026-09-02T22:04:51Z",
      "ver": 544022528,
      "weight": 3993110
    }
  ],
  "height": 100000,
  "main_chain_hash": "000000000000000000014ac241bca01224050941af2ddb8675b76390f6887575"
}
```

### List the blocks mined on a day

List every block mined on one calendar day, newest first, with its height, hash and time. Around 144 blocks are mined a day. Useful for daily reporting, and for finding the range of block heights a date covers.

**Inputs**

- Day (`date`, date, required): The day to list, read in UTC. Bitcoin's first block was mined on 3 January 2009, so nothing earlier has blocks in it.

**Outputs**

- `block_count` (number)
- `blocks` (list)
- `date` (text)

**Example output**

```json
{
  "block_count": 1,
  "blocks": [
    {
      "block_index": 965032,
      "hash": "000000000000000000016f3e0ad958c056e62673936eb6edc891c0e913d69eea",
      "height": 965032,
      "time": 1788263478,
      "time_utc": "2026-09-01T11:51:18Z"
    }
  ],
  "date": "2026-09-01"
}
```

### See what a transaction did to an address

Given a transaction and an address, work out what the one did to the other: whether the address was paid or paid out, and how much. A transaction can have dozens of inputs and outputs, several of them the same address, so this answers the question directly instead of leaving a workflow to add them up. Answers 'received', 'sent' or 'none'. Blockchain.com asks that this part of its API is called no more than once every ten seconds, so keep it out of a tight loop over a long list.

**Inputs**

- Transaction ID (`transaction_hash`, text, required): The transaction's ID: 64 hexadecimal characters, sometimes called a TXID or transaction hash. A blockchain.com link to the transaction works too.
- Bitcoin address (`address`, text, required): The Bitcoin address to look up. Every address format works (the ones starting 1, 3, bc1q or bc1p) and a blockchain.com link to an address works too, so a value copied out of the explorer can be pasted straight in.

**Outputs**

- `address` (text)
- `amount` (number)
- `amount_btc` (number)
- `direction` (text)
- `net_change` (number)
- `net_change_btc` (number)
- `transaction_hash` (text)

**Example output**

```json
{
  "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  "amount": 546,
  "amount_btc": 5.46e-06,
  "direction": "received",
  "net_change": 546,
  "net_change_btc": 5.46e-06,
  "transaction_hash": "2a9cfca73bcfa70a8e3f381c2d3cfc3de295048e304939f6d07d37fbdaab1680"
}
```
