This is the archived 2026-10-19 edition; data and text are as of then. Latest: https://ronfi.github.io/cex-reserves/en/ · Version archive

Top Exchange Reserves Check · 2026-10

Data as of 2026-10-19 00:31 UTCUpdated every Monday 00:00 UTCReproduce python3 tools/cex_reserves_verify.py --chain allSource and data

Each table heading carries its own read time. Every number can be re-read with tools/cex_reserves_verify.py in this repository; the output snapshot is data/cex_reserves_2026-10-19.json. Source discipline: direct on-chain read > official PoR page > public aggregator > media. The first three go into tables; media is used only as a lead, marked ⚠, and never tabulated. This page makes no judgement about any exchange's solvency; it presents verifiable facts and the differences between sources. Not investment advice.

0. Summary

  1. The distribution: of the 20 exchanges, 18 hold under 20% of reserves in affiliated tokens, and only two are above 30% — the highest at 78%, the next at 32%. Eight hold none at all; across the twelve that do, the median is 13% (⚠ caliber: counting the eight zeros as well, the median across all 20 is 2.5% — the two medians are not the same thing, and a citation must say which). Exchange by exchange in §4.2.
  2. Among top exchanges, HTX is the only one holding all four kinds of affiliated assets: a platform token (HTX token), an affiliated stablecoin (USDD), self-issued wrapped coins (BTC-TRC20, HBTC), and JustLend yield receipts (stUSDT/jUSDD). Every other exchange has at most one kind (classification and the three FTX criteria in §4).
  3. HTX reports reserve ratios "all above 100%", but on the on-chain-verifiable basis: own-wallet USDT covers only 4.8% of liabilities, BTC 42%, ETH 25%; 18.1% of total reserves sit with an undisclosed "third-party custodian", and 47.5% is TRX, 69% of which is staked. (self-reported figures are the 2026-09-01 page snapshot; on-chain figures are direct reads of 09-14)
  4. BTC chain (11 exchanges): 10 reconcile within ≤0.2% between the direct read and the aggregator (Binance / Bitfinex / Bybit / Gate / Bitget / MEXC / Gemini / Deribit / Crypto.com / Bitstamp); the exception is HTX at +0.9% (list basis, §3.1). Binance's official PoR address endpoint is unchanged at 64 BTC / 37 ETH addresses (matching the local list; one of the 38 ETH entries is a duplicate); Bitstamp's website list changed sharply again: 502 → 561 addresses (updated Oct 17; 289 added, 230 removed, 272 present both weeks; over five weeks 507 → 196 → 229 → 502 → 561); on the current list the direct read is 39,526 BTC and the aggregator, which follows the same list, shows 39,546 (−0.1%). ETH-chain coverage: Binance 100%, Bitfinex 102%, Gemini 102%, KuCoin 101%, OKX 97%, Gate 124%, HTX 122%, Bitget 75%, Bitstamp 48%* (>100% means the direct read exceeds the aggregator; caliber differences in the §3 table notes). Every exchange self-reports reserve ratios above 100%; this report can verify only the part readable on chain, and §3 shows how much that is for each exchange.
  5. This week's changes (in coin units, same address list before and after; Oct 12 → Oct 19; over the same period Binance BTC −2.0%, ETH −5.0%): BTC Binance +6,729 (+1.1%, 64-address basis), Deribit +541 (+1.3%), Gate +430 (+2.3%), Bybit +301; Bitget −474 (−1.6%), Bitfinex −276, Gemini −275, Crypto.com −132; Bitstamp −2,280 (−6.7%) on the 272 addresses present both weeks, but +117 (+0.3%) in total on the current 561-address list — the gap is wallet rotation: the 230 removed addresses are now empty (about 5,325 BTC on Oct 12) and the 289 added ones hold 7,722 BTC (§2 note). Native ETH on Ethereum mainnet: Bitfinex +58,198 (+10.9%; over the same week its Ethereum USDT +$212M, LEO +$79M, USDF +$75M), OKX −42,663 (−3.8%), Gate +15,193 (+9.2%), Binance +12,868 (+0.4%; WBETH −$570M over the same week), Bitstamp −1,955, Gemini −1,440. Stablecoins: Bitget USDT-TRC20 −88.9M and Ethereum USDT +38.2M; Gate Ethereum USDT +83.2M, TRC20 +50.0M; Binance USDT-TRC20 +51.4M, Ethereum USD1 −131.0M / RLUSD +115.5M / USDC −90.1M; KuCoin Ethereum USDT +47.6M; OKX Ethereum USDT +40.9M / USDC +40.3M. ⚠ Dollar figures are distorted by price (Binance's Ethereum ETH −$359M in dollars but +12,868 in coins); this item uses coin counts throughout.
  6. Bitget incident (public record): at 18:31 UTC on 2026-09-24 Bitget announced abnormal outflows from hot/warm wallets, with an initial official estimate of about $351.6M, and suspended all withdrawals (CEO post on X: https://x.com/GracyBitget/status/2103235655879074084). The part verifiable on chain: one receiving address, 0x770b10b273fc44fe9197d6bf20f145c2e98463ee, took about $173M from Bitget's published addresses (Ethereum ETH 24,595 / USDT 34.75M / USDC 12.85M / XAUT 3,000 oz; Arbitrum USDT0 19.67M; Avalanche AVAX 821,012 + USDC 8.2M; BSC BNB 12,719); no outflows to the same destination were seen from the published Tron or BTC addresses. This week Bitget's Ethereum-mainnet ETH fell 18,221, USDT 154.5M and USDC 8.8M; all three source addresses are on this report's list. Net of those outflows, ETH (+6,374) and USDC (+4.1M) rose, while USDT still fell by about 120M. This row's decline this week is not to be read as ordinary fund flow; this report does not characterise the incident or attribute the outflows. Follow-up (public record): Bitget announced on X that the vulnerability "has been identified and remediated" and that withdrawals would resume in phases (https://x.com/bitget/status/2103695497458557342); per reports, BTC withdrawals resumed at 08:00 UTC on Sep 28, ETH on Sep 29, USDT on Sep 30, with other tokens, fiat and P2P set for Oct 2; reported losses were updated to about $387.5M ⚠ (media figure; no official itemisation seen). Bitget's BTC direct read fell 6,165 this week, in line with the 29,100 BTC wallet figure in its Sep 29 official PoR (§3.1: direct read 29,247, +0.5%); this report does not characterise the incident or attribute the outflows.

1. Method: three data layers, trust only the bottom one

Layer What it is How this report uses it
Direct on-chain read Take the addresses an exchange publishes and read them directly: BTC (mempool.space), ETH with every priced ERC-20 (Blockscout), Tron (trongrid getaccount, staking included) Primary evidence; per-address failures are logged in the output JSON
Official PoR page Each exchange's proof-of-reserves page (liabilities, self-reported reserves, custody column) The only source for the liability side; this report cannot verify total liabilities
Aggregator (DefiLlama) Sums over its own address sets. "DefiLlama-Adapters" below means the per-exchange fetch script and address list in its open-source repository of that name (https://github.com/DefiLlama/DefiLlama-Adapters/tree/main/projects) Panorama comparison; two caliber rules below

Aggregator caliber rules

  1. Platform tokens are counted; stablecoins issued or affiliated with the exchange (USDD), self-issued wrapped coins (HBTC / BTCTRON) and Aave deposit receipts are not.
  2. The Binance row includes the collateral it locks for BSC pegged tokens ($12.3B), which is not customer assets.
  3. Address sets may differ from official PoR lists (HTX: 57 DefiLlama-Adapters addresses vs 11 official).

2. Panorama: top 20 by on-chain reserves (DefiLlama public-address basis, read 2026-09-14 01:08 UTC)

Sample rule: the top 20 by on-chain assets on the DefiLlama CEX board, no discretionary additions or removals; Coinbase / Kraken / Upbit publish no addresses and are not on the board.

# Exchange On-chain reserves BTC ETH Stablecoins Affiliated 1-yr net flow
1 Binance $170.3B 30% 11% 31% 16%(BNB) +15.4%
2 OKX $30.5B 37% 10% 39% 5%(OKB) +29.6%
3 Bitfinex $19.4B 61% 3% 3% 32%(LEO) +3.5%
4 Bybit $14.7B 31% 13% 29% 4%(MNT) -12.6%
5 Robinhood (broker) $14.7B 77% 21% 0% 0% -0.0%
6 Gate $7.1B 21% 15% 16% 15%(GT) +14.8%
7 Bitget $6.0B 39% 7% 19% 8%(BGB) +35.2%
8 Gemini $5.4B 84% 14% 0% 0% -13.8%
9 MEXC $5.3B 18% 3% 47% 11%(MX) +51.1%
10 Deribit $5.1B 77% 11% 11% 0% +30.4%
11 Bitstamp $4.7B 68% 21% 1% 0% +129.4% ⚠ not an inflow (see reading)
12 HTX $4.2B 16% 2% 0% 78%(HT,HTX,TRON,TRX) -1.2%
13 KuCoin $3.3B 19% 9% 30% 15%(KCS) -10.1%
14 Crypto.com $2.5B 74% 8% 9% 1%(CRO) -7.0%
15 HashKey $1.7B 65% 25% 5% 0% +32.4%
16 Poloniex $1.6B 49% 40% 1% 1%(BTT,JST,NFT,SUN,TRX,USDD,WIN) +45.4% ⚠ not customer inflow (see reading and §7); window only 191 days (from 02-28)
17 Bitkub $1.5B 65% 14% 3% 0% +34.8%
18 SwissBorg $1.0B 43% 14% 6% 15%(BORG) -0.8%
19 BitMEX $0.8B 87% 0% 13% 0% -60.4% (voluntary shutdown 2026-09-23, withdraw before wind-down)
20 OSL $0.8B 73% 19% 6% 0% +7.9% ⚠ window only 235 days (from 01-15)

How to read

3. Direct on-chain reconciliation of published addresses (primary evidence)

§2 is the aggregator's basis; this section is this report reading the chains itself: take each exchange's published addresses (official PoR list or DefiLlama-Adapters source, see tools/cex_addresses.json), read BTC / all ETH assets / Tron per address, then reconcile against the aggregator. Tables are generated by tools/make_tables.py from data/cex_reserves_2026-10-12.json; every address's read and failure record is in that file.

3.1 BTC chain (mempool.space direct read vs aggregator; difference ≤1% green, >5% red)

Exchange Addresses (read/total) Direct BTC Aggregator BTC Diff PoR BTC: users / wallets (snapshot) Direct − PoR wallets
Binance 64/64 634,445 634,464 -0.0% 682,356 / 683,449(09-01) -7.2%(snapshot Sep 1 vs direct read Oct 19, 48 days apart (no October snapshot seen as of Oct 19); reported wallets include 9,772 BTC with third-party custodians; on the like-for-like 64-address list the direct read rose about 6,700 BTC this week (§0))
Bitfinex 3/3 157,626 157,626 -0.0% — —
Bybit 25/25 57,738 57,738 +0.0% 56,438 / 59,064(07-23) -2.2%
Gate 13/13 19,129 19,093 +0.2% 21,166 / 25,466(09-13) -24.9%(the 13-address DefiLlama-Adapters list is not every wallet on the page (Gate publishes no BTC addresses))
Bitget 21/21 29,602 29,604 -0.0% 20,532 / 29,100(09-29) +1.7%
MEXC 34/34 11,770 11,770 +0.0% 4,221 / 12,403(10-08) -5.1%(the 34-address DefiLlama-Adapters list is not every wallet on the page; reported figure is the Oct 8 snapshot)
Gemini 4/4 55,909 55,902 +0.0% — —
Deribit 17/17 40,852 40,852 -0.0% — —
HTX 11/11 8,009 7,939 +0.9% 19,498 / 20,252(09-01) -60.5%(reported wallets 20,252 = exchange 18,563 + custody 1,689; the exchange figure includes BTC-TRC20, 10,338 on chain 10-19, leaving ~8,225 against the 8,009 read here, −2.6%)
Crypto.com 8/8 22,637 22,637 -0.0% — —
Bitstamp 561/561 39,526 39,546 -0.0% — —

How to read

3.2 ETH chain (Blockscout all-asset direct read vs aggregator; the "aggregator-caliber" column excludes USDD/HBTC/aEthUSDT; coverage 95–105% green, <90% or >110% red)

Exchange Addresses All-asset read Aggregator-caliber read Aggregator Coverage Failed Direct native ETH PoR ETH: users / wallets (snapshot) Direct native − PoR wallets
Binance 37 + lock 2 $68.14B $68.14B $68.22B 100% 0 3,016,647 3,982,739 / 3,982,773(09-01) -24%
OKX 323 $13.30B $13.30B $13.70B 97% 0 1,090,674 1,862,025 / 1,866,714(2026-10) -42%
Bitfinex 9 $8.08B $8.08B $7.93B 102% 0 590,594 — —
Gate 91 $4.14B $4.14B $3.33B 124% 0 180,776 350,841 / 433,589(09-13) -58%
Bitget 80 $0.97B $0.97B $1.29B 75% 0 79,427 166,080 / 182,424(09-29) -56%
Gemini 5 $0.82B $0.82B $0.80B 102% 0 286,244 — —
HTX 57 $0.20B $0.15B $0.13B 122% 0 11,117 114,984 / 116,757(09-01) -90%
KuCoin 96 $1.67B $1.67B $1.65B 101% 0 91,950 99,132 / 115,905(09-30) -21%
Bitstamp 63 $0.50B $0.50B $1.05B 48%* 0 139,427 — —

How to read

3.3 Tron chain (trongrid getaccount with four staking buckets + direct USDT-TRC20 read)

Exchange Addresses TRX available TRX staked USDT-TRC20 PoR TRX: users / wallets Direct TRX − PoR wallets PoR USDT (all chains): users / wallets
Binance 25 2,410M 0M 1,787.5M — — 32,308M / 33,248M(09-01)
OKX 23 214M 491M 291.2M — — 8,742M / 9,213M(2026-10)
Bitfinex 2 15M 42M 105.3M — — —
Gate 11 13M 84M 125.9M 59M / 180M(09-13) -45.9%(the 11-address DefiLlama-Adapters list is not every wallet on the page (Gate publishes no TRX addresses)) 796M / 909M(09-13)
Bitget 29 4M 0M 221.1M — — 1,181M / 1,269M(09-29)
HTX 18 3,044M 6,733M 0.0M 8,620M / 9,384M(09-01) +4.2% 872M / 588M(09-01)
KuCoin 24 13M 58M 96.1M — — 965M / 1,057M(09-30)

How to read

4. Affiliated tokens as a share of reserves: FTX's three structural preconditions, exchange by exchange

4.1 What FTX's structural preconditions were (⚠ public reporting, used only as the source of the criteria)

FTX's balance-sheet structure before its November 2022 collapse is where this chapter's criteria come from. Note: FTX the exchange never published its own reserve composition; the criteria here come from the balance sheet of its affiliated market maker Alameda, which is not the same basis as the exchange reserve shares in §2 and cannot be compared with them directly. Three points:

The criterion: what is fatal is not "holding your own token", it is all three at once — ① the own token is the bulk of reserves; ② the own token has no order book; ③ the liability side is opaque. Below, every exchange is checked against the same rules.

4.2 By exchange: affiliated tokens as a share of reserves (data as in §2; red rule as in §2: affiliated >30% of reserves)

"Hard assets" = BTC + ETH + stablecoins; whatever the two columns leave short of 100% is other coins (SOL, XRP, etc.).

Exchange Affiliated token Share of reserves Hard assets
HTX TRX + HTX token 78% 18%
Bitfinex LEO 32% 68%
Binance BNB 16% 72%
KuCoin KCS 15% 59%
SwissBorg BORG 15% 63%
Gate GT 15% 53%
MEXC MX 11% 68%
Bitget BGB 8% 66%
OKX OKB 5% 86%
Bybit MNT 4% 74%
Poloniex Affiliated-group tokens 1% 90%
Crypto.com CRO 1% 90%
Robinhood, Gemini, Deribit, Bitstamp, HashKey, Bitkub, BitMEX, OSL — 0% 79–100%

4.3 Affiliated assets by nature: four kinds

The table above is arranged by exchange; below is arranged by asset, one block per kind. One exchange's affiliated assets can span all four.

① Platform tokens

Item Detail
Assets BNB, LEO, OKB, GT, KCS, BGB, MX, MNT, CRO, BORG, HTX token
Issuer / mechanism Issued by the exchange itself; value = the exchange's own credit
Size and holdings (primary) LEO $6.3B in Bitfinex reserves; HTX holds 23% of the HTX token supply itself, and it trades only on HTX (§6.2, §8)
Verifiability Balances verifiable; price depends on the exchange's own order book (§8)

② Affiliated stablecoin

Item Detail
Assets USDD
Issuer / mechanism Issued 2022-05 by TRON DAO Reserve (⚠ public reporting describes it as under the same controller as HTX); launched as an algorithmic coin, restyled "over-collateralised" after the 2022-06 depeg, and in 2025 changed to minting against locked TRX/USDT (⚠ history from public reporting)
Size and holdings (primary) Supply $1.51B, mostly on Tron (https://defillama.com/stablecoin/usdd); HTX counts it in its "USDs" stablecoin reserves, 125M in own wallets (PoR page USDs breakdown)
Verifiability Balances verifiable; the collateral is TRX, the same asset as the bulk of the reserves

③ Self-issued wrapped coins

Item Detail
Assets BTC-TRC20 (BTCTRON), HBTC
Issuer / mechanism BTCTRON: issued by Poloniex on Tron in 2020, claims 1:1 redemption, has never disclosed a collateral address (https://tronscan.org/#/token20/TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9); HBTC: wrapped BTC issued by Huobi on Ethereum in 2020, discontinued after the rebrand to HTX (https://etherscan.io/token/0x0316EB71485b0Ab14103307bf65a021042c6d380)
Size and holdings (primary) BTCTRON supply 17,545, HTX holds 10,334 (direct read 2026-09-14), 51% of its PoR BTC line; HBTC supply only 969.49, HTX addresses hold ≈540 (56%)
Verifiability Balances verifiable; we could not locate BTCTRON collateral in the published addresses at either end (§7.2; on-chain search cannot rule it out); the HBTC issuer holds more than half of it itself

④ Yield / lending receipts

Item Detail
Assets stUSDT, jUSDT, jUSDD, sTRX (JustLend); stETH (Lido); WBETH (Binance); aEthUSDT (Aave); sUSDS (Sky)
Issuer / mechanism Shares received for depositing the underlying into a protocol, booked in reserves as the underlying (stUSDT as USDT, stETH as ETH)
Size and holdings (primary) 73% of HTX's own-wallet USDT is stUSDT (39.55M; ⚠ that composition is from the 08-01 per-chain snapshot, HTX has not published the 09-01 per-chain data, §6.2); Poloniex snapshot sUSDS 912.6M, stETH 247.8k (§7); Binance WBETH $8.4B; the aEthUSDT pool on chain 09-03: total supply ≈$2.95B, cash in pool $236M, utilisation 92% (https://etherscan.io/token/0x23878914EFE38d27C4D67Ab83ed1b93A74D4086a)
Verifiability Balances verifiable; instant redemption depends on the cash in the protocol, and every depositor stands in the same queue; the underlying of JustLend receipts (https://tronscan.org/#/token20/TThzxNRLrW2Brp9DcTQU8i4Wd9udCWEdZ3) is itself inside JustLend, and JustLend accepts BTCTRON as collateral (§7.2)

4.4 The three criteria, exchange by exchange (exchanges with affiliated ≥10%, plus those publishing per-coin liabilities)

Exchange ① Affiliated = bulk of reserves ② Holding ÷ major-venue 30-day avg volume (days to sell all, §8) ③ Liability side (§5)
HTX Yes (78% vs hard assets 18%) TRX ≈45 days, HTX token ≈13 days Publishes per-coin liabilities; 19% of reserves with a custodian not disclosed on the page, own-wallet USDT covers 5.8% of liabilities (§6.2)
Bitfinex No (32% vs 68%) LEO ≈26,700 days No PoR page, liabilities unpublished
KuCoin No (15% vs 59%) KCS ≈96 days Per-coin ratios only (Sep 30: USDT 110%)
SwissBorg No (15% vs 63%) Not measured No PoR page
Binance No (16% vs 72%) BNB ≈177 days Publishes per-coin liabilities; own wallets ÷ liabilities 100.1% (Sep 1)
Gate No (15% vs 53%) GT ≈1,430 days Ratio only, 117% (Sep 13)
MEXC No (11% vs 68%) Not measured Ratios only (Oct 8: BTC 294% / USDT 122%)
OKX No (5% vs 86%) Not measured Publishes per-coin liabilities; own wallets ÷ liabilities 102.2% (Oct 2)

How to read

5. Official PoR side by side (each exchange's page, snapshot dates vary — see the first column; red = third-party custody >10% of reserves or own wallets ÷ liabilities <100%, the §10 trigger rules)

Exchange User liabilities Reported reserves Third-party custody share Own wallets ÷ liabilities
Binance (Sep 1) $141.2B $143.3B 1.4% 100.1%
OKX (22 reserve coins, Oct 2) $34.3B $36.2B 3.0% 102.2%
HTX (09-01) $6.03B $6.37B 18.1% (custodian undisclosed) 86.5%
Gate (Sep 13) — 117.26% no custody column —
Bitget (Sep 29) — 131% (USDT 107.5%: wallets 1,268.6M / users 1,180.6M) no custody column —
KuCoin (Sep 30) — per coin: BTC 109% / ETH 117% / USDT 110% / USDC 127% no custody column —
MEXC (Oct 8) — per coin: BTC 294% / USDT 122% (total ratio not captured this period) no custody column —
Kraken — ratio only — —

6. Discrepancies with self-reported figures (by exchange)

The same reading is applied to every exchange. This section lists the differences between what this report reads and what each exchange reports, each with its verification method; it sets no thresholds, so it uses no colour, only bold for the item.

6.1 Binance / Poloniex

Exchange Discrepancy Reading How to verify
Binance The aggregator counts pegged-token collateral as "reserves" $12.3B of DefiLlama's $69.1B comes from 2 lockinfo addresses (USDT 9.18B, USDC 1.58B, ETH 455k), not customer assets; the 37 PoR addresses alone hold $56.4B eth_lock in tools/cex_addresses.json; --chain eth --ex binance-cex
Poloniex Reserve composition and concentration 94% of "USDT" is sUSDS, 98% of "ETH" is stETH, one address holds 63% of reserves; published TRX addresses −18% in a month (§7.1 per address) §7

6.2 HTX

# Discrepancy Reading How to verify
1 Own-wallet USDT covers only 4.8% of liabilities; 93% of USDT reserves sit in third-party custody 09-01 page: liabilities 872.3M; own wallets 41.46M (÷ liabilities = 4.8%); custody 546.87M (93% of USDT reserves). ⚠ The per-chain composition of own wallets (08-01: USDT-TRC20 13.24M + USDT-ERC20 1.05M + stUSDT 39.55M, i.e. 73% JustLend receipts) exists only in the GitHub CSV, which has no 09-01 version yet. The 5 official USDT-TRC20 addresses on chain 09-14: 1.91M HTX PoR page "USDs" breakdown; GitHub snapshot CSV; --chain tron --ex htx (tron_por item)
2 18.1% of reserves in third-party custody whose custodian is not disclosed on the page Category added 2026-06-01; at 09-01 it holds USDT 546.9M, USDC 239.4M, ETH 87,543, BTC 1,689, USDD 6.9M, U 17.9M, SOL 1,833 and 301.8bn HTX; Binance 0.9% and OKX 2.6% on the same basis HTX PoR page "Custodial Wallets" column
3 51% of BTC reserves is Poloniex-issued BTC-TRC20, with no corresponding collateral found in the published addresses or the PoR page (on-chain search cannot rule it out) 09-01 reported BTC 20,252 = exchange wallets 18,563 + custody 1,689; BTC-TRC20 on chain 09-14 is 10,334 = 51% of reported reserves; the 11 published addresses read 8,203 native = 42.1% of the 19,498 user liability --chain btc,tron --ex htx; BTC-TRC20 in §7.2
4 75.0% of ETH reserves in custody, 25.0% verifiable on chain 09-01 page: users 114,984 / HTX 116,757 / exchange wallets 29,213 / custody 87,543; the 11 PoR addresses on chain 09-14 read $67.4M (native ETH only 61.6, the rest stETH-type receipts) --chain eth --ex htx (eth_por item)
5 TRX is 47% of reserves, 69% staked, and the whole market's order book cannot absorb 1% of it 18 addresses hold 9.75B TRX = 10.3% of supply (3.01B available + 6.73B staked, 69% staked, read 09-14); the 09-01 user TRX liability is 8.62B ⇒ 35% payable at once; ±2% spot depth across ten venues $17.6M in total, HTX holding $3.2B trongrid getaccount; each venue's depth API
6 The HTX platform token is 6.1% of reserves; the self-reported exchange wallets equal 23.2% of its supply, and it trades only on HTX Tron mainnet totalSupply 999.99 trillion (contract read 2026-09-07); the 09-01 page reports 231.76 trillion in exchange wallets = 23.2% of supply, plus 301.8bn in custody — consistent with the "about 23% self-held" figure, and it confirms that last period's "18 addresses hold 2.31 trillion" was an order-of-magnitude slip (2.31/1000 = 0.23%, off by 100×), now withdrawn. ⚠ The 23.2% is self-reported; the holding addresses are still not in this report's TRX cold-wallet list and the per-address on-chain check is not done. Not listed on Binance/OKX, daily volume on the five listing venues $0–50k; no perpetuals on nine venues Tron JSON-RPC; each venue's market API
7 95,200 BTC-TRC20 redeemed in 2024-09/10, yet HTX's real BTC fell rather than rose HTX monthly snapshots 09-01 → 11-01: BTC-TRC20 −8,522, native BTC −4,762, total BTC 34,611 → 21,327 (−38%); that month's PoR still reported a ratio >100% CSVs in each commit of HTX's GitHub huobiapi/Tool-Node.js-VerifyAddress
8 Page is internally consistent, but less than half is verifiable — and this period one cross-source is missing The 09-01 page reports BTC / ETH ratios of 104% / 102%; the share provably "that coin" on chain is 42.5% / 25.0%. ⚠ The page-vs-GitHub cell-by-cell check cannot be done this period: huobi_por.csv still carries the 08-01 snapshot (HTX pushes it about 11 days after each snapshot — the 08-01 file landed on 08-12), so the 09-01 file is expected around 09-12; last period's four figures did match cell by cell §3 and §5 of this report

Regulatory status (public record; not a reserve-check finding): UK FCDO listed Huobi Global S.A. (alias "HTX (formerly Huobi)") on 2026-05-26, updated 07-07; the EU followed in July, effective 08-23; OFAC has not acted. Source: FCDO sanctions list CSV (primary).

Control group read with the same scripts on the same day

7. Poloniex and BTC-TRC20 (BTCTRON): the Poloniex-linked part of HTX reserves

Poloniex (⚠ public reporting: acquired from Circle in 2019 by an investment group associated with Justin Sun; PoR address list published on GitHub poloniex/tools-nodejs-address-verify, same snapshot block height as HTX):

Item Reading
Nominal reserves (08-01 snapshot) $2.73B
Composition of the $968M "USDT" reserve 94% is sUSDS (Sky savings shares, not USDT)
Composition of the 252k "ETH" reserve 98% is stETH, native ETH 1,142
Single-address concentration 0x176F3DAb…0132 alone holds sUSDS $1.0B + stETH 243k + WBTC 1,690 ≈ $1.72B = 63% of reserves
On-chain reconciliation BTC 16 addresses 10,864 → 10,764 ✅; published TRX addresses 57.8M → 47.3M in a month (−18%, §7.1 per address)
Where the reserves came from (from 2026-05-30) 71,993 stETH, 806M sUSDS and 1,723 WBTC entered Poloniex 9 via the Poloniex-published addresses 0x8fCA4adE… → 0x29065a4C… (Gnosis Safe); the stETH originates from HTX address 0x18709E89… (hops below)

The HTX → Poloniex fund path (direct on-chain read of Blockscout token transfers; verifiable by address in any explorer)

7.1 Poloniex's published TRX addresses: snapshot vs chain, per address (script tools/por_trx_delta.py)

Poloniex's 08-01 snapshot lists 7 TRX addresses (plus 1 sTRX address, which is the TUgSg… among them). Few enough to list one by one; the table is script-generated and can be re-run.

Address Snapshot TRX Available Own stake Delegated / unstaking Total Change sTRX now (snapshot) Sent out after snapshot (≥1M)
TWhDfwC8QE… 0.52M 0.26M 0.00M 0.00M 0.26M -49% 0.00M (0M) —
TUgSgCQL6p… 36.87M 6.87M 5.95M 24.05M 36.87M +0% 39.23M (50M) —
TSzSgxRisS… 20.39M 10.16M 0.00M 0.00M 10.16M -50% 0.00M (0M) TWhDfwC8… 11.4M
TECmrmwPAj… 0.00M 0.00M 0.00M 0.00M 0.00M +0% 0.00M (0M) —
TVNPqyt6h3… 0.00M 0.00M 0.00M 0.00M 0.00M +0% 0.00M (0M) —
TSmgqvsfx9… 0.00M 0.00M 0.00M 0.00M 0.00M +0% 0.00M (0M) —
TV7WmJXhYy… 0.00M 0.00M 0.00M 0.00M 0.00M +0% 0.00M (0M) —
Total 57.78M 47.30M -18% 39.23M

How to read

7.2 BTC-TRC20 (BTCTRON): contract, holders and collateral

BTCTRON is the "BTC" Poloniex issued on Tron in 2020; HTX's PoR books it as BTC-TRC20 inside its BTC reserves. Contract TN3W4H6rK2ce4vX9YnFQHwKENnHjoxb3m9 (tronscan). Everything in the table is an on-chain read.

Item On-chain reading
Contract type Tether-style: issue / redeem / addBlackList / destroyBlackFunds; owner is an unlabelled address
Supply and holders 17,545; HTX 6 holds 10,299 (58.7%) + JustLend jBTC market 6,563 (37.4%) = 96%; Poloniex itself holds 28
Mint history Minted 114,000 / redeemed 96,090 / blacklist-burned 364 (closes); the 89,000 minted in 2022 went straight into JustLend the same day, not to user withdrawals
Collateral All 12,617 BTC in Poloniex's PoR already correspond to its own 12,603 user liability; no line is marked as BTCTRON reserve; the 16 BTC addresses carry no signature; when 95,200 were redeemed in 2024-09/10, none of Poloniex's 15 cold addresses showed an outflow ≥1,000 BTC and HTX's native BTC did not rise
2022-08-21 The day 60,000 were minted, the two deposit addresses borrowed 400M + 600M USDC from JustLend jUSDC and sent it to a Poloniex signing address; 95% of the jUSDC pool was supplied by hubs affiliated with the borrower; repaid 2023-07
Current credit line The JustLend oracle prices BTCTRON at full real-BTC price ($76.8k), collateral factor 0.75; one address has 5,000 registered as collateral, borrow 0, borrowable ≈$290M; jUSDT pool cash $68M; another address borrows $16.2M jUSDT against 200 + sTRX

The above records what we could not find on Poloniex\'s published addresses and PoR page: no asset marked as BTCTRON reserve. Collateral may exist in undisclosed addresses; on-chain search cannot rule that out.

8. Realisability of affiliated tokens: reserve holdings ÷ 30-day average daily volume (measured 2026-09-14; red = affiliated share >30% or staked share >50%, the §2/§10 rules)

In §2 every exchange's "affiliated token" enters reserves at market price. This section asks the same question of each: if it had to be sold, how much can the market absorb per day? Uniform reading: the reserve holding of the token divided by the average daily volume over the last 30 complete days (single-day volume swings widely; the 30-day average is steadier), giving the days needed to sell it all at that pace. Volume is given on two bases: major venues = the spot pair's daily klines summed across whichever of Binance, OKX, Bybit, KuCoin, Gate, Bitget, Kraken, HTX, MEXC and Bitfinex list the pair (primary; venue count in the table); market-wide = the token's volume across all listed venues as recorded by CoinGecko (⚠ third party, venues not individually checked). Days are computed on the major-venue basis; the market-wide figure is reference only, because its bulk usually comes from venues outside the major ten (see reading). ±2% depth (dollar amount fillable at once) is listed for reference. Script tools/affiliated_liquidity.py, readings in data/affiliated_liquidity_2026-09-14.json; holdings follow the §2 reads of 09-14 (reserves × affiliated share); HTX's TRX is this report's direct on-chain read, the HTX token carries last week's figure marked ⚠.

Exchange Token Share Reserve holding Major-venue 30-day avg daily volume (venues) CoinGecko market-wide 30-day avg (⚠) ±2% depth (major venues) Holding ÷ major-venue 30-day avg (days to sell all)
Binance BNB 16% $27.1B $168.3M (8 venues) $1,023.3M $23.6M ≈161 days
Bitfinex LEO 32% $6.2B $0.2M (2 venues) $0.3M $0.08M ≈31,000 days
Gate GT 15% $1.07B $0.9M (1 venue) $2.3M $0.08M ≈1,190 days
KuCoin KCS 15% $0.50B $5.3M (2 venues) $12.8M $0.03M ≈94 days
Bitget BGB 8% $0.46B $9.6M (2 venues) $10.4M $0.53M ≈48 days
HTX TRX 47.5% (self-reported basis) $3.30B (own 18-address direct read 9.75B tokens × $0.338; 69% staked) $71.7M (10 venues; HTX-own 30d avg $14.25M) $405.6M $16.71M (10 venues) ≈46 days
HTX HTX token 6.1% (self-reported basis) $0.39B (09-01 self-reported 232.06T tokens × $1.68e-6) $30.2M (6 venues; only HTX has volume) $34.2M $0.40M (6 venues) ≈13 days

How to read

9. Reproduce

pip install curl_cffi
python3 tools/cex_reserves_verify.py --chain all                                    # all three chains
python3 tools/cex_reserves_verify.py --chain eth --ex okx --retry-failed data/cex_reserves_2026-09-21.json
python3 tools/cex_reserves_verify.py --refresh-addresses                            # re-pull official address lists
python3 tools/beacon_validators.py 0x3262f13a39efaca789ae58390441c9ed76bc658a 0xf666814c2ae92ca0e06667f80dac1eb8a97e48ae 0x5c95a672e34b3252482ed9a215f2926d2887845d 0x88a4df73aac310484c60c4c0ac4904cab938c20b   # count Beacon-chain validators by withdrawal address (§3.2 Bitstamp)
python3 tools/por_fetch.py                                                          # official PoR self-reported figures (§3.1 last column; Binance needs a manually saved page, data/por_manual.json)

Known pitfalls (handled in the scripts): public nodes silently truncate batched eth_call; Tron eth_getBalance excludes staked TRX, use getaccount; trongrid's free tier is 3 rps and silently degrades if pushed; Blockscout has no price for platform tokens, so KCS/GT/BGB are read directly on chain.

10. Monitoring indicators (one set, read per exchange)

The six indicators below are read the same way for every exchange, with the same trigger rules; readings are from the 2026-09-03 snapshot. "—" = not applicable to that exchange (no custody column, no native staking token, no affiliated asset).

Indicator Reading Trigger Binance OKX Bitget Gate HTX Poloniex
Third-party custody share of reserves Custody column on official PoR page >10% 0.9% 2.6% — — 18.1% —
Own wallets only ÷ user liabilities Official PoR page <100% 100.9% 103.0% ≥100% (USDT exactly 100%) 127% 86.5% ≥100%
Stablecoin balance on published addresses --chain tron/eth (official list) main trading stablecoin < 1% of liabilities USDT 1,248M (Tron) + 28.7B (ETH) 261M + 7.75B 242M + 569M 75M + 372M 1.9M (Tron) + 0 (ETH), plus stUSDT 39.6M 3.9M + 23M
Native-token staked share trongrid getaccount >50% 0% 0% 0% 0% 69% 0% (sTRX counted separately)
Single-address share of reserves Direct read per chain >50% <10% <10% <10% <10% 32% (largest TRX address, ⚠ estimate) 63%
Affiliated asset pledged for borrowing in a lending protocol JustLend borrowBalance goes from 0 to non-zero — — — — BTCTRON collateral address: 0 (line ≈$290M) same (issuer)
Main-channel withdrawal status Each venue's currencies API any prohibited normal normal normal normal normal normal

Source grades


Disclaimer

This page is a compilation and cross-check of public data. It is not investment advice and makes no claim about any institution's solvency. All liability-side figures are self-reported by the exchanges and cannot be verified by this report. Every statement here is limited to publicly verifiable data; not finding an asset on the published addresses does not mean the asset does not exist.