# Blockchair

> Read any of 18 blockchains through one integration. Blockchair is a multi-chain explorer, so the same steps answer for Bitcoin, Ethereum, Litecoin, Dogecoin, Monero, Cardano, XRP and the rest: look up an address's balance and history, follow a transaction until it confirms, read a block, or check thousands of addresses in one cheap request. Balances come back both as satoshi or wei and as a readable coin amount, and every lookup reports how many confirmations it has. Beyond the lookups it answers the analytical questions most explorers cannot: filter, sort and total the blocks, transactions, outputs and token transfers tables the way you would query a database, watch every balance a block moved without polling addresses one by one, read a whole watch-only wallet from its xpub, and check a portfolio across chains in a single call. Also carries crypto news from 60+ outlets, node-software release tracking and halving countdowns. Every action is read-only: nothing here can move coins or change a blockchain. Works with no account and no API key on the free plan; a Premium key raises the limits.

App · Cryptocurrency · 33 actions. Web page: https://docs.lodol.com/docs/integrations/blockchair

## Actions

### Check addresses across blockchains

Check addresses on several different blockchains in one request and get the whole holding's value in USD. Write each one as chain:address - bitcoin:1A1z..., ethereum:0xd8dA... - and Blockchair adds them up across chains. This is the portfolio check: one call instead of one per chain. No API key required.

**Inputs**

- Addresses (`addresses`, text, required): The addresses to check, each written as chain:address and separated by commas. Up to 100, of which at most one may be an Ethereum address. Chains: bitcoin, bitcoin-cash, ethereum, litecoin, bitcoin-sv, dash, groestlcoin, zcash.

**Outputs**

- `addresses` (list): The addresses that were found, richest first.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `count` (number): How many entries came back.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `not_found` (list): The addresses that were asked for and that Blockchair has no record of. Empty when everything was found.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `requested` (list): The chain:address entries that were asked about.
- `total_balance_usd` (number): What everything found is worth in USD, added up across chains.
- `total_received_usd` (number): What the whole set has ever received, in USD.
- `totals` (object): Blockchair's own totals for the set, with its field names.
- `transaction_count` (number): Transactions across the whole set, all chains together.
- `transactions` (list): The newest transactions across the whole set.

**Example output**

```json
{
  "addresses": [
    {
      "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
      "balance": {
        "decimal": "68.33161946",
        "raw": 6833161946,
        "unit": "BTC"
      },
      "balance_usd": 623983.1661066874,
      "chain": "bitcoin",
      "details": {
        "balance": 6833161946,
        "balance_usd": 623983.1661066874,
        "chain": "bitcoin",
        "type": "pubkeyhash"
      },
      "first_seen_receiving": "2009-01-03 18:15:05",
      "first_seen_spending": null,
      "key": "bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
      "last_seen_receiving": "2020-07-18 12:16:28",
      "last_seen_spending": null,
      "received": {
        "decimal": "68.33161946",
        "raw": 6833161946,
        "unit": "BTC"
      },
      "spent": {
        "decimal": "0",
        "raw": 0,
        "unit": "BTC"
      },
      "transaction_count": 2399
    }
  ],
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "count": 1,
  "market_price_usd": 78587,
  "not_found": [
    "ethereum:0xd8da6bf26964af9d7eed9e03e53415d37aa96045"
  ],
  "request_cost": 1,
  "requested": [
    "bitcoin:1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
    "ethereum:0xd8da6bf26964af9d7eed9e03e53415d37aa96045"
  ],
  "total_balance_usd": 634530.2131392508,
  "total_received_usd": 195118.95799999998,
  "totals": {
    "address_count": 2,
    "balance_usd": 634530.2131392508,
    "received_usd": 195118.95799999998,
    "transaction_count": 3524
  },
  "transaction_count": 3524,
  "transactions": [
    {
      "balance_change": 267582,
      "block_id": 600890,
      "hash": "4db4d68b13bf667ad9a44f4222bad2239de318fa75555ef966e84315056374b5",
      "time": "2019-10-24 18:47:23"
    }
  ]
}
```

### Check many address balances

Check the confirmed balance of a long list of addresses in one cheap, fast request - up to 25,000 of them. This is the endpoint for polling a watch list or auditing cold storage: 25,000 addresses cost 26 request points against one point per address anywhere else. Addresses holding nothing are reported separately rather than silently dropped. Bitcoin-like chains only. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the addresses are on. Bitcoin by default. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)). Default: `bitcoin`.
- Addresses (`addresses`, text, required): The addresses to check, separated by commas. Up to 25,000.

**Outputs**

- `balances` (list): The addresses that hold coins, richest first.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `checked_count` (number): How many addresses were checked.
- `empty_addresses` (list): The addresses that hold nothing, or that the chain has never seen. Blockchair leaves these out of its answer; they are listed here so nothing goes missing.
- `funded_count` (number): How many of the addresses hold coins.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `total_balance` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.

**Example output**

```json
{
  "balances": [
    {
      "address": "35hK24tcLEWcgNA4JxpvbkNkoAcDGqQPsP",
      "balance": {
        "decimal": "255502.15769897",
        "raw": 25550215769897,
        "unit": "BTC"
      }
    },
    {
      "address": "34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo",
      "balance": {
        "decimal": "40533.99981517",
        "raw": 4053399981517,
        "unit": "BTC"
      }
    }
  ],
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "checked_count": 2,
  "empty_addresses": [],
  "funded_count": 2,
  "market_price_usd": 78587,
  "request_cost": 1,
  "total_balance": {
    "decimal": "296036.15751414",
    "raw": 29603615751414,
    "unit": "BTC"
  }
}
```

### Get a block

Look up one block, or up to ten at once, by height or by hash. Reports when it was mined, its size, who mined it, the fees and reward it paid, how many confirmations it has now, and the hashes of the transactions inside it. Works on every Bitcoin-like chain and on Ethereum. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the block is on. Bitcoin by default. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), `ethereum` (Ethereum (ETH)). Default: `bitcoin`.
- Block height or hash (`blocks`, text, required): The block to look up: its height (a number, e.g. 700000) or its 64-character hash. Up to 10, separated by commas, to look several up in one request.
- Number of entries (`limit`, number): Optional. How many entries to return in the nested lists (a block's transaction hashes, an address's transactions and unspent outputs). 100 by default, up to 10000. Use 0 to skip them entirely and just get the summary. From 0 to 10000. Default: `100`.
- Skip (`offset`, number): Optional. How many of those nested entries to skip, for paging through a long history. From 0 to 1000000. Default: `0`.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `blocks` (list): The blocks that were found, in the order they were asked for.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many entries came back.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `not_found` (list): The blocks that were asked for and that Blockchair has no record of. Empty when everything was found.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.

**Example output**

```json
{
  "best_block_height": 964212,
  "blocks": [
    {
      "block": {
        "bits": 486604799,
        "date": "2009-01-03",
        "difficulty": 1,
        "fee_total": 0,
        "fee_total_usd": 0,
        "generation": 5000000000,
        "guessed_miner": "Unknown",
        "hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
        "id": 0,
        "input_count": 1,
        "input_total": 0,
        "median_time": "2009-01-03 18:15:05",
        "merkle_root": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
        "nonce": 2083236893,
        "output_count": 1,
        "output_total": 5000000000,
        "output_total_usd": 0,
        "reward": 5000000000,
        "reward_usd": 0,
        "size": 285,
        "time": "2009-01-03 18:15:05",
        "transaction_count": 1,
        "version": 1
      },
      "confirmations": 964213,
      "hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
      "height": 0,
      "requested": "0",
      "reward": {
        "decimal": "50",
        "raw": 5000000000,
        "unit": "BTC"
      },
      "time": "2009-01-03 18:15:05",
      "transaction_count": 1,
      "transactions": [
        "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
      ],
      "uncles": []
    }
  ],
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "count": 1,
  "market_price_usd": 78587,
  "not_found": [],
  "request_cost": 1
}
```

### Get a token balance

Check how much of one ERC-20 token a wallet holds, and list its transfers of that token. This is the check for a payment in USDT or USDC: point it at the token's contract and the wallet, and read the balance and the newest transfers. No API key required.

**Inputs**

- Token contract address (`token_address`, text, required): The token's contract address, starting with 0x.
- Wallet address (`address`, text, required): The Ethereum wallet whose balance to check, starting with 0x.
- Number of entries (`limit`, number): Optional. How many entries to return in the nested lists (a block's transaction hashes, an address's transactions and unspent outputs). 100 by default, up to 10000. Use 0 to skip them entirely and just get the summary. From 0 to 10000. Default: `100`.
- Skip (`offset`, number): Optional. How many of those nested entries to skip, for paging through a long history. From 0 to 1000000. Default: `0`.

**Outputs**

- `address` (text): The wallet that was checked.
- `balance` (text): The exact balance in the token's smallest unit, as a string. Divide by 10^decimals for whole tokens; Get an ERC-20 token reports the decimals.
- `balance_approximate` (number): The same balance in whole tokens, already scaled.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `details` (object): Everything Blockchair reports about the holding.
- `first_seen_receiving` (text): When it first received the token (UTC).
- `found` (true/false): False when the wallet has never held this token, which is not an error.
- `last_seen_receiving` (text): When it last received the token (UTC).
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `received_approximate` (number): How many tokens the wallet has ever received.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `spent_approximate` (number): How many it has ever sent.
- `token_address` (text): The token that was checked.
- `transaction_count` (number): How many transfers of this token the wallet has taken part in.
- `transfers` (list): The wallet's newest transfers of this token, each with its block, hash, sender, recipient and value.

**Example output**

```json
{
  "address": "0x3282791d6fd713f1e94f4bfd565eaa78b3a0599d",
  "balance": "5000000000000000000",
  "balance_approximate": 5,
  "best_block_height": 25842561,
  "cached_until": "2026-08-26 23:04:33",
  "details": {
    "balance": "5000000000000000000",
    "balance_approximate": 5,
    "received": "5000000000000000000",
    "receiving_transaction_count": 1,
    "spending_transaction_count": 0,
    "spent": "0",
    "transaction_count": 1
  },
  "first_seen_receiving": "2017-11-26 23:17:02",
  "found": true,
  "last_seen_receiving": "2017-11-26 23:17:02",
  "market_price_usd": 2492.11,
  "received_approximate": 5,
  "request_cost": 1,
  "spent_approximate": 0,
  "token_address": "0x68e14bb5a45b9681327e16e528084b9d962c1a39",
  "transaction_count": 1,
  "transfers": [
    {
      "block_id": 4628318,
      "id": 17166097,
      "recipient": "0x3282791d6fd713f1e94f4bfd565eaa78b3a0599d",
      "sender": "0x9f89388141c632c4c6f36d1060d5f50604ee3abc",
      "time": "2017-11-26 23:17:02",
      "token_address": "0x68e14bb5a45b9681327e16e528084b9d962c1a39",
      "token_decimals": 18,
      "token_name": "en",
      "token_symbol": "CAT",
      "transaction_hash": "0xd3aeac286c429f581f056388e523726e7b42caeba1d6a8df591ea2ec30daad48",
      "value": "5000000000000000000",
      "value_approximate": 5
    }
  ]
}
```

### Get a transaction

Look up one transaction, or up to ten at once, by hash. Reports its value, fee, size, how many confirmations it has, and every input and output with the addresses on each side - or, on Ethereum, the internal calls and the ERC-20 transfers it made. Finds transactions that are still in the mempool too, which is how a workflow watches a payment land. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the transaction is on. Bitcoin by default. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), `ethereum` (Ethereum (ETH)). Default: `bitcoin`.
- Transaction hash (`transactions`, text, required): The transaction to look up, as its 64-character hash (Ethereum's starts with 0x). Up to 10, separated by commas, to look several up in one request.
- Include privacy score (`privacy_score`, true/false): Optional. Score how much the transaction gives away about who sent it, from 0 (fully traceable) to 100, and list the addresses that look like they belong to the same wallet. Bitcoin-like chains only. Off by default; costs 10 extra request points. Default: `false`.
- Include token transfers (`token_transfers`, true/false): Optional. Also list the ERC-20 token transfers the transaction made, with each token's name, symbol and amount. Ethereum only. Off by default; costs 1 extra request point. Default: `false`.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many entries came back.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `not_found` (list): The transactions that were asked for and that Blockchair has no record of. Empty when everything was found.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `transactions` (list): The transactions that were found, in the order they were asked for.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "count": 1,
  "market_price_usd": 78587,
  "not_found": [],
  "request_cost": 1,
  "transactions": [
    {
      "block_height": 170,
      "calls": [],
      "confirmations": 964043,
      "fee": {
        "decimal": "0",
        "raw": 0,
        "unit": "BTC"
      },
      "hash": "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16",
      "inputs": [
        {
          "block_id": 9,
          "index": 0,
          "is_from_coinbase": true,
          "is_spent": true,
          "recipient": "12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S",
          "type": "pubkey",
          "value": 5000000000,
          "value_usd": 0.5
        }
      ],
      "is_confirmed": true,
      "outputs": [
        {
          "block_id": 170,
          "date": "2009-01-12",
          "index": 0,
          "is_from_coinbase": false,
          "is_spent": true,
          "lifespan": 58208942,
          "recipient": "1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3",
          "spending_block_id": 92240,
          "spending_time": "2010-11-16 20:39:27",
          "time": "2009-01-12 03:30:25",
          "transaction_hash": "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16",
          "transaction_id": 171,
          "type": "pubkey",
          "value": 1000000000,
          "value_usd": 0.1
        }
      ],
      "privacy": null,
      "requested": "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16",
      "time": "2009-01-12 03:30:25",
      "token_transfers": [],
      "transaction": {
        "block_id": 170,
        "date": "2009-01-12",
        "fee": 0,
        "fee_usd": 0,
        "hash": "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16",
        "id": 171,
        "input_count": 1,
        "input_total": 5000000000,
        "input_total_usd": 0.5,
        "is_coinbase": false,
        "is_rbf": false,
        "lock_time": 0,
        "output_count": 2,
        "output_total": 5000000000,
        "output_total_usd": 0.5,
        "size": 275,
        "time": "2009-01-12 03:30:25",
        "version": 1,
        "weight": 1100
      }
    }
  ]
}
```

### Get an address

Look up a wallet address: what it holds now, what it has ever received and spent, when it was first and last used, its recent transactions with the balance change each one caused, and its unspent outputs. On Ethereum it also reports the account's ERC-20 token balances. Balances come back both as satoshi or wei and as a readable coin amount. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the address is on. Bitcoin by default. An address from the wrong chain reads as not found. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), `ethereum` (Ethereum (ETH)). Default: `bitcoin`.
- Address (`address`, text, required): The address to look up. Every format the chain uses is accepted - legacy, P2SH, bech32, CashAddr - and it is case-sensitive, so paste it rather than retyping it.
- Number of entries (`limit`, number): Optional. How many entries to return in the nested lists (a block's transaction hashes, an address's transactions and unspent outputs). 100 by default, up to 10000. Use 0 to skip them entirely and just get the summary. From 0 to 10000. Default: `100`.
- Skip (`offset`, number): Optional. How many of those nested entries to skip, for paging through a long history. From 0 to 1000000. Default: `0`.
- Include token balances (`token_balances`, true/false): Optional. Also list the account's ERC-20 token holdings and its current nonce. Ethereum only. Off by default; costs 2 extra request points. Default: `false`.
- Confirmed only (`confirmed_only`, true/false): Optional. Ignore anything still in the mempool, so the balance is the settled one. Off by default, which includes unconfirmed activity. Default: `false`.

**Outputs**

- `address` (text): The address that was looked up.
- `balance` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `balance_usd` (number): What the balance is worth in USD.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `calls` (list): Recent Ethereum calls the address took part in. Empty on the Bitcoin-like chains.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `details` (object): Everything Blockchair reports about the address, with its own field names.
- `explorer_url` (text): A link to the address on blockchair.com, for a notification a person will read.
- `first_seen_receiving` (text): When it first received coins (UTC).
- `first_seen_spending` (text): When it first sent coins (UTC). Null if it never has.
- `found` (true/false): False when the chain has never seen this address. A valid but unused address is not an error: the balances simply come back empty.
- `last_seen_receiving` (text): When it last received coins (UTC).
- `last_seen_spending` (text): When it last sent coins (UTC).
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `received` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `spent` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `token_balances` (list): ERC-20 holdings, each with the token's name, symbol, decimals and balance. Only filled in when Include token balances is on.
- `transaction_count` (number): How many transactions the address has taken part in.
- `transactions` (list): Recent transactions, newest first, each with its block, hash, time and the balance change it caused (negative when coins left).
- `type` (text): What kind of address it is: 'pubkeyhash', 'scripthash' and so on, or 'account' / 'contract' on Ethereum.
- `utxo` (list): The unspent outputs the address still holds, which is what a wallet would spend from. Bitcoin-like chains only.

**Example output**

```json
{
  "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  "balance": {
    "decimal": "68.12392291",
    "raw": 6812392291,
    "unit": "BTC"
  },
  "balance_usd": 508913.63494609314,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "calls": [],
  "chain": "bitcoin",
  "details": {
    "balance": 6812392291,
    "balance_usd": 508913.63494609314,
    "first_seen_receiving": "2009-01-03 18:15:05",
    "first_seen_spending": null,
    "last_seen_receiving": "2019-10-24 18:47:23",
    "last_seen_spending": null,
    "output_count": 1820,
    "received": 6812392291,
    "received_usd": 15293.3019,
    "script_hex": "4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac",
    "scripthash_type": null,
    "spent": 0,
    "spent_usd": 0,
    "transaction_count": 1820,
    "type": "pubkey",
    "unspent_output_count": 1820
  },
  "explorer_url": "https://blockchair.com/bitcoin/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  "first_seen_receiving": "2009-01-03 18:15:05",
  "first_seen_spending": null,
  "found": true,
  "last_seen_receiving": "2019-10-24 18:47:23",
  "last_seen_spending": null,
  "market_price_usd": 78587,
  "received": {
    "decimal": "68.12392291",
    "raw": 6812392291,
    "unit": "BTC"
  },
  "request_cost": 1,
  "spent": {
    "decimal": "0",
    "raw": 0,
    "unit": "BTC"
  },
  "token_balances": [],
  "transaction_count": 1820,
  "transactions": [
    {
      "balance_change": 267582,
      "block_id": 600890,
      "hash": "4db4d68b13bf667ad9a44f4222bad2239de318fa75555ef966e84315056374b5",
      "time": "2019-10-24 18:47:23"
    }
  ],
  "type": "pubkey",
  "utxo": [
    {
      "block_id": 600890,
      "index": 1,
      "transaction_hash": "4db4d68b13bf667ad9a44f4222bad2239de318fa75555ef966e84315056374b5",
      "value": 267582
    }
  ]
}
```

### Get an address set

Treat up to 100 addresses as one wallet: a combined balance, a per-address breakdown, and one merged list of the newest transactions across all of them. This is what to use for a wallet that spreads across many addresses, rather than looking each one up and adding the numbers together. Bitcoin-like chains only. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the addresses are on. Bitcoin by default. Every address in the set must be on the same chain. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)). Default: `bitcoin`.
- Addresses (`addresses`, text, required): The addresses to treat as one wallet, separated by commas. Up to 100.
- Number of entries (`limit`, number): Optional. How many entries to return in the nested lists (a block's transaction hashes, an address's transactions and unspent outputs). 100 by default, up to 10000. Use 0 to skip them entirely and just get the summary. From 0 to 10000. Default: `100`.
- Skip (`offset`, number): Optional. How many of those nested entries to skip, for paging through a long history. From 0 to 1000000. Default: `0`.
- Confirmed only (`confirmed_only`, true/false): Optional. Ignore anything still in the mempool, so the balance is the settled one. Off by default, which includes unconfirmed activity. Default: `false`.

**Outputs**

- `address_count` (number): How many of the addresses the chain has actually seen. Addresses that have never been used are not listed.
- `addresses` (list): The per-address breakdown, richest first.
- `balance` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `balance_usd` (number): What the whole set is worth in USD.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `first_seen_receiving` (text): When the set first received coins (UTC).
- `first_seen_spending` (text): When it first sent coins (UTC).
- `last_seen_receiving` (text): When it last received coins (UTC).
- `last_seen_spending` (text): When it last sent coins (UTC).
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `received` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `requested` (list): The addresses that were asked about.
- `spent` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `totals` (object): Blockchair's own totals for the set, with its field names.
- `transaction_count` (number): How many transactions the set has taken part in.
- `transactions` (list): The newest transactions across the whole set, each with the balance change it caused.
- `utxo` (list): The unspent outputs the whole set still holds.

**Example output**

```json
{
  "address_count": 2,
  "addresses": [
    {
      "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
      "balance": {
        "decimal": "68.12392291",
        "raw": 6812392291,
        "unit": "BTC"
      },
      "balance_usd": 508913.63494609314,
      "details": {
        "balance": 6812392291,
        "balance_usd": 508913.63494609314,
        "first_seen_receiving": "2009-01-03 18:15:05",
        "first_seen_spending": null,
        "last_seen_receiving": "2019-10-24 18:47:23",
        "last_seen_spending": null,
        "output_count": 1820,
        "received": 6812392291,
        "received_usd": 15293.3019,
        "script_hex": "4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac",
        "scripthash_type": null,
        "spent": 0,
        "spent_usd": 0,
        "transaction_count": 1820,
        "type": "pubkey",
        "unspent_output_count": 1820
      },
      "first_seen_receiving": "2009-01-03 18:15:05",
      "first_seen_spending": null,
      "last_seen_receiving": "2019-10-24 18:47:23",
      "last_seen_spending": null,
      "path": null,
      "received": {
        "decimal": "68.12392291",
        "raw": 6812392291,
        "unit": "BTC"
      },
      "spent": {
        "decimal": "0",
        "raw": 0,
        "unit": "BTC"
      },
      "transaction_count": 1820
    }
  ],
  "balance": {
    "decimal": "68.12392291",
    "raw": 6812392291,
    "unit": "BTC"
  },
  "balance_usd": 508913.63494609314,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "first_seen_receiving": "2009-01-03 18:15:05",
  "first_seen_spending": null,
  "last_seen_receiving": "2019-10-24 18:47:23",
  "last_seen_spending": null,
  "market_price_usd": 78587,
  "received": {
    "decimal": "68.12392291",
    "raw": 6812392291,
    "unit": "BTC"
  },
  "request_cost": 1,
  "requested": [
    "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
    "12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX"
  ],
  "spent": {
    "decimal": "0",
    "raw": 0,
    "unit": "BTC"
  },
  "totals": {
    "address_count": 2,
    "balance": 6812392291,
    "balance_usd": 508913.63494609314,
    "transaction_count": 1820
  },
  "transaction_count": 1820,
  "transactions": [
    {
      "balance_change": 267582,
      "block_id": 600890,
      "hash": "4db4d68b13bf667ad9a44f4222bad2239de318fa75555ef966e84315056374b5",
      "time": "2019-10-24 18:47:23"
    }
  ],
  "utxo": [
    {
      "block_id": 600890,
      "index": 1,
      "transaction_hash": "4db4d68b13bf667ad9a44f4222bad2239de318fa75555ef966e84315056374b5",
      "value": 267582
    }
  ]
}
```

### Get an ERC-20 token

Look up an ERC-20 token by its contract address: its name, symbol, decimals, circulating supply, 24-hour transfer volume and price. Any token on Ethereum, not just the well-known ones. No API key required.

**Inputs**

- Token contract address (`token_address`, text, required): The token's own contract address, starting with 0x. This is the token's address, not a holder's.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `circulation_approximate` (number): Circulating supply, in whole tokens.
- `created_at` (text): When the contract was deployed (UTC).
- `decimals` (number): How many decimal places the token uses, which is what converts a raw balance into whole tokens.
- `explorer_url` (text): A link to the token on blockchair.com.
- `market_cap_usd` (number): Market capitalisation in USD. Null when Blockchair has no price for the token.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `name` (text): The token's name, e.g. 'Tether USD'.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `stats` (object): Everything Blockchair reports about the token, with its own field names.
- `symbol` (text): Its ticker, e.g. 'USDT'.
- `token_address` (text): The contract address that was looked up.
- `transfers` (number): How many transfers the token has ever had.
- `transfers_24h` (number): Transfers in the last 24 hours.
- `volume_24h_approximate` (number): Tokens moved in the last 24 hours.

**Example output**

```json
{
  "best_block_height": 25842561,
  "cached_until": "2026-08-26 23:04:33",
  "circulation_approximate": 30910401959.97513,
  "created_at": "2017-11-28 00:41:21",
  "decimals": 6,
  "explorer_url": "https://blockchair.com/ethereum/erc-20/token/0xdac17f958d2ee523a2206206994597c13d831ec7",
  "market_cap_usd": 30886600950.465946,
  "market_price_usd": 2492.11,
  "name": "Tether USD",
  "request_cost": 1,
  "stats": {
    "circulation": "30910401959975130",
    "creating_block_id": 4634748,
    "decimals": 6,
    "market_price_usd": 0.99923,
    "name": "Tether USD",
    "symbol": "USDT",
    "time": "2017-11-28 00:41:21",
    "transactions": 120789146,
    "transactions_24h": 153043
  },
  "symbol": "USDT",
  "token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
  "transfers": 120789146,
  "transfers_24h": 153043,
  "volume_24h_approximate": 6941771405.5918045
}
```

### Get an Ethereum uncle

Look up one Ethereum uncle block, or up to ten at once, by hash: which block adopted it, who mined it, and what reward it paid. Get a block reports a block's uncle hashes, which is where these come from. No API key required.

**Inputs**

- Uncle hash (`uncles`, text, required): The uncle to look up, as its 0x-prefixed hash. Up to 10, separated by commas.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many entries came back.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `not_found` (list): The uncles that were asked for and that Blockchair has no record of. Empty when everything was found.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `uncles` (list): The uncles that were found, in the order they were asked for.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "ethereum",
  "count": 1,
  "market_price_usd": 78587,
  "not_found": [],
  "request_cost": 1,
  "uncles": [
    {
      "hash": "0x5cd50096dbb856a6d1befa6de8f9c20decb299f375154427d90761dc0b101109",
      "miner": "0xc8ebccc5f5689fa8659d83713341e5ad19349448",
      "parent_block_height": 3,
      "requested": "0x5cd50096dbb856a6d1befa6de8f9c20decb299f375154427d90761dc0b101109",
      "reward": {
        "decimal": "3.75",
        "raw": "3750000000000000000",
        "unit": "ETH"
      },
      "reward_usd": 0,
      "time": "2015-07-30 15:26:58",
      "uncle": {
        "date": "2015-07-30",
        "difficulty": 17171480576,
        "gas_limit": 5000,
        "gas_used": 0,
        "id": 1,
        "index": 0,
        "parent_block_id": 3,
        "size": 538
      }
    }
  ]
}
```

### Get an extended public key (xpub)

Read a whole watch-only wallet from its extended public key. Blockchair derives the addresses itself and reports the wallet's total balance, every derived address that has been used with its derivation path, and one merged transaction history - so a workflow can watch a hardware wallet without ever listing its addresses. Takes xpub, ypub and zpub keys. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the key belongs to. Bitcoin by default. ypub and zpub keys work on Bitcoin, Litecoin, Groestlcoin and Bitcoin Testnet. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)). Default: `bitcoin`.
- Extended public key (`extended_key`, text, required): The wallet's extended public key, starting with xpub, ypub or zpub. This is a watch-only key: it can see the wallet but cannot spend from it. Chain-specific spellings such as Litecoin's ltub are not accepted - export the key in xpub form instead.
- Number of entries (`limit`, number): Optional. How many entries to return in the nested lists (a block's transaction hashes, an address's transactions and unspent outputs). 100 by default, up to 10000. Use 0 to skip them entirely and just get the summary. From 0 to 10000. Default: `100`.
- Skip (`offset`, number): Optional. How many of those nested entries to skip, for paging through a long history. From 0 to 1000000. Default: `0`.
- Confirmed only (`confirmed_only`, true/false): Optional. Ignore anything still in the mempool, so the balance is the settled one. Off by default, which includes unconfirmed activity. Default: `false`.

**Outputs**

- `address_count` (number): How many derived addresses have been used. Blockchair stops deriving after 20 unused ones in a row, and looks at up to 250 receive and 250 change addresses.
- `addresses` (list): The derived addresses that have been used, richest first, each with its derivation path.
- `balance` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `balance_usd` (number): What the whole wallet is worth in USD.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `extended_key` (text): The key that was looked up.
- `first_seen_receiving` (text): When the wallet first received coins.
- `first_seen_spending` (text): When it first sent coins.
- `last_seen_receiving` (text): When it last received coins.
- `last_seen_spending` (text): When it last sent coins.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `received` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `spent` (object): An amount of the chain's own coin, given three ways so a later step can use whichever it needs.
- `totals` (object): Blockchair's own totals for the wallet, with its field names.
- `transaction_count` (number): Transactions across the whole wallet.
- `transactions` (list): The newest transactions across the whole wallet.
- `utxo` (list): The unspent outputs the wallet still holds.

**Example output**

```json
{
  "address_count": 3,
  "addresses": [
    {
      "address": "1CDysWzQ5Z4hMLhsj4AKAEFwrgXRC8DqRt",
      "balance": {
        "decimal": "0.00112",
        "raw": 112000,
        "unit": "BTC"
      },
      "balance_usd": 88.02,
      "details": {
        "balance": 112000,
        "path": "M/0/0",
        "type": "pubkeyhash"
      },
      "first_seen_receiving": "2021-11-02 17:44:53",
      "first_seen_spending": null,
      "last_seen_receiving": "2021-11-02 17:44:53",
      "last_seen_spending": null,
      "path": "M/0/0",
      "received": {
        "decimal": "0.00112",
        "raw": 112000,
        "unit": "BTC"
      },
      "spent": {
        "decimal": "0",
        "raw": 0,
        "unit": "BTC"
      },
      "transaction_count": 1
    }
  ],
  "balance": {
    "decimal": "0.00112",
    "raw": 112000,
    "unit": "BTC"
  },
  "balance_usd": 88.02,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "extended_key": "xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz",
  "first_seen_receiving": "2018-03-14 09:21:07",
  "first_seen_spending": "2018-04-01 12:03:19",
  "last_seen_receiving": "2021-11-02 17:44:53",
  "last_seen_spending": "2021-06-18 08:12:44",
  "market_price_usd": 78587,
  "received": {
    "decimal": "0.00412",
    "raw": 412000,
    "unit": "BTC"
  },
  "request_cost": 1,
  "spent": {
    "decimal": "0.003",
    "raw": 300000,
    "unit": "BTC"
  },
  "totals": {
    "balance": 112000,
    "balance_usd": 88.02,
    "transaction_count": 9
  },
  "transaction_count": 9,
  "transactions": [
    {
      "balance_change": 267582,
      "block_id": 600890,
      "hash": "4db4d68b13bf667ad9a44f4222bad2239de318fa75555ef966e84315056374b5",
      "time": "2019-10-24 18:47:23"
    }
  ],
  "utxo": [
    {
      "block_id": 600890,
      "index": 1,
      "transaction_hash": "4db4d68b13bf667ad9a44f4222bad2239de318fa75555ef966e84315056374b5",
      "value": 267582
    }
  ]
}
```

### Get an Omni Layer token

Look up one token issued on Omni Layer by its property id: its name, issuer, description, supply and the Bitcoin transaction that created it. Property 31 is the original TetherUS. No API key required.

**Inputs**

- Property id (`property_id`, number, required): The token's Omni Layer property id, a whole number. List Omni Layer tokens reports the ids. At least 0.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `category` (text): The category its issuer registered it under.
- `circulation` (number): How many tokens are in circulation.
- `creation_time` (text): When the token was issued (UTC).
- `creation_transaction_hash` (text): The Bitcoin transaction that issued it.
- `description` (text): The issuer's own description.
- `is_divisible` (true/false): Whether the token can be held in fractions.
- `issuer` (text): The Bitcoin address that issued the token.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `name` (text): The token's name.
- `property` (object): Everything Blockchair reports about the property.
- `property_id` (number): The property id that was looked up.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `url` (text): The issuer's website.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "category": "Financial and insurance activities",
  "circulation": 2145000000,
  "creation_time": "2014-10-06 16:39:15",
  "creation_transaction_hash": "5ed3694e8a4fa8d3ec5c75eb6789492c69e65511522b220e94ab51da2b6dd53f",
  "description": "The next paradigm of money.",
  "is_divisible": false,
  "issuer": "32TLn1WLcu8LtfvweLzYUYU6ubc2YV9eZs",
  "market_price_usd": 78587,
  "name": "TetherUS",
  "property": {
    "category": "Financial and insurance activities",
    "circulation": 2145000000,
    "creation_block_id": 324140,
    "ecosystem": 1,
    "id": 31,
    "issuer": "32TLn1WLcu8LtfvweLzYUYU6ubc2YV9eZs",
    "name": "TetherUS"
  },
  "property_id": 31,
  "request_cost": 1,
  "url": "https://tether.to"
}
```

### Get blockchain stats

Get a snapshot of one blockchain right now: its height, how many transactions it carried in the last 24 hours, what is waiting in the mempool, the suggested fee, the difficulty and the coin's price and market cap. Covers all 18 chains Blockchair indexes, from Bitcoin and Ethereum to Monero, Cardano and XRP. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain to report on. Bitcoin by default. The fields differ a little by chain: only the proof-of-work chains report a hashrate, and only Ethereum reports gas. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), and 8 more. Default: `bitcoin`.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `best_block_time` (text): When the newest block was found (UTC).
- `blocks` (number): How many blocks the chain has, in total.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `chain_name` (text): The chain's display name, e.g. 'Bitcoin (BTC)'.
- `market_cap_usd` (number): The coin's market capitalisation in USD.
- `market_price_change_24h_percentage` (number): How much the price has moved in the last 24 hours, as a percentage.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `mempool_transactions` (number): Transactions currently waiting to confirm.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `stats` (object): Everything Blockchair reports for this chain, with its own field names. Which fields appear depends on the chain.
- `transactions_24h` (number): Transactions confirmed in the last 24 hours.

**Example output**

```json
{
  "best_block_height": 964212,
  "best_block_time": "2026-08-26 22:59:58",
  "blocks": 964213,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "chain_name": "Bitcoin (BTC)",
  "market_cap_usd": 1577732092217,
  "market_price_change_24h_percentage": -0.40474,
  "market_price_usd": 78587,
  "mempool_transactions": 3289,
  "request_cost": 1,
  "stats": {
    "average_transaction_fee_24h": 435,
    "best_block_hash": "00000000000000000000f1adc5aed7ed2f3eed3f4b445311eb88e1d03986e419",
    "best_block_height": 964212,
    "best_block_time": "2026-08-26 22:59:58",
    "blockchain_size": 764291980243,
    "blocks": 964213,
    "blocks_24h": 154,
    "circulation": 2007563666655096,
    "difficulty": 125807076547197.5,
    "hashrate_24h": "963168055927949581941",
    "hodling_addresses": 59448011,
    "market_cap_usd": 1577732092217,
    "market_dominance_percentage": 57.32,
    "market_price_usd": 78587,
    "market_price_usd_change_24h_percentage": -0.40474,
    "median_transaction_fee_24h": 53,
    "mempool_size": 52662529,
    "mempool_tps": 3.9,
    "mempool_transactions": 3289,
    "next_retarget_time_estimate": "2026-09-06 02:51:12",
    "nodes": 282,
    "outputs": 3892934627,
    "suggested_transaction_fee_per_byte_sat": 2,
    "transactions": 1425792478,
    "transactions_24h": 718032,
    "volume_24h": 103687706527668
  },
  "transactions_24h": 718032
}
```

### Get halving countdown

Get the countdown to the next block-reward halving on each proof-of-work chain: how many blocks are left, roughly when it lands, and what the reward becomes. Everything a countdown post or a scheduled reminder needs. No API key required.

**Inputs**: None.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chains` (list): One entry per chain, soonest halving first.
- `count` (number): How many entries came back.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chains": [
    {
      "blocks_left": 85787,
      "chain": "bitcoin",
      "chain_name": "Bitcoin (BTC)",
      "current_block": 964213,
      "current_reward": {
        "decimal": "1.5625",
        "raw": 156250000,
        "unit": "BTC"
      },
      "halving_block": 1050000,
      "halving_reward": {
        "decimal": "0.78125",
        "raw": 78125000,
        "unit": "BTC"
      },
      "halving_time_approximate": "2028-03-27 04:11:12",
      "seconds_left_approximate": 51472200
    }
  ],
  "count": 1,
  "market_price_usd": 78587,
  "request_cost": 1
}
```

### Get indexed block ranges

Find out how far back Blockchair's history goes on each chain. Most are indexed in full from the genesis block, but a few are only indexed from a later block onwards - worth checking before a workflow asks for an old block and gets nothing back. No API key required.

**Inputs**: None.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chains` (list): One entry per chain, sorted by chain name.
- `count` (number): How many entries came back.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `partial_chains` (list): The chains that are not indexed in full, so a workflow knows which ones may have gaps.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chains": [
    {
      "chain": "bitcoin",
      "chain_first_block": 0,
      "chain_first_date": "2009-01-03",
      "chain_name": "Bitcoin (BTC)",
      "first_indexed_block": 0,
      "first_indexed_date": "2009-01-03",
      "is_full_history": true
    },
    {
      "chain": "ripple",
      "chain_first_block": 1,
      "chain_first_date": "2012-09-25",
      "chain_name": "XRP Ledger (XRP)",
      "first_indexed_block": 32570,
      "first_indexed_date": "2013-01-01",
      "is_full_history": false
    }
  ],
  "count": 2,
  "market_price_usd": 78587,
  "partial_chains": [
    "ripple"
  ],
  "request_cost": 1
}
```

### Get Omni Layer stats

Get the totals for Omni Layer, the token protocol that runs on top of Bitcoin and originally issued Tether: how many tokens exist on it and how much they have moved. No API key required.

**Inputs**: None.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `properties` (number): How many tokens (properties) exist on Omni Layer.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `stats` (object): Everything Blockchair reports for Omni Layer.
- `transactions` (number): Omni transfers ever made.
- `transactions_24h` (number): Omni transfers in the last 24 hours.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "market_price_usd": 78587,
  "properties": 2249,
  "request_cost": 1,
  "stats": {
    "addresses": 1521144,
    "properties": 2249,
    "transactions": 24217843,
    "transactions_24h": 41
  },
  "transactions": 24217843,
  "transactions_24h": 41
}
```

### Get raw account data

Get an account exactly as the chain's own node reports it. This is the address lookup for the account-based chains Blockchair indexes without a dashboard of their own: XRP, Stellar, Cardano, Tezos and EOS. For Bitcoin-like chains and Ethereum, use Get an address instead. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the account is on. XRP by default. Cardano calls it an address and the others call it an account; the right path is used automatically. One of: `ripple` (XRP Ledger (XRP)), `stellar` (Stellar (XLM)), `cardano` (Cardano (ADA)), `tezos` (Tezos (XTZ)), `eos` (EOS (EOS)). Default: `ripple`.
- Account address (`address`, text, required): The account to look up, in whatever format the chain uses. It is case-sensitive, so paste it rather than retyping it.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `entity` (text): What this chain calls the entity: 'account' or 'address'.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `raw` (object): The node's own answer, unchanged. Its shape follows the chain's node software rather than Blockchair.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `requested` (text): The account that was looked up.

**Example output**

```json
{
  "best_block_height": 60123456,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "ripple",
  "entity": "account",
  "market_price_usd": 1.87,
  "raw": {
    "account_data": {
      "Account": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh",
      "Balance": "1949916966",
      "Flags": 8388608,
      "OwnerCount": 0,
      "Sequence": 407
    },
    "ledger_current_index": 60123456,
    "validated": false
  },
  "request_cost": 1,
  "requested": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh"
}
```

### Get raw block data

Get a block exactly as the chain's own node reports it, without Blockchair's tidying. This is the only block lookup for the chains with no dashboard of their own - XRP and Stellar (where it is a ledger), Monero, Cardano, Mixin (a snapshot), Tezos and EOS - and is also available for Bitcoin and Ethereum when a field Blockchair does not surface is needed. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the block is on. Bitcoin by default. XRP and Stellar call it a ledger and Mixin calls it a snapshot; the right one is used automatically. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), and 8 more. Default: `bitcoin`.
- Block height or hash (`block`, text, required): The block to fetch: its height (a number) or its hash.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `entity` (text): What this chain calls the entity: 'block', 'ledger' or 'snapshot'.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `raw` (object): The node's own answer, unchanged. Its shape follows the chain's node software rather than Blockchair.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `requested` (text): The height or hash that was looked up.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "entity": "block",
  "market_price_usd": 78587,
  "raw": {
    "bits": "170f48e4",
    "confirmations": 264213,
    "difficulty": 18415156832118.24,
    "hash": "0000000000000000000590fc0f3eba193a278534220b2b37e9849e1a770ca959",
    "height": 700000,
    "merkleroot": "1f8d34b1e51ba1a45e4b8f8f2e1e0b4c5d6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c",
    "nTx": 1276,
    "nonce": 3878274873,
    "time": 1631333672,
    "version": 536870916
  },
  "request_cost": 1,
  "requested": "700000"
}
```

### Get raw transaction data

Get a transaction exactly as the chain's own node reports it. This is the only transaction lookup for the chains with no dashboard of their own - XRP, Stellar, Monero, Cardano, Mixin, Tezos (where it is an operation) and EOS - and is also available for Bitcoin and Ethereum when the raw script or witness data is what is needed. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain the transaction is on. Bitcoin by default. Tezos calls it an operation; the right path is used automatically. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), and 8 more. Default: `bitcoin`.
- Transaction hash (`transaction_hash`, text, required): The transaction's 64-character hash.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `entity` (text): What this chain calls the entity: 'transaction' or 'operation'.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `raw` (object): The node's own answer, unchanged. Its shape follows the chain's node software rather than Blockchair.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `requested` (text): The hash that was looked up.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "entity": "transaction",
  "market_price_usd": 78587,
  "raw": {
    "blocktime": 1231731025,
    "locktime": 0,
    "size": 275,
    "txid": "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16",
    "version": 1,
    "vin": [
      {
        "txid": "0437cd7f8525ceed23",
        "vout": 0
      }
    ],
    "vout": [
      {
        "n": 0,
        "value": 10.0
      },
      {
        "n": 1,
        "value": 40.0
      }
    ]
  },
  "request_cost": 1,
  "requested": "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16"
}
```

### Get stablecoin stats

Get a stablecoin's total supply, 24-hour volume and transfer count added up across every blockchain it is issued on. Tether, USD Coin and Binance USD each run on several chains at once, so this is the number to report rather than the supply on any one of them. No API key required.

**Inputs**

- Stablecoin (`token`, text): Which stablecoin to report on. One of: `tether` (Tether (USDT)), `usd-coin` (USD Coin (USDC)), `binance-usd` (Binance USD (BUSD)). Default: `tether`.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `circulation_approximate` (number): How many tokens exist across every chain, in whole tokens.
- `market_cap_usd` (number): Market capitalisation in USD.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `stats` (object): Everything Blockchair reports for this token, including the per-chain breakdown.
- `token` (text): The token that was looked up, e.g. 'tether'.
- `token_name` (text): Its display name, e.g. 'Tether (USDT)'.
- `transactions_24h` (number): Transfers in the last 24 hours.
- `volume_24h_approximate` (number): Tokens moved in the last 24 hours.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "circulation_approximate": 118427193044.68,
  "market_cap_usd": 118416750801.4,
  "market_price_usd": 0.99991,
  "request_cost": 1,
  "stats": {
    "circulation_approximate": 118427193044.68,
    "market_cap_usd": 118416750801.4,
    "market_price_usd": 0.99991,
    "transactions_24h": 1042318,
    "volume_24h_approximate": 41827193044.51
  },
  "token": "tether",
  "token_name": "Tether (USDT)",
  "transactions_24h": 1042318,
  "volume_24h_approximate": 41827193044.51
}
```

### Get state changes

List every address a block moved coins for, and by how much. This is how a workflow watches thousands of addresses without polling each one: read the changes a block caused and look for the addresses that matter. Switch to the mempool to see the changes that are about to happen. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain to read. Bitcoin by default. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), `ethereum` (Ethereum (ETH)). Default: `bitcoin`.
- Read changes from (`source`, text): Whether to read the changes one confirmed block caused, or the ones the whole mempool would cause if it confirmed. Mempool is Bitcoin-like chains only. One of: `block` (One confirmed block), `mempool` (Everything waiting in the mempool). Default: `block`.
- Block height (`block`, number): Which block's changes to read. Required when reading from a block; ignored for the mempool. Get blockchain stats reports the newest height. At least 0.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `block` (number): The block that was read. Null for a mempool read.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `changes` (list): One entry per address that moved, biggest change first.
- `count` (number): How many entries came back.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `source` (text): Whether this read a block or the mempool.

**Example output**

```json
{
  "best_block_height": 964212,
  "block": 170,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "changes": [
    {
      "address": "1PSSGeFHDnKNxiEyFrD1wcEaHr9hrQDDWc",
      "change": {
        "decimal": "50",
        "raw": 5000000000,
        "unit": "BTC"
      },
      "direction": "received"
    },
    {
      "address": "1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3",
      "change": {
        "decimal": "10",
        "raw": 1000000000,
        "unit": "BTC"
      },
      "direction": "received"
    },
    {
      "address": "12cbQLTFMXRnSzktFkuoG3eHoMeFtpTu3S",
      "change": {
        "decimal": "-10",
        "raw": -1000000000,
        "unit": "BTC"
      },
      "direction": "sent"
    }
  ],
  "count": 3,
  "market_price_usd": 78587,
  "request_cost": 1,
  "source": "block"
}
```

### Get stats for all blockchains

Get the same snapshot for every blockchain Blockchair indexes, in one request: height, 24-hour activity, price, market cap and market dominance for all 18 chains. This is the one call behind a multi-chain status board or a daily market digest. No API key required.

**Inputs**: None.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chains` (list): One entry per chain, sorted by chain name so the order is stable from run to run.
- `count` (number): How many entries came back.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chains": [
    {
      "best_block_height": 964212,
      "blocks": 964213,
      "chain": "bitcoin",
      "chain_name": "Bitcoin (BTC)",
      "market_cap_usd": 1577732092217,
      "market_dominance_percentage": 57.32,
      "market_price_usd": 78587,
      "stats": {
        "average_transaction_fee_24h": 435,
        "best_block_hash": "00000000000000000000f1adc5aed7ed2f3eed3f4b445311eb88e1d03986e419",
        "best_block_height": 964212,
        "best_block_time": "2026-08-26 22:59:58",
        "blockchain_size": 764291980243,
        "blocks": 964213,
        "blocks_24h": 154,
        "circulation": 2007563666655096,
        "difficulty": 125807076547197.5,
        "hashrate_24h": "963168055927949581941",
        "hodling_addresses": 59448011,
        "market_cap_usd": 1577732092217,
        "market_dominance_percentage": 57.32,
        "market_price_usd": 78587,
        "market_price_usd_change_24h_percentage": -0.40474,
        "median_transaction_fee_24h": 53,
        "mempool_size": 52662529,
        "mempool_tps": 3.9,
        "mempool_transactions": 3289,
        "next_retarget_time_estimate": "2026-09-06 02:51:12",
        "nodes": 282,
        "outputs": 3892934627,
        "suggested_transaction_fee_per_byte_sat": 2,
        "transactions": 1425792478,
        "transactions_24h": 718032,
        "volume_24h": 103687706527668
      },
      "transactions_24h": 718032
    },
    {
      "best_block_height": 25842561,
      "blocks": 25843464,
      "chain": "ethereum",
      "chain_name": "Ethereum (ETH)",
      "market_cap_usd": 300854239082,
      "market_dominance_percentage": 10.92,
      "market_price_usd": 2492.11,
      "stats": {
        "best_block_height": 25842561,
        "best_block_time": "2026-08-26 23:05:59",
        "blocks": 25843464,
        "blocks_24h": 7170,
        "calls": 18962652352,
        "circulation_approximate": "122374665718230000000000000",
        "market_cap_usd": 300854239082,
        "market_dominance_percentage": 10.92,
        "market_price_usd": 2492.11,
        "mempool_transactions": 420,
        "transactions": 3700868130,
        "transactions_24h": 1898318
      },
      "transactions_24h": 1898318
    }
  ],
  "count": 2,
  "market_price_usd": 78587,
  "request_cost": 1
}
```

### List blocks

Query the blocks table: the latest blocks, every block in a date range, the largest block of a month, or blocks from one mining pool. Can also group and total instead of listing, so one call answers 'how many blocks did each pool mine last month'. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain to query. Bitcoin by default. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), `ethereum` (Ethereum (ETH)). Default: `bitcoin`.
- From date (`date_from`, date): Optional. Only rows from this date onwards (UTC, inclusive). Leave blank for no lower bound.
- To date (`date_to`, date): Optional. Only rows up to and including this date (UTC). Leave blank for no upper bound.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. The choices follow the blockchain picked above. Newest block first by default.
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching blocks, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "count": 1,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "bits": 486604799,
      "date": "2009-01-03",
      "difficulty": 1,
      "fee_total": 0,
      "fee_total_usd": 0,
      "generation": 5000000000,
      "guessed_miner": "Unknown",
      "hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
      "id": 0,
      "input_count": 1,
      "input_total": 0,
      "median_time": "2009-01-03 18:15:05",
      "merkle_root": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
      "nonce": 2083236893,
      "output_count": 1,
      "output_total": 5000000000,
      "output_total_usd": 0,
      "reward": 5000000000,
      "reward_usd": 0,
      "size": 285,
      "time": "2009-01-03 18:15:05",
      "transaction_count": 1,
      "version": 1
    }
  ],
  "table": "blocks",
  "total_rows": 964213
}
```

### List crypto news

Get crypto headlines from more than 60 outlets in 14 languages, newest first, each with its source, summary, publish time and a link to the article. Search by keyword across headlines and summaries, filter to one language, one outlet or a date range. This is the feed behind a daily digest or a brand-mention alert. No API key required.

**Inputs**

- Language (`language`, text): Optional. Only articles in this language. Leave blank for every language. One of: `en` (English), `ar` (Arabic), `de` (German), `es` (Spanish), `fa` (Persian), `fr` (French), `it` (Italian), `jp` (Japanese), `ko` (Korean), `nl` (Dutch), and 4 more. Default: `en`.
- Search (`search`, text): Optional. Only articles whose headline or summary mentions this text. Leave blank for everything.
- Outlet (`source`, text): Optional. Only articles from this outlet, given as its domain name. Leave blank for every outlet.
- From date (`date_from`, date): Optional. Only rows from this date onwards (UTC, inclusive). Leave blank for no lower bound.
- To date (`date_to`, date): Optional. Only rows up to and including this date (UTC). Leave blank for no upper bound.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `language` (text): The language that was filtered on, or null for all.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching articles, each with its title, source, language, description, publish time, tags and link, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `search` (text): The text that was searched for, or null when the search was left blank.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": null,
  "count": 1,
  "has_more": true,
  "language": "en",
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "description": "Believe it or not, Bitcoin price is now trading at over $17,000, even though earlier this year it crashed to under $4,000.",
      "hash": "cbe09bd89c",
      "language": "en",
      "link": "https://bitcoinist.com/ten-days-remain-where-buying-bitcoin-was-unprofitable/",
      "link_amp": false,
      "link_iframable": true,
      "permalink": "https://blockchair.com/en/news/ten-days-remain-where-buying-bitcoin-was-unprofitable--cbe09bd89c",
      "source": "bitcoinist.com",
      "tags": "Bitcoin, btc, crypto",
      "time": "2026-08-26 15:00:31",
      "title": "Ten Days Remain Where Buying Bitcoin Was Unprofitable"
    }
  ],
  "search": null,
  "table": "news",
  "total_rows": 428193
}
```

### List ERC-20 tokens

Query Ethereum's token registry: the newest tokens deployed, or a search by name or symbol across all 1.5 million of them. Useful for finding a token's contract address from its ticker before checking a balance. No API key required.

**Inputs**

- From date (`date_from`, date): Optional. Only rows from this date onwards (UTC, inclusive). Leave blank for no lower bound.
- To date (`date_to`, date): Optional. Only rows up to and including this date (UTC). Leave blank for no upper bound.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. Newest first by default. One of: `id` (Token id), `time` (Creation time), `creating_block_id` (Creation block height), `name`, `symbol`, `decimals`.
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching tokens, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "ethereum",
  "count": 1,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
      "creating_block_id": 4634748,
      "creating_transaction_hash": "0x2f1c5c2b44f771e942a8506148e256f94f1a464babc938ae0690c6e34cd79190",
      "date": "2017-11-28",
      "decimals": 6,
      "id": 32748,
      "name": "Tether USD",
      "symbol": "USDT",
      "time": "2017-11-28 00:41:21"
    }
  ],
  "table": "erc-20/tokens",
  "total_rows": 1500830
}
```

### List ERC-20 transfers

Query ERC-20 token transfers: every movement of one token, everything one wallet sent or received, or the largest stablecoin transfers of the day. Each row names the token, the sender, the recipient and the amount. No API key required.

**Inputs**

- From date (`date_from`, date): Optional. Only rows from this date onwards (UTC, inclusive). Leave blank for no lower bound.
- To date (`date_to`, date): Optional. Only rows up to and including this date (UTC). Leave blank for no upper bound.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. Newest first by default. One of: `id` (Transfer id), `block_id` (Block height), `time`, `value` (Value in the token's smallest unit).
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching transfers, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "ethereum",
  "count": 1,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "block_id": 4628318,
      "date": "2017-11-26",
      "id": 17166097,
      "recipient": "0x3282791d6fd713f1e94f4bfd565eaa78b3a0599d",
      "sender": "0x9f89388141c632c4c6f36d1060d5f50604ee3abc",
      "time": "2017-11-26 23:17:02",
      "token_address": "0x68e14bb5a45b9681327e16e528084b9d962c1a39",
      "token_decimals": 18,
      "token_name": "en",
      "token_symbol": "CAT",
      "transaction_hash": "0xd3aeac286c429f581f056388e523726e7b42caeba1d6a8df591ea2ec30daad48",
      "value": "5000000000000000000"
    }
  ],
  "table": "erc-20/transactions",
  "total_rows": 4690645301
}
```

### List Ethereum calls

Query Ethereum's internal calls: the value moves that happen inside a transaction rather than at its top level. This is where a contract paying out or a wallet sweeping funds actually shows up, and it is the only way to see ETH that moved without a transaction of its own. No API key required.

**Inputs**

- From date (`date_from`, date): Optional. Only rows from this date onwards (UTC, inclusive). Leave blank for no lower bound.
- To date (`date_to`, date): Optional. Only rows up to and including this date (UTC). Leave blank for no upper bound.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. Newest first by default. One of: `block_id` (Block height), `transaction_id` (Transaction id), `index` (Position in the transaction), `time`, `value` (Value in wei), `value_usd` (Value in USD), `depth` (Call depth), `child_call_count` (Number of child calls).
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching calls, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "ethereum",
  "count": 1,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "block_id": 25842000,
      "child_call_count": 0,
      "date": "2026-08-26",
      "depth": 0,
      "fail_reason": null,
      "failed": false,
      "index": "0",
      "recipient": "0x3282791d6fd713f1e94f4bfd565eaa78b3a0599d",
      "sender": "0x0f4b92e13cc618bb9ff2120aec2ccd19f0d97b68",
      "time": "2026-08-26 22:41:11",
      "transaction_id": 3700868000,
      "transferred": true,
      "type": "call",
      "value": "1337000000000000000",
      "value_usd": 3331.9
    }
  ],
  "table": "calls",
  "total_rows": 18962652352
}
```

### List Ethereum uncles

Query Ethereum's uncle blocks: valid blocks that lost the race to be included, and the reduced reward they still earned. Historical data, since Ethereum stopped producing uncles when it moved to proof of stake. No API key required.

**Inputs**

- From date (`date_from`, date): Optional. Only rows from this date onwards (UTC, inclusive). Leave blank for no lower bound.
- To date (`date_to`, date): Optional. Only rows up to and including this date (UTC). Leave blank for no upper bound.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. Newest first by default. One of: `id` (Uncle id), `parent_block_id` (Parent block height), `time`, `size` (Size in bytes), `index` (Position among the uncles), `difficulty`, `gas_used` (Gas used), `generation` (Uncle reward), `generation_usd` (Uncle reward in USD).
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching uncles, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "ethereum",
  "count": 1,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "date": "2015-07-30",
      "difficulty": 17171480576,
      "gas_limit": 5000,
      "gas_used": 0,
      "generation": "3750000000000000000",
      "generation_usd": 0,
      "hash": "0x5cd50096dbb856a6d1befa6de8f9c20decb299f375154427d90761dc0b101109",
      "id": 1,
      "index": 0,
      "miner": "0xc8ebccc5f5689fa8659d83713341e5ad19349448",
      "parent_block_id": 3,
      "size": 538,
      "time": "2015-07-30 15:26:58"
    }
  ],
  "table": "uncles",
  "total_rows": 1306721
}
```

### List network nodes

See who is running the network: how many full nodes are online, which countries they are in, which software versions they run and which block they are on. Pick a blockchain to get the individual nodes too, or leave it blank for the counts across all eight crawled chains at once. No API key required.

**Inputs**

- Blockchain (`chain`, text): Optional. Which blockchain's nodes to list. Leave blank for the summary counts across every chain Blockchair crawls. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)).

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain that was listed, or null when every chain was summarised.
- `chains` (list): One entry per chain, busiest first. Only filled in when no chain was chosen.
- `count` (number): How many nodes are online, on the chosen chain or across all of them.
- `countries` (object): Node counts by two-letter country code, for the chosen chain.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `nodes` (list): The individual nodes, highest block first. Only filled in when a chain was chosen.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `versions` (object): Node counts by software version, for the chosen chain.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "chains": [],
  "count": 8923,
  "countries": {
    "DE": 1589,
    "FR": 612,
    "US": 2745
  },
  "market_price_usd": 78587,
  "nodes": [
    {
      "address": "1.171.38.197:8333",
      "country": "TW",
      "height": 964212,
      "version": "/Satoshi:28.1.0/"
    }
  ],
  "request_cost": 1,
  "versions": {
    "/Satoshi:27.2.0/": 1753,
    "/Satoshi:28.1.0/": 2974
  }
}
```

### List node software releases

Get the latest node-software release for each blockchain, newest first, with its version, publish date and GitHub link. This is what a scheduled workflow watches to hear about a hard fork before it happens - a new tag here is the upgrade an exchange or wallet has to ship. No API key required.

**Inputs**

- Blockchain (`chain`, text): Optional. Only this chain's releases. Leave blank for every chain Blockchair monitors. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), and 8 more.

**Outputs**

- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain that was filtered on, or null for all.
- `count` (number): How many entries came back.
- `latest_update` (text): When Blockchair last checked for new releases (UTC).
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `releases` (list): The releases Blockchair knows about, newest first.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.

**Example output**

```json
{
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": null,
  "count": 2,
  "latest_update": "2026-08-26 22:00:00",
  "market_price_usd": 78587,
  "releases": [
    {
      "chain": "bitcoin",
      "chain_name": "Bitcoin (BTC)",
      "link": "https://github.com/bitcoin/bitcoin/releases/tag/v28.1",
      "released_at": "2026-08-14 09:12:03",
      "version": "Bitcoin Core 28.1"
    },
    {
      "chain": "dash",
      "chain_name": "Dash (DASH)",
      "link": "https://github.com/dashpay/dash/releases/tag/v21.1.0",
      "released_at": "2026-07-30 20:12:45",
      "version": "Dash Core v21.1.0"
    }
  ],
  "request_cost": 1
}
```

### List Omni Layer tokens

Query every token issued on Omni Layer, with its id, name, issuer and supply. This is where a property id comes from before looking one up in detail. No API key required.

**Inputs**

- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. Newest first by default. One of: `property_id` (Property id), `creation_time` (Creation time), `creation_block_id` (Creation block height), `name`, `circulation` (Circulating supply).
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching Omni Layer properties, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "count": 1,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "category": "Financial and insurance activities",
      "circulation": 2145000000,
      "creation_block_id": 324140,
      "creation_time": "2014-10-06 16:39:15",
      "is_divisible": false,
      "issuer": "32TLn1WLcu8LtfvweLzYUYU6ubc2YV9eZs",
      "name": "TetherUS",
      "property_id": 31
    }
  ],
  "table": "omni/properties",
  "total_rows": 2249
}
```

### List richest addresses

Query the rich list: every address on a chain with its confirmed balance, biggest first. Filter by balance to count the addresses over a threshold, or page through the top holders. Balances come back both as satoshi or wei and as a readable coin amount. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain to query. Bitcoin by default. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), `ethereum` (Ethereum (ETH)). Default: `bitcoin`.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. The choices follow the blockchain picked above. Balance, biggest first, by default.
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching addresses, each with its confirmed balance, its balance in whole coins and the coin's ticker, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "count": 2,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 2,
  "request_cost": 1,
  "rows": [
    {
      "address": "34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo",
      "balance": 16625913046297,
      "balance_decimal": "166259.13046297",
      "unit": "BTC"
    },
    {
      "address": "35hK24tcLEWcgNA4JxpvbkNkoAcDGqQPsP",
      "balance": 15100013129630,
      "balance_decimal": "151000.1312963",
      "unit": "BTC"
    }
  ],
  "table": "addresses",
  "total_rows": 59448011
}
```

### List transaction outputs

Query individual coin movements on a UTXO chain - the finest detail Blockchair publishes. One row per coin sent, with the address that received it, its value, whether it has since been spent and how long it sat unspent. Use it to find every payment to an address in a period, or every OP_RETURN message in a month. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain to query. Bitcoin by default. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)). Default: `bitcoin`.
- Unconfirmed only (`mempool`, true/false): Optional. Query outputs of unconfirmed transactions instead of confirmed ones. Off by default. Default: `false`.
- From date (`date_from`, date): Optional. Only rows from this date onwards (UTC, inclusive). Leave blank for no lower bound.
- To date (`date_to`, date): Optional. Only rows up to and including this date (UTC). Leave blank for no upper bound.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. Newest first by default. One of: `block_id` (Block height), `transaction_id` (Transaction id), `index` (Position in the transaction), `time`, `value`, `value_usd` (Value in USD), `spending_block_id` (Spending block height), `spending_time` (Time it was spent), `lifespan` (Lifespan in seconds), `cdd` (Coin days destroyed).
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching outputs, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "count": 1,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "block_id": 170,
      "date": "2009-01-12",
      "index": 0,
      "is_from_coinbase": false,
      "is_spent": true,
      "lifespan": 58208942,
      "recipient": "1Q2TWHE3GMdB6BZKafqwxXtWAWgFt5Jvm3",
      "spending_block_id": 92240,
      "spending_time": "2010-11-16 20:39:27",
      "time": "2009-01-12 03:30:25",
      "transaction_hash": "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16",
      "transaction_id": 171,
      "type": "pubkey",
      "value": 1000000000,
      "value_usd": 0.1
    }
  ],
  "table": "outputs",
  "total_rows": 3892934627
}
```

### List transactions

Query the transactions table: the newest transactions, everything over a value in a date range, or the largest transfer of the day. Switch to the mempool to see what is waiting to confirm right now. Can also group and total instead of listing, so one call answers 'what were the average fees by day last month'. No API key required.

**Inputs**

- Blockchain (`chain`, text): Which blockchain to query. Bitcoin by default. One of: `bitcoin` (Bitcoin (BTC)), `bitcoin-cash` (Bitcoin Cash (BCH)), `litecoin` (Litecoin (LTC)), `bitcoin-sv` (Bitcoin SV (BSV)), `dogecoin` (Dogecoin (DOGE)), `dash` (Dash (DASH)), `groestlcoin` (Groestlcoin (GRS)), `zcash` (Zcash (ZEC)), `ecash` (eCash (XEC)), `bitcoin/testnet` (Bitcoin Testnet (test coins)), `ethereum` (Ethereum (ETH)). Default: `bitcoin`.
- Unconfirmed only (`mempool`, true/false): Optional. Query the mempool instead of the blockchain, to see transactions that have not confirmed yet. Off by default. The two are separate tables, so a query never mixes them. Default: `false`.
- From date (`date_from`, date): Optional. Only rows from this date onwards (UTC, inclusive). Leave blank for no lower bound.
- To date (`date_to`, date): Optional. Only rows up to and including this date (UTC). Leave blank for no upper bound.
- Extra filters (`filters`, text): Optional. Further conditions in Blockchair's own filter syntax, written as column(value) and separated by commas. A range is written value1..value2, a contains-match as ~text, and a starts-with match as ^text. Up to 5 conditions. The date pickers above already cover time, so this is for everything else.
- Sort by (`sort_field`, text): Optional. Which column to order by. The choices follow the blockchain picked above. Newest first by default.
- Sort direction (`sort_direction`, text): Optional. Which end of the sort to return first. Highest / newest first by default. One of: `desc` (Highest / newest first), `asc` (Lowest / oldest first). Default: `desc`.
- Group and total (`aggregate`, text): Optional. Turns the query into a report instead of a list: name the columns to group by and the totals to compute, comma separated. Functions are count(), sum(x), avg(x), median(x), min(x) and max(x); any table with a time column can also group by date, week, month or year. Leave blank to get individual rows. Costs 10 extra request points and ignores the row limit.
- Number of rows (`limit`, number): Optional. How many rows to return, between 1 and 100. 10 by default. Asking for more than 10 costs slightly more request points. From 1 to 100. Default: `10`.
- Skip (`offset`, number): Optional. How many rows to skip before returning any, for walking a long result set. Pass the previous run's next offset. Up to 10000. From 0 to 10000. Default: `0`.

**Outputs**

- `aggregated` (true/false): True when a Group and total expression was used, in which case the rows are totals rather than records.
- `best_block_height` (number): The chain's newest block at the moment of the call, which is what dates the answer.
- `cached_until` (text): When Blockchair's cached copy of this answer expires, as a UTC timestamp. Calling again before then returns the same data.
- `chain` (text): The chain this answer is about, e.g. 'bitcoin'.
- `count` (number): How many rows came back in this page.
- `has_more` (true/false): True when there are further pages to fetch.
- `market_price_usd` (number): The chain's coin price in USD at the time of the call.
- `next_offset` (number): The Skip value to pass to fetch the next page. Null on the last page.
- `request_cost` (number): What this call spent out of the daily allowance. Most calls cost 1; a filtered or aggregated table query costs more.
- `rows` (list): The matching transactions, one object per row, with Blockchair's own column names. An aggregated query returns the grouped totals here instead.
- `table` (text): The Blockchair table that was queried.
- `total_rows` (number): How many rows match the filters in total, across every page.

**Example output**

```json
{
  "aggregated": false,
  "best_block_height": 964212,
  "cached_until": "2026-08-26 23:04:33",
  "chain": "bitcoin",
  "count": 1,
  "has_more": true,
  "market_price_usd": 78587,
  "next_offset": 1,
  "request_cost": 1,
  "rows": [
    {
      "block_id": 170,
      "date": "2009-01-12",
      "fee": 0,
      "fee_usd": 0,
      "hash": "f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16",
      "id": 171,
      "input_count": 1,
      "input_total": 5000000000,
      "input_total_usd": 0.5,
      "is_coinbase": false,
      "is_rbf": false,
      "lock_time": 0,
      "output_count": 2,
      "output_total": 5000000000,
      "output_total_usd": 0.5,
      "size": 275,
      "time": "2009-01-12 03:30:25",
      "version": 1,
      "weight": 1100
    }
  ],
  "table": "transactions",
  "total_rows": 1425792478
}
```
