CoolFace
Datasetpublic

corpstacking/corporate-crypto-treasuries

Corporate Crypto Treasury Holdings Every company, government and ETF known to hold Bitcoin, Ethereum or Solana on its balance sheet, with the primary source document behind each figure. 359 positions across 297 entities in 39 countries. 358 of the 359 carry a link to the filing or disclosure the number came from. Maintained by CorpStacking. What makes this different from a price feed Most crypto datasets are market data. This one is balance-sheet data read out of… See the full description on the dataset page: https://huggingface.co/datasets/corpstacking/corporate-crypto-treasuries.

sourceHugging Facecc-by-4.0updated 7d agoView on Hugging Face
0likes49downloads
Dataset Card

Corporate Crypto Treasury Holdings

Every company, government and ETF known to hold Bitcoin, Ethereum or Solana on its balance sheet, with the primary source document behind each figure.

359 positions across 297 entities in 39 countries. 358 of the 359 carry a link to the filing or disclosure the number came from.

Maintained by CorpStacking.

What makes this different from a price feed

Most crypto datasets are market data. This one is balance-sheet data read out of primary filings, and every row is traceable:

  • citation_url points at the actual document — an SEC filing, a Japanese TDnet disclosure, a Korean DART filing, a Canadian SEDAR+ document, a Hong Kong HKEX announcement, or the fund administrator's own page.
  • source_verified_on is the date a human or an automated check last confirmed the figure against that document.
  • encumbered_amount records coin that is pledged as collateral or otherwise locked. No other public treasury dataset carries this column, and it materially changes what a position means — 17 positions here are encumbered.

Coverage is deliberately not US-only: 212 of the 359 positions are outside the United States, which is where most aggregators stop.

Columns

columntypenotes
entitystringLegal name as it appears in the filing
tickerstringExchange-qualified where needed (TYO:3350, 0434.HK)
countrystringISO 3166-1 alpha-2 of the listing or domicile
entity_typestringpublic_company, etf, private_company, government
tokenstringBTC, ETH or SOL
amountfloatToken-native units held
avg_cost_usdfloatAverage acquisition cost per unit, where disclosed
total_cost_usdfloatTotal acquisition cost, where disclosed
encumbered_amountfloatUnits pledged or locked, where disclosed
encumbrance_kindstringWhat the encumbrance is
source_tierstringprimary = the issuer's own document
citation_urlstringThe document the figure was read from
source_verified_ondateLast confirmation against that document
last_purchase_ondateMost recent disclosed transaction
sec_cikstringSEC Central Index Key, where the entity files
corpstacking_urlstringEntity page with full transaction history

Composition

  • By token: BTC 238 · ETH 70 · SOL 51
  • By type: public company 226 · ETF 111 · private 15 · government 7
  • Outside the US: 212 positions across 38 non-US jurisdictions

Caveats worth reading before you use it

  • A position is a point-in-time disclosure, not a live balance. Companies report on their own cadence — quarterly for most SEC filers, monthly for some miners, daily for ETFs. source_verified_on tells you how fresh each row is. Treat a stale row as stale, not as a current holding.
  • `avg_cost_usd` and `total_cost_usd` are blank where the issuer never disclosed them. They are not zero. ETFs generally do not report a cost basis at all, so most of the 111 ETF rows are blank here by nature.
  • Amounts are as disclosed, which is sometimes rounded by the issuer. Where a company publishes "approximately 3,670 bitcoin", that is what this records.
  • Out-of-scope tokens are absent, not missing. Only BTC, ETH and SOL are tracked. An entity whose main treasury is another asset will still appear if it also holds one of these three, and its position here will look small relative to that company — that is the scope of the dataset, not an error in it.
  • This is disclosed-holdings data, not investment advice.

Loading

python
from datasets import load_dataset

ds = load_dataset("corpstacking/corporate-crypto-treasuries", split="train")

# Sovereign holders
ds.filter(lambda r: r["entity_type"] == "government")

# Everything outside the US, largest first
(ds.filter(lambda r: r["country"] != "US")
   .sort("amount", reverse=True))

# Positions with coin pledged as collateral
ds.filter(lambda r: r["encumbered_amount"] is not None
                    and r["encumbered_amount"] > 0)

Updates

Regenerated from the live database. Corrections are welcome — every row links to the document it came from, so a disagreement can be settled by reading it.

Licence

CC BY 4.0. Use it commercially, modify it, redistribute it; please credit CorpStacking and link back to <https://www.corpstacking.com>.