# Bitcoin Cash | Bitquery Data Store The full Bitcoin Cash ledger, including the shared history before the August 2017 fork: blocks, transactions, inputs and outputs with BCH and USD values. Dataset page: https://bitquery.io/datastore/datasets/bitcoin-cash Network: Bitcoin Cash Category: Blocks, Transactions, Transfers, UTXO Tables: 4 Columns: 74 Coverage: first block to 2026-09-24 Format: Apache Parquet, Snappy compression, one prefix per table Licence: https://bitquery.io/datastore/legal/data-license ## What this is Every Bitcoin Cash block, transaction, input and output from the 2009 genesis block to yesterday, with values in BCH, satoshi and USD at block time. Blocks before the August 2017 split are the history Bitcoin Cash shares with Bitcoin, priced in BCH from the first BCH market onward. Inputs carry the hash and index of the output they spend, so UTXO traversal and coin-age calculations are a single join rather than a replay. Files are cut by block range and named by their first and last block, so any window can be assembled exactly. ## What people use it for - UTXO graph analysis and address clustering - Pre-fork and post-fork holder behaviour studies - Fee market and block-size research - Fund-flow tracing across transactions ## Tables (4) ### blocks: 14 columns One row per block: size, weight, difficulty, chainwork and transaction count. S3 prefix: bitcoincash/blocks File naming: _.parquet, one file per block range Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/bitcoincash/blocks/970026_970075.parquet Sample updated: Sep 25, 2026 | column | type | description | | --- | --- | --- | | tx_date | UInt64 | Block date, UTC midnight (epoch ms) | | tx_time | UInt64 | Block timestamp (epoch seconds) | | blockchain_id | Int64 | Internal chain id | | block | UInt64 | Block height | | median_time | UInt64 | Median time past of the block (epoch seconds) | | nonce | UInt64 | Block nonce | | difficulty | Float64 | Mining difficulty | | hash | String | Block hash | | strippedsize | UInt64 | Block size without witness data, bytes | | size | UInt64 | Size in bytes | | weight | UInt64 | Block or transaction weight units | | version | UInt64 | Version field | | txcount | UInt64 | Transactions in the block | | chainwork | String | Cumulative chain work, hex | ### transactions: 25 columns One row per transaction with input, output, fee and mined values in BCH, satoshi and USD. S3 prefix: bitcoincash/transactions File naming: _.parquet, one file per block range Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/bitcoincash/transactions/970026_970075.parquet Sample updated: Sep 25, 2026 | column | type | description | | --- | --- | --- | | tx_date | UInt64 | Block date, UTC midnight (epoch ms) | | tx_time | UInt64 | Block timestamp (epoch seconds) | | blockchain_id | Int64 | Internal chain id | | block | UInt64 | Block height | | tx_hash | String | Transaction hash | | tx_index | Int64 | Position of the transaction in the block | | locktime | UInt64 | Transaction locktime | | version | Int64 | Version field | | size | UInt64 | Size in bytes | | vsize | UInt64 | Virtual size in vbytes | | weight | UInt64 | Block or transaction weight units | | is_coinbase | Int64 | 1 for the coinbase transaction | | input_count | Int64 | Number of inputs | | output_count | Int64 | Number of outputs | | input_value_decimal | Float64 | Total input value in BCH | | output_value_decimal | Float64 | Total output value in BCH | | fee_value_decimal | Float64 | Fee in BCH | | mined_value_decimal | Float64 | Newly mined BCH (coinbase only) | | input_value | Int64 | Total input value in satoshi | | output_value | Int64 | Total output value in satoshi | | fee_value | Int64 | Fee in satoshi | | mined_value | Int64 | Newly mined satoshi (coinbase only) | | input_value_in_usd | Float64 | Total input value in USD at block time | | output_value_in_usd | Float64 | Total output value in USD at block time | | fee_value_in_usd | Float64 | Fee in USD at block time | ### inputs: 17 columns One row per transaction input, referencing the output it spends, with address, script type and value. S3 prefix: bitcoincash/inputs File naming: _.parquet, one file per block range Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/bitcoincash/inputs/970026_970075.parquet Sample updated: Sep 25, 2026 | column | type | description | | --- | --- | --- | | tx_date | UInt64 | Block date, UTC midnight (epoch ms) | | tx_time | UInt64 | Block timestamp (epoch seconds) | | blockchain_id | Int64 | Internal chain id | | block | UInt64 | Block height | | tx_hash | String | Transaction hash | | transaction_index | Int64 | Position of the transaction in the block | | input_index | Int64 | Index of the input in the transaction | | output_tx_hash | String | Hash of the transaction that created the spent output; empty for coinbase | | output_index | Int64 | Index of the output in the transaction | | input_address | String | Address spending the input; empty for coinbase | | input_address_annotation | Nullable(String) | Entity label for the address, when known | | input_script | String | Input script: hex witness or scriptSig | | input_script_type | String | Input script type, e.g. txinwitness, scriptSig, coinbase | | script_template | Int64 | Script template id | | value_decimal | Float64 | Value in BCH; a coinbase input carries the newly mined amount | | value_in_usd | Float64 | Value in USD at block time | | value | Int64 | Value in satoshi; a coinbase input carries the newly mined amount | ### outputs: 18 columns One row per transaction output with address, script type, change heuristic and value. S3 prefix: bitcoincash/outputs File naming: _.parquet, one file per block range Free sample (real Parquet, no email needed): https://bitquery-blockchain-dataset.s3.us-east-1.amazonaws.com/bitcoincash/outputs/970026_970075.parquet Sample updated: Sep 25, 2026 | column | type | description | | --- | --- | --- | | tx_date | UInt64 | Block date, UTC midnight (epoch ms) | | tx_time | UInt64 | Block timestamp (epoch seconds) | | blockchain_id | Int64 | Internal chain id | | block | UInt64 | Block height | | date | String | Block date, YYYY-MM-DD | | tx_hash | String | Transaction hash | | transaction_index | Int64 | Position of the transaction in the block | | output_index | Int64 | Index of the output in the transaction | | output_address | String | Address receiving the output | | output_address_annotation | Nullable(String) | Entity label for the address, when known | | direction | String | Change heuristic: change, not_change, likely_change, likely_not_change, mining, fee, unknown | | output_script | String | Output script as opcodes and hex | | script_type | String | Output script type, e.g. pubkeyhash, scripthash, witness_v0_keyhash, nulldata | | script_template | Int64 | Script template id | | req_sigs | Int64 | Signatures required to spend | | value_decimal | Float64 | Value in BCH; a coinbase input carries the newly mined amount | | value_in_usd | Float64 | Value in USD at block time | | value | Int64 | Value in satoshi; a coinbase input carries the newly mined amount | ## Price - Full history (Genesis → Sep 24, 2026): $8,000 one-time, USD One-time purchase. The files are yours to keep under the licence above. ## Questions buyers ask Q: What is included in Bitcoin Cash? A: Four Parquet tables: blocks, transactions, inputs and outputs, covering full history from the genesis block to yesterday. Every input and output carries its address, script type and value in BCH, satoshi and USD. Q: Which address format is used? A: Addresses are CashAddr without the bitcoincash: prefix, for example qzg0y2znj5vex92q7rsaufwmcqynfxx855d866cy6t. Convert to legacy base58 with any CashAddr library if you need that form. Q: How is the data delivered? A: As flat Parquet files under a stable S3 layout, one prefix per table, files named by block range. Signed HTTPS links are emailed once the files are prepared. Q: How do I trace where coins went? A: Join inputs.output_tx_hash to outputs.tx_hash and inputs.output_index to outputs.output_index. Each input names the output it spends, so a spend chain is a repeated self-join rather than a node replay. Q: How do I load it? A: One DuckDB line reads a whole table: SELECT * FROM read_parquet('outputs/*.parquet'). Values come in BCH, the smallest unit and USD at block time, so no decimal adjustment is needed. Q: How current is the data? A: A purchase covers full history from the genesis block to the day before the files are cut. Files are cut by block range, so any window can be assembled exactly. Q: Can I try before I buy? A: Yes. Every table links to a public sample Parquet file with real records from one day, and the sample repository shows the first rows of each in the browser. ## What this file is, and is not This is a description of one dataset sold by Bitquery, written for assistants and for people. It lists every column but holds no data rows. The sample files linked under each table are real Parquet and are free to download. Figures here come from the product record and are exact unless marked otherwise; the delivery manifest is authoritative for a purchased file. If a question needs a row that is not in a sample, say so rather than guessing at it.