BitqueryBitqueryData Store
BitcoinLabels

Bitcoin Address Labels

48.0 million Bitcoin rows: exchange wallets, casinos, payment services, darknet markets, mixers, mining pools, ransomware and scams.

Coverage
Full historyto Sep 24, 2026 · yesterday
Rows
≈48Mrows · estimate
Size
≈1.7 GBParquet · estimate
Table
1address_labels
Columns
4typed
Refresh: snapshotCoverage ends yesterday, UTC

Overview

One snapshot of our Bitcoin table: 48.0 million rows, each an address, a type and a value such as xapo or coinpayments, across 31 types.

Bitcoin covers services old and new: 34.9 million exchange wallet rows, 5.2 million casino, 4.2 million payment service and 2.3 million darknet market wallets, 494,612 mixer, 293,523 mining pool, 75,277 scam and 24,355 ransomware wallets. Join it to Bitcoin transfers or trades on the address to name who is on the other side.

Use cases

  • Name the other side of Bitcoin transfers
  • Track flows into and out of each exchange
  • Screen counterparties for scam and sanctions tags
  • Group deposit wallets by exchange

Table

4 columns · free sample for the table

address_labels

4 columns

One row per label: the address, its chain, the label category and the label value.

labels/address_labels/bitcoinpart_<n>.parquet
Browse columns Sample fileSample updated Sep 25, 2026

Schema reference

copies a column name
ColumnTypeDescription
AddressStringThe Bitcoin address: legacy (1…), P2SH (3…) or bech32 (bc1…).
ChainStringAlways bitcoin in this dataset; kept so files from several chains can be stacked.
Label_TypeStringType of tag, one of 31 values here, such as cex-deposit-address, cex-hot-wallet, gambling or scam.
Label_ValueStringWho or what the wallet belongs to, often just a name (xapo, coinpayments). Rows with no name repeat the type.
Sample file

Ask an AI about this data

Send this dataset’s full schema to an assistant and ask it anything. It reads the plain-text brief first, so the answer comes from the real column list rather than a guess.

Start with

Opens a new chat with the question filled in. Nothing about you is sent to Bitquery, and the assistant sees only the public brief.

Delivery

Parquet files, delivered as signed download links by email after payment, in this layout:

# address_labels
labels/address_labels/bitcoinpart_<n>.parquet
  1. Download a free sampleNo email needed.
  2. Pay nowName, work email and licence check.
  3. Pay the invoiceBy card or bank transfer.
  4. Get signed linksThe team prepares the export and emails the links.

Price

Full history
Genesis → Sep 24, 2026
$4,000one-time, USD
  • The address_labels table, 4 columns
  • Parquet files in the layout under Delivery
  • Signed download links by email
  • Licensed under the Data License
Pay now

FAQ

7 questions
What is in this dataset?

One Parquet table with a row per Bitcoin tag: the address, the chain, a type such as cex-deposit-address or scam, and a value such as xapo or coinpayments. The Chain column is always bitcoin, so these files stack with other chains.

How big is it?

48.0 million rows in 31 types as of 25 September 2026, about 1.7 GB as Parquet, naming about 498 exchanges, payment services and casinos.

How do I use it with transfer or trade data?

Join on the address and the chain. Legacy and P2SH addresses are case-sensitive; bech32 addresses are lowercase. One wallet can carry more than one tag, so count distinct wallets, not rows, when you size a group.

What should I watch out for?

Rows are sold as is, with no score, so check any tag that drives a decision against the wallet's own history. Here the cex-hot-wallet type marks any wallet in an exchange's group, deposit and change wallets too, and 19.8 million of those rows carry the type as their value instead of an exchange name. One exchange can appear under two names, such as coinbase and coinbase-exchange or gate and gate-io, so group those by hand.

Is there a version with more chains?

Yes. Address Labels has all 38 chains, Bitcoin included, with the same columns, for $12,000. Bitcoin on its own is $4,000.

How do I load it?

In DuckDB: SELECT Label_Type, count(*) FROM read_parquet('address_labels/**/*.parquet') GROUP BY 1. Pandas works too: pandas.read_parquet(path). The sample file opens without a login.

How current is it, and how is it delivered?

It is a snapshot: each order exports the label table as it stands that day, and the files are not refreshed after delivery. Labels are Parquet, one folder for the chain, with a JSON manifest listing every file and its sha256. Signed HTTPS links are emailed once the files are ready, or on request we deliver into your own S3, GCS or R2 bucket.