# Mempool.space

> Read the Bitcoin blockchain with Mempool.space, the open-source Bitcoin explorer and mempool visualiser. Check what an address holds, watch it for incoming money, follow a transaction until it confirms, and see the individual coins behind a balance. Get the bitcoin price now or at any past moment, what a transaction needs to pay to confirm, how congested the network is, and where mining difficulty is heading. Look up any block by height or hash, see what it settled, and rank the pools mining Bitcoin over any window. Every amount comes in both satoshis and bitcoin, every time as a readable timestamp, and every record with a link a person can open. Every step only reads, so no workflow can move your bitcoin. No account or API key required.

App · Cryptocurrency · 15 actions. Web page: https://docs.lodol.com/docs/integrations/mempool-space

## Actions

### Check an address is valid

Check whether a Bitcoin address is real before anything is sent to it, and find out what kind it is. Bitcoin payments cannot be reversed and a mistyped address is money gone, so this is the step to put in front of one. An invalid address is an answer here, not a failure, so a workflow can branch on it and stop. No API key required.

**Inputs**

- Bitcoin address (`address`, text, required): The address to look at, exactly as it was given to you. Bitcoin has several address formats and all of them work here: bc1q… and bc1p… (the modern ones), and the older 1… and 3…. Capitalisation matters everywhere except in a bc1 address, so paste rather than retype.

**Outputs**

- `address` (text): The address, as the network reads it.
- `explorer_url` (text): Its page on mempool.space, when it is valid.
- `reason` (text): Why it was rejected - a bad checksum, the wrong length. Null when it is valid.
- `type` (text): What kind it is: 'Taproot (P2TR)', 'Native SegWit (P2WPKH)', 'Script hash (P2SH)', 'Legacy (P2PKH)'. Null when it is not valid.
- `valid` (true/false): Whether this is a real Bitcoin address. This is the field to branch on.

**Example output**

```json
{
  "address": "bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97",
  "explorer_url": "https://mempool.space/address/bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97",
  "reason": null,
  "type": "Native SegWit (P2WSH)",
  "valid": true
}
```

### Check network congestion

Check how busy Bitcoin is: how many transactions are waiting to be mined, how much room they need, and how many blocks it would take to clear them. When the backlog is deep, cheap transactions wait - so this is the step to check before sending anything, or to post to a channel when the network gets busy. No API key required.

**Inputs**: None.

**Outputs**

- `next_block_median_fee_rate_sat_vb` (number): The middle fee rate among the transactions expected in the next block, in sat/vB.
- `projected_blocks` (list): Each expected block, soonest first.
- `projected_blocks_capped` (true/false): True when the backlog is deeper than mempool.space projects, so the block count above is a floor rather than an estimate.
- `projected_blocks_to_clear` (number): How many blocks mempool.space expects it will take to clear the backlog - roughly ten minutes each.
- `size_vmb` (number): How much room everything waiting would take, in virtual megabytes. A block holds about one, so this is the backlog measured in blocks' worth.
- `total_fees_waiting_btc` (number): What every waiting transaction has offered in fees. In bitcoin. The same amount as the satoshi figure beside it, converted for reading.
- `total_fees_waiting_sats` (number): What every waiting transaction has offered in fees. In satoshis - the whole-number unit Bitcoin counts in, a hundred million to the bitcoin. This is the exact figure; use it for any arithmetic.
- `transactions_waiting` (number): How many transactions have been broadcast but not yet mined. A few thousand is quiet; tens of thousands is busy.

**Example output**

```json
{
  "next_block_median_fee_rate_sat_vb": 3.01,
  "projected_blocks": [
    {
      "median_fee_rate_sat_vb": 3.01,
      "total_fees_btc": 0.03657466,
      "total_fees_sats": 3657466,
      "transaction_count": 3885
    }
  ],
  "projected_blocks_capped": true,
  "projected_blocks_to_clear": 8,
  "size_vmb": 43.913,
  "total_fees_waiting_btc": 0.10238009,
  "total_fees_waiting_sats": 10238009,
  "transactions_waiting": 87582
}
```

### Check whether outputs have been spent

Check, for each of a transaction's outputs, whether the money has been moved on again - and by which transaction. The step that answers 'has the recipient touched what we sent them' and 'is that coin still where we left it', which a balance alone cannot tell you. No API key required.

**Inputs**

- Transaction ID (`txid`, text, required): The transaction's id: 64 characters, made up of the digits 0-9 and the letters a-f. Every wallet and every explorer calls it the same thing, so this is what a receipt, a support ticket or an earlier step will have given you.

**Outputs**

- `all_spent` (true/false): True when every output has been moved on. The field to branch on for 'has it all been swept'.
- `explorer_url` (text): The transaction's page on mempool.space.
- `output_count` (number): How many outputs the transaction has.
- `outputs` (list): Each output, in the order the transaction lists them.
- `spent_count` (number): How many of them have been spent onward.
- `txid` (text): The transaction whose outputs these are.
- `unspent_count` (number): How many are still sitting where this transaction put them.

**Example output**

```json
{
  "all_spent": false,
  "explorer_url": "https://mempool.space/tx/15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521",
  "output_count": 2,
  "outputs": [
    {
      "block_hash": "000000000000000000034b1d9e57e5b0e1a8e4d1e4c2b0f8a7d6c5b4a3928170",
      "block_height": 800001,
      "block_time": 1690169241,
      "block_time_iso": "2023-07-24T03:27:21+00:00",
      "confirmations": 4,
      "confirmed": true,
      "output_index": 0,
      "spent": true,
      "spent_by_explorer_url": "https://mempool.space/tx/34de8ba520eb846da8831fa47c06eef9b4eb4a2ff6a3271165fd6b9aafc5a20c",
      "spent_by_txid": "34de8ba520eb846da8831fa47c06eef9b4eb4a2ff6a3271165fd6b9aafc5a20c"
    },
    {
      "block_hash": null,
      "block_height": null,
      "block_time": null,
      "block_time_iso": null,
      "confirmations": 0,
      "confirmed": false,
      "output_index": 1,
      "spent": false,
      "spent_by_explorer_url": null,
      "spent_by_txid": null
    }
  ],
  "spent_count": 1,
  "txid": "15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521",
  "unspent_count": 1
}
```

### Get a block

Get one block by its height or its hash: when it was mined, which pool found it, how many transactions it settled and what they paid. Paste whichever of the two you have - it works out which. No API key required.

**Inputs**

- Block (`block`, text, required): Either the block's height - its number, such as 800000 - or its 64-character hash. Whichever you have is fine; this works out which one you gave it.

**Outputs**

- `block` (object): One block: a batch of transactions settled onto the chain.

**Example output**

```json
{
  "block": {
    "difficulty": 53911173001054.586,
    "explorer_url": "https://mempool.space/block/00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054",
    "hash": "00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054",
    "height": 800000,
    "median_fee_rate_sat_vb": 6.0,
    "merkle_root": "91f01a00530c8c83617190048ea8b0814d506cf24dfdbcf8893f8f0cab7f0855",
    "mined_by": "Foundry USA",
    "previous_block_hash": "000000000000000000012117ad9f72c1c0e42227c2d042dca23e6b96bd9fbb55",
    "reward_btc": 6.3868768,
    "reward_sats": 638687680,
    "size_bytes": 1634536,
    "timestamp": 1690168629,
    "timestamp_iso": "2023-07-24T03:17:09+00:00",
    "total_fees_btc": 0.1368768,
    "total_fees_sats": 13687680,
    "transaction_count": 3721,
    "weight": 3992881
  }
}
```

### Get a transaction

Get one Bitcoin transaction: whether it has confirmed and how many times, what it moved and between which addresses, and what it paid in fees. The step behind 'wait for three confirmations before shipping' and 'did that payment actually go through'. No API key required.

**Inputs**

- Transaction ID (`txid`, text, required): The transaction's id: 64 characters, made up of the digits 0-9 and the letters a-f. Every wallet and every explorer calls it the same thing, so this is what a receipt, a support ticket or an earlier step will have given you.

**Outputs**

- `transaction` (object): One Bitcoin transaction. The same shape wherever it was found - looked up on its own, on an address, or read out of a block.

**Example output**

```json
{
  "transaction": {
    "block_hash": "00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054",
    "block_height": 800000,
    "block_time": 1690168629,
    "block_time_iso": "2023-07-24T03:17:09+00:00",
    "confirmations": 3,
    "confirmed": true,
    "explorer_url": "https://mempool.space/tx/15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521",
    "fee_btc": 0.0002,
    "fee_rate_sat_vb": 22.62,
    "fee_sats": 20000,
    "input_count": 1,
    "inputs": [
      {
        "address": "157HqdxdT8dxTjeRLVT5HPtFc1LH4CeuVC",
        "from_output_index": 12,
        "from_txid": "1fdfed84588cb826b876cd761ecebcf1726453437f0a6826e82ed54b2807a036",
        "is_new_coin": false,
        "replaceable": false,
        "value_btc": 60.1346,
        "value_sats": 6013460000
      }
    ],
    "inputs_truncated": false,
    "output_count": 2,
    "outputs": [
      {
        "address": "1BUBQuPV3gEV7P2XLNuAJQjf5t265Yyj9t",
        "output_index": 0,
        "type": "p2pkh",
        "type_label": "Legacy (P2PKH)",
        "value_btc": 12.4,
        "value_sats": 1240000000
      },
      {
        "address": "bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97",
        "output_index": 1,
        "type": "v0_p2wsh",
        "type_label": "Native SegWit (P2WSH)",
        "value_btc": 47.7344,
        "value_sats": 4773440000
      }
    ],
    "outputs_truncated": false,
    "replaceable": false,
    "size_bytes": 884,
    "total_out_btc": 60.1344,
    "total_out_sats": 6013440000,
    "txid": "15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521",
    "vsize": 884,
    "weight": 3536
  }
}
```

### Get an address balance

Get what a Bitcoin address holds and what has passed through it: its balance, everything ever received and sent, and how many transactions have touched it. Money still waiting to confirm is reported separately from money that has settled, because only one of them is yours to spend. The step behind a treasury report or a 'has the payment arrived' check. No API key required.

**Inputs**

- Bitcoin address (`address`, text, required): The address to look at, exactly as it was given to you. Bitcoin has several address formats and all of them work here: bc1q… and bc1p… (the modern ones), and the older 1… and 3…. Capitalisation matters everywhere except in a bc1 address, so paste rather than retype.

**Outputs**

- `address_summary` (object): What an address holds, and what has passed through it.

**Example output**

```json
{
  "address_summary": {
    "address": "bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97",
    "balance_btc": 1.30010079,
    "balance_sats": 130010079,
    "confirmed_balance_btc": 1.30010079,
    "confirmed_balance_sats": 130010079,
    "explorer_url": "https://mempool.space/address/bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97",
    "pending_balance_btc": 0.0,
    "pending_balance_sats": 0,
    "pending_transaction_count": 0,
    "total_received_btc": 5.30775983,
    "total_received_sats": 530775983,
    "total_sent_btc": 4.00765904,
    "total_sent_sats": 400765904,
    "transaction_count": 339,
    "unspent_output_count": 51
  }
}
```

### Get network status

Get the health of the Bitcoin network: how much computing power is securing it, how hard mining currently is, and when the difficulty next changes and by how much. Difficulty adjusts every two weeks and the estimate moves all the way up to the day, so this is the step behind a mining report or a network dashboard. No API key required.

**Inputs**: None.

**Outputs**

- `blocks_until_adjustment` (number): How many blocks are left before difficulty changes.
- `days_until_adjustment` (number): How many days away that is.
- `difficulty` (number): How hard it currently is to mine a block.
- `difficulty_change_percent` (number): How much difficulty is expected to move at the next adjustment, as a percentage. Positive means mining gets harder. This estimate moves until the moment it happens.
- `hashrate_eh_s` (number): How much computing power is mining Bitcoin, in exahashes per second - the unit mining reports use. This is the readable figure.
- `hashrate_hs` (number): The same figure in raw hashes per second.
- `next_adjustment_at` (number): When that is expected to happen. As unix seconds.
- `next_adjustment_at_iso` (text): When that is expected to happen. As an ISO 8601 UTC timestamp, e.g. 2024-01-31T12:00:00+00:00. This is the one to show a person, and the one to feed into a date-and-time field.
- `next_adjustment_height` (number): The block height at which it will change.
- `previous_change_percent` (number): How much it moved at the last adjustment.
- `progress_percent` (number): How far through the current two-week period we are.

**Example output**

```json
{
  "blocks_until_adjustment": 303,
  "days_until_adjustment": 2.1,
  "difficulty": 125807076547197.5,
  "difficulty_change_percent": 0.93,
  "hashrate_eh_s": 907.46,
  "hashrate_hs": 9.074583332735401e+20,
  "next_adjustment_at": 1788645292,
  "next_adjustment_at_iso": "2026-09-05T21:54:52+00:00",
  "next_adjustment_height": 965664,
  "previous_change_percent": -1.31,
  "progress_percent": 84.97
}
```

### Get recommended fees

Get what a Bitcoin transaction needs to pay right now to confirm, at each level of hurry - next block, within half an hour, within an hour, and the two economy rates. All in sat/vB, the unit every wallet asks for. Fees swing by an order of magnitude in a day, so this is the step behind 'send when it's cheap' and 'tell me when fees spike'. No API key required.

**Inputs**: None.

**Outputs**

- `economy_sat_vb` (number): Cheap, and it may take many hours or longer. Fine for anything not in a hurry.
- `fastest_sat_vb` (number): Pay this to be in the very next block - about ten minutes. The rate to use when it has to land now.
- `half_hour_sat_vb` (number): Pay this to confirm within about half an hour.
- `hour_sat_vb` (number): Pay this to confirm within about an hour.
- `minimum_sat_vb` (number): The least the network will currently relay. Below this a transaction may never be passed on at all.

**Example output**

```json
{
  "economy_sat_vb": 2.0,
  "fastest_sat_vb": 4.0,
  "half_hour_sat_vb": 4.0,
  "hour_sat_vb": 3.0,
  "minimum_sat_vb": 1.0
}
```

### Get the bitcoin price

Get what one bitcoin is worth right now, in your choice of seven currencies - and in all seven at once, so one step can price a report for several regions. The number behind a daily price post, a portfolio total or a threshold alert. No API key required.

**Inputs**

- Currency (`currency`, text): Which currency to price bitcoin in. US dollars unless you say otherwise. One of: `USD` (US dollar (USD)), `EUR` (Euro (EUR)), `GBP` (British pound (GBP)), `CAD` (Canadian dollar (CAD)), `CHF` (Swiss franc (CHF)), `AUD` (Australian dollar (AUD)), `JPY` (Japanese yen (JPY)). Default: `USD`.

**Outputs**

- `as_of` (number): When this price was published. As unix seconds.
- `as_of_iso` (text): When this price was published. As an ISO 8601 UTC timestamp, e.g. 2024-01-31T12:00:00+00:00. This is the one to show a person, and the one to feed into a date-and-time field.
- `currency` (text): The currency you asked for.
- `price` (number): What one bitcoin is worth in that currency.
- `prices` (object): The price in every currency mempool.space quotes, keyed by currency code.

**Example output**

```json
{
  "as_of": 1788465008,
  "as_of_iso": "2026-09-03T19:50:08+00:00",
  "currency": "USD",
  "price": 81466.0,
  "prices": {
    "AUD": 113162.0,
    "CAD": 112330.0,
    "CHF": 65781.0,
    "EUR": 70054.0,
    "GBP": 60218.0,
    "JPY": 12650405.0,
    "USD": 81466.0
  }
}
```

### Get the bitcoin price on a date

Get what one bitcoin was worth at a past moment. Pick the date and time and this finds the closest price mempool.space has, and tells you which moment that price is from. The step to put after 'Get a transaction' to value a payment at the moment it confirmed, for a ledger, an invoice or a tax record. No API key required.

**Inputs**

- Date and time (`date_time`, date and time, required): The moment to price bitcoin at. Mempool.space keeps hourly prices for recent years and daily prices for the earlier ones, and answers with the closest it has - the result says exactly which moment its price is from. Its index starts in 2010.
- Currency (`currency`, text): Which currency to price bitcoin in. US dollars unless you say otherwise. One of: `USD` (US dollar (USD)), `EUR` (Euro (EUR)), `GBP` (British pound (GBP)), `CAD` (Canadian dollar (CAD)), `CHF` (Swiss franc (CHF)), `AUD` (Australian dollar (AUD)), `JPY` (Japanese yen (JPY)). Default: `USD`.

**Outputs**

- `currency` (text): The currency you asked for.
- `price` (number): What one bitcoin was worth at that moment.
- `price_at` (number): The moment this price is actually from - the closest one mempool.space has to what you asked for. As unix seconds.
- `price_at_iso` (text): The moment this price is actually from - the closest one mempool.space has to what you asked for. As an ISO 8601 UTC timestamp, e.g. 2024-01-31T12:00:00+00:00. This is the one to show a person, and the one to feed into a date-and-time field.
- `requested_at` (number): The moment you asked about. As unix seconds.
- `requested_at_iso` (text): The moment you asked about. As an ISO 8601 UTC timestamp, e.g. 2024-01-31T12:00:00+00:00. This is the one to show a person, and the one to feed into a date-and-time field.

**Example output**

```json
{
  "currency": "USD",
  "price": 64969.0,
  "price_at": 1635984000,
  "price_at_iso": "2021-11-04T00:00:00+00:00",
  "requested_at": 1636502400,
  "requested_at_iso": "2021-11-10T00:00:00+00:00"
}
```

### List a block's transactions

List the transactions settled in one block, in the order they were mined, a page at a time. The first is always the miner's own reward. Blocks hold thousands of transactions, so this is the step to loop over when auditing what a block moved. No API key required.

**Inputs**

- Block (`block`, text, required): Either the block's height - its number, such as 800000 - or its 64-character hash. Whichever you have is fine; this works out which one you gave it.
- How many (`limit`, number): Optional. How many transactions to return, between 1 and 100. 25 by default. From 1 to 100. Default: `25`.
- Skip (`offset`, number): Optional. How many records to skip before this page. Use the next offset from the previous result to page through. 0 by default. At least 0. Default: `0`.

**Outputs**

- `block_hash` (text): The block these came from, by hash.
- `block_height` (number): The block these came from, by height - filled in whether you named the block by height or by hash.
- `count` (number): How many records are in this page.
- `has_more` (true/false): Whether there are more records after this page.
- `next_offset` (number): The 'skip' value that fetches the next page, or null when this is the last one.
- `total_count` (number): How many there are in total, across every page.
- `transactions` (list): The transactions in this page, in the order they were mined.

**Example output**

```json
{
  "block_hash": "00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054",
  "block_height": 800000,
  "count": 1,
  "has_more": true,
  "next_offset": 1,
  "total_count": 3721,
  "transactions": [
    {
      "block_hash": "00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054",
      "block_height": 800000,
      "block_time": 1690168629,
      "block_time_iso": "2023-07-24T03:17:09+00:00",
      "confirmations": 3,
      "confirmed": true,
      "explorer_url": "https://mempool.space/tx/15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521",
      "fee_btc": 0.0002,
      "fee_rate_sat_vb": 22.62,
      "fee_sats": 20000,
      "input_count": 1,
      "inputs": [
        {
          "address": "157HqdxdT8dxTjeRLVT5HPtFc1LH4CeuVC",
          "from_output_index": 12,
          "from_txid": "1fdfed84588cb826b876cd761ecebcf1726453437f0a6826e82ed54b2807a036",
          "is_new_coin": false,
          "replaceable": false,
          "value_btc": 60.1346,
          "value_sats": 6013460000
        }
      ],
      "inputs_truncated": false,
      "output_count": 2,
      "outputs": [
        {
          "address": "1BUBQuPV3gEV7P2XLNuAJQjf5t265Yyj9t",
          "output_index": 0,
          "type": "p2pkh",
          "type_label": "Legacy (P2PKH)",
          "value_btc": 12.4,
          "value_sats": 1240000000
        },
        {
          "address": "bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97",
          "output_index": 1,
          "type": "v0_p2wsh",
          "type_label": "Native SegWit (P2WSH)",
          "value_btc": 47.7344,
          "value_sats": 4773440000
        }
      ],
      "outputs_truncated": false,
      "replaceable": false,
      "size_bytes": 884,
      "total_out_btc": 60.1344,
      "total_out_sats": 6013440000,
      "txid": "15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521",
      "vsize": 884,
      "weight": 3536
    }
  ]
}
```

### List an address's transactions

List the most recent transactions at a Bitcoin address, newest first, with what each one moved and how many confirmations it has. Include the ones still waiting to confirm and you see a payment the moment it is broadcast, rather than ten minutes later. The step to run on a schedule to watch an address for incoming money. No API key required.

**Inputs**

- Bitcoin address (`address`, text, required): The address to look at, exactly as it was given to you. Bitcoin has several address formats and all of them work here: bc1q… and bc1p… (the modern ones), and the older 1… and 3…. Capitalisation matters everywhere except in a bc1 address, so paste rather than retype.
- Which transactions (`status`, text): Whether to include transactions that are still waiting to confirm. Pending ones are the earliest sign that money is on its way, and the least certain: they can still be replaced or dropped. One of: `all` (Confirmed and pending), `confirmed` (Confirmed only), `pending` (Pending only (still waiting to confirm)). Default: `all`.
- How many (`limit`, number): Optional. How many transactions to return, between 1 and 100. 10 by default. From 1 to 100. Default: `10`.

**Outputs**

- `count` (number): How many records came back.
- `transactions` (list): The address's most recent transactions, newest first.

**Example output**

```json
{
  "count": 1,
  "transactions": [
    {
      "block_hash": "00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054",
      "block_height": 800000,
      "block_time": 1690168629,
      "block_time_iso": "2023-07-24T03:17:09+00:00",
      "confirmations": 3,
      "confirmed": true,
      "explorer_url": "https://mempool.space/tx/15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521",
      "fee_btc": 0.0002,
      "fee_rate_sat_vb": 22.62,
      "fee_sats": 20000,
      "input_count": 1,
      "inputs": [
        {
          "address": "157HqdxdT8dxTjeRLVT5HPtFc1LH4CeuVC",
          "from_output_index": 12,
          "from_txid": "1fdfed84588cb826b876cd761ecebcf1726453437f0a6826e82ed54b2807a036",
          "is_new_coin": false,
          "replaceable": false,
          "value_btc": 60.1346,
          "value_sats": 6013460000
        }
      ],
      "inputs_truncated": false,
      "output_count": 2,
      "outputs": [
        {
          "address": "1BUBQuPV3gEV7P2XLNuAJQjf5t265Yyj9t",
          "output_index": 0,
          "type": "p2pkh",
          "type_label": "Legacy (P2PKH)",
          "value_btc": 12.4,
          "value_sats": 1240000000
        },
        {
          "address": "bc1qgdjqv0av3q56jvd82tkdjpy7gdp9ut8tlqmgrpmv24sq90ecnvqqjwvw97",
          "output_index": 1,
          "type": "v0_p2wsh",
          "type_label": "Native SegWit (P2WSH)",
          "value_btc": 47.7344,
          "value_sats": 4773440000
        }
      ],
      "outputs_truncated": false,
      "replaceable": false,
      "size_bytes": 884,
      "total_out_btc": 60.1344,
      "total_out_sats": 6013440000,
      "txid": "15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521",
      "vsize": 884,
      "weight": 3536
    }
  ]
}
```

### List an address's unspent coins

List the individual coins sitting at a Bitcoin address, each with its own value and how many confirmations it has, plus what they add up to. Bitcoin holds a balance as separate coins rather than one number, and a wallet has to spend whole ones - so this is what a spend actually has to work with, and what a coin-management or consolidation workflow reads. Addresses holding more than 500 coins are more than mempool.space's public API will list; 'Get an address balance' still counts them. No API key required.

**Inputs**

- Bitcoin address (`address`, text, required): The address to look at, exactly as it was given to you. Bitcoin has several address formats and all of them work here: bc1q… and bc1p… (the modern ones), and the older 1… and 3…. Capitalisation matters everywhere except in a bc1 address, so paste rather than retype.
- How many (`limit`, number): Optional. How many coins to return, between 1 and 100. 10 by default. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many records to skip before this page. Use the next offset from the previous result to page through. 0 by default. At least 0. Default: `0`.

**Outputs**

- `count` (number): How many records are in this page.
- `has_more` (true/false): Whether there are more records after this page.
- `next_offset` (number): The 'skip' value that fetches the next page, or null when this is the last one.
- `total_count` (number): How many there are in total, across every page.
- `total_value_btc` (number): What every one of the address's coins adds up to - the whole set, not just this page. In bitcoin. The same amount as the satoshi figure beside it, converted for reading.
- `total_value_sats` (number): What every one of the address's coins adds up to - the whole set, not just this page. In satoshis - the whole-number unit Bitcoin counts in, a hundred million to the bitcoin. This is the exact figure; use it for any arithmetic.
- `unspent_outputs` (list): The coins in this page, pending first then newest.

**Example output**

```json
{
  "count": 1,
  "has_more": true,
  "next_offset": 1,
  "total_count": 51,
  "total_value_btc": 1.30010079,
  "total_value_sats": 130010079,
  "unspent_outputs": [
    {
      "block_hash": "00000000000000000000008bbed3c7ad1fd4d4c8ff21c3abc282bf2d47872b71",
      "block_height": 964492,
      "block_time": 1787958835,
      "block_time_iso": "2026-08-28T23:13:55+00:00",
      "confirmations": 870,
      "confirmed": true,
      "explorer_url": "https://mempool.space/tx/ad3501200064d4ae96b13c77c668777f88fc40baad065c49a0b5cca3981674bb",
      "output_index": 6,
      "txid": "ad3501200064d4ae96b13c77c668777f88fc40baad065c49a0b5cca3981674bb",
      "value_btc": 1.628e-05,
      "value_sats": 1628
    }
  ]
}
```

### List mining pools

List the mining pools that found Bitcoin's blocks over a period you choose, ranked by how many they mined and what share of the network that is. Mining concentration is the number people watch about Bitcoin's health, and it shifts week to week - so this is the step behind a mining report or a concentration alert. No API key required.

**Inputs**

- Over what period (`period`, text): How far back to count blocks. A short window shows who is mining right now and swings about; a long one shows the settled picture. Last week unless you say otherwise. One of: `24h` (Last 24 hours), `3d` (Last 3 days), `1w` (Last week), `1m` (Last month), `3m` (Last 3 months), `6m` (Last 6 months), `1y` (Last year), `2y` (Last 2 years), `3y` (Last 3 years). Default: `1w`.

**Outputs**

- `count` (number): How many pools mined at least one block in the window.
- `hashrate_eh_s` (number): The network's estimated hashrate at the end of the window, in exahashes per second.
- `period` (text): The window these figures cover, e.g. 1w.
- `period_label` (text): The same window in words, e.g. 'Last week'.
- `pools` (list): The pools, most blocks first.
- `total_blocks` (number): How many blocks were mined in that window, across every pool. The shares below are of this.

**Example output**

```json
{
  "count": 18,
  "hashrate_eh_s": 914.04,
  "period": "1w",
  "period_label": "Last week",
  "pools": [
    {
      "blocks_mined": 285,
      "empty_blocks": 0,
      "explorer_url": "https://mempool.space/mining/pool/foundryusa",
      "name": "Foundry USA",
      "rank": 1,
      "share_percent": 27.94,
      "slug": "foundryusa",
      "website": "https://foundrydigital.com"
    }
  ],
  "total_blocks": 1020
}
```

### List recent blocks

List the blocks most recently mined, newest first, each with its miner, its fees and how many transactions it settled. A block arrives about every ten minutes, so this is what a 'what's happened on Bitcoin lately' digest reads, and how a workflow notices a new block. No API key required.

**Inputs**

- How many (`limit`, number): Optional. How many blocks to return, between 1 and 15. 15 by default. From 1 to 15. Default: `15`.

**Outputs**

- `blocks` (list): The most recently mined blocks, newest first. Mempool.space publishes the last 15; older ones are reached by height with 'Get a block'.
- `count` (number): How many records came back.

**Example output**

```json
{
  "blocks": [
    {
      "difficulty": 53911173001054.586,
      "explorer_url": "https://mempool.space/block/00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054",
      "hash": "00000000000000000002a7c4c1e48d76c5a37902165a270156b7a8d72728a054",
      "height": 800000,
      "median_fee_rate_sat_vb": 6.0,
      "merkle_root": "91f01a00530c8c83617190048ea8b0814d506cf24dfdbcf8893f8f0cab7f0855",
      "mined_by": "Foundry USA",
      "previous_block_hash": "000000000000000000012117ad9f72c1c0e42227c2d042dca23e6b96bd9fbb55",
      "reward_btc": 6.3868768,
      "reward_sats": 638687680,
      "size_bytes": 1634536,
      "timestamp": 1690168629,
      "timestamp_iso": "2023-07-24T03:17:09+00:00",
      "total_fees_btc": 0.1368768,
      "total_fees_sats": 13687680,
      "transaction_count": 3721,
      "weight": 3992881
    }
  ],
  "count": 1
}
```
