How much ETH sits in MPC wallets?

Snapshot 2026-10-29 · execution block ~26.30M · supply 122,172,606 ETH
17.1%
of all ETH, best estimate
20.9M ETH of 122.2M
90% interval 8.2% – 33.3%
Cannot be MPC (contracts, contract/BLS staking)
21.6%
Coinbase-controlled ETH
14.2M
Binance-controlled ETH
7.9M
Range if both are / aren't MPC
10% – 27%

An MPC (multi-party computation, or threshold-signature) wallet signs with an ECDSA key that is never assembled in one place. On-chain it looks exactly like any other address, so this estimate combines a full on-chain inventory of who holds ETH with sourced research on how each holder secures its keys. The result rests mainly on two facts neither company publishes: whether Coinbase custody and whether Binance sign with MPC.

What decides the answer

Each dot is the estimate with one assumption forced and everything else at its best guess. The shaded band is the 90% interval from the Monte Carlo.

Neither Coinbase nor Binance uses MPC
10.4%
Binance does not use MPC
13.0%
Coinbase does not use MPC
14.4%
Best estimate
17.1%
Binance fully MPC
19.3%
Coinbase fully MPC
25.2%
Both fully MPC
27.4%

Where the ETH is

Every ETH of supply is assigned to exactly one group. The blue part of each bar is the ETH estimated to be in MPC wallets at the best-guess assumptions; together they sum to the headline.

In MPC wallets (best guess)Not MPC
Unattributed large wallets (≥100 ETH)31.3M ETH · 25.6%
MPC at best guess: 3.9M (12%)
Cannot be MPC: smart contracts and contract/BLS staking credentials26.4M ETH · 21.6%
MPC impossible by construction
Other identified exchanges, custodians, funds and treasuries20.5M ETH · 16.7%
MPC at best guess: 6.0M (29%)
Coinbase: exchange, Prime/Custody vaults, ETFs, US government14.2M ETH · 11.6%
MPC at best guess: 3.5M (25%)
Small addresses (<100 ETH)11.3M ETH · 9.3%
MPC at best guess: 0.2M (2%)
Unattributed staking, by size and age cohort10.7M ETH · 8.7%
MPC at best guess: 2.3M (21%)
Binance: proof-of-reserves wallets and staking7.9M ETH · 6.4%
MPC at best guess: 5.0M (64%)
Show as table
GroupETH% supplyMPC ETH (best guess)MPC share
Unattributed large wallets (≥100 ETH)31,270,14825.6%3,908,46512.5%
Cannot be MPC: smart contracts and contract/BLS staking credentials26,430,81221.6%00.0%
Other identified exchanges, custodians, funds and treasuries20,457,51016.7%6,020,71729.4%
Coinbase: exchange, Prime/Custody vaults, ETFs, US government14,165,85211.6%3,489,14524.6%
Small addresses (<100 ETH)11,327,5949.3%226,5522.0%
Unattributed staking, by size and age cohort10,667,1638.7%2,257,75221.2%
Binance: proof-of-reserves wallets and staking7,854,0376.4%5,022,57563.9%

What counts as an MPC wallet

How it was measured

  1. Supply. 122,172,606 ETH from execution-layer balances + validator balances − processed deposits (ultrasound.money supply parts, cross-checked against the deposit contract).
  2. Staking. All 2.39M validators and pending deposits (45.5M ETH) grouped by withdrawal credential; every one of the 31,104 withdrawal addresses classified with eth_getCode. 17.3M staked ETH withdraws to contracts or BLS keys, so it cannot be MPC.
  3. Large holders. All 43,250 addresses with ≥100 ETH (85% of execution-layer ETH) from Blockscout, classified as wallet, EIP-7702 wallet or contract.
  4. Attribution. 218k free address labels (exchange proof-of-reserves lists, Etherscan scrapes, Dune, DefiLlama, OLI, on-chain staking registries); 30 days of MEV-relay data linking validators to fee recipients; 207k decoded deposit transactions; transaction-history profiles; and custody-platform fingerprints. The last include a Coinbase Prime gas funder that tops up 29,983 custody vaults holding 4.26M ETH.
  5. Key-management research. For each exchange, custodian, ETF, treasury company and wallet provider: SEC filings, security docs and engineering posts, with quotes and dates.
  6. Estimate. Each entity or cohort gets a low / best-guess / high MPC share. A Monte Carlo (split-uniform per assumption, Gaussian copula with correlation 0.5) gives the interval; with fully independent errors the 90% interval is 15.0%–24.8%, and with fully correlated errors it is 5.4%–38.4%.

Largest sources of uncertainty

AssumptionETHSwing (low→high)
Coinbase Prime7,588,7735.6 pts
Unlabeled wallets with ≥100 ETH, not yet profiled19,087,9354.4 pts
Binance7,487,1534.3 pts
Large unlabeled wallets first used 2019 or later9,731,4913.2 pts
Unattributed staking ≥10k ETH per credential, started 2025+5,515,6192.5 pts
Coinbase2,885,5522.1 pts
Wallets linked to Bitfinex2,833,5021.4 pts
Wallets linked to Coinbase Prime1,852,0681.4 pts

Key evidence

All assumptions (MPC share per entity or cohort, with basis)
Entity / cohortLowBestHighBasis
Staking that withdraws to a contract0%0%0%Withdrawal credential is a contract (Lido vault, EigenPods, Safes, etc.); not an MPC wallet by definition
Staking with BLS (0x00) credentials0%0%0%0x00 BLS withdrawal credential; not an ECDSA wallet
Smart contracts0%0%0%EL ETH held by a contract (WETH, bridges, Safes, DeFi); not an MPC wallet by definition
Binance25%65%95%Probably in-house TSS; only evidence is a 2020 paper on its cold-wallet TSS and Binance's own tss-lib (2019)
Coinbase0%25%90%Conflicting: FY2025 10-K says approvers 'decrypt a private key' for hot and cold wallets; head of cryptography says cb-mpc derives from 'the MPC engine used at Coinbase to protect asset keys'
Coinbase Exchange0%25%90%Same as Coinbase
Coinbase Prime0%25%90%Coinbase Custody Trust. Against MPC: Grayscale 2026 10-K says shards 'must be combined to reconstitute the private key'. For: Coinbase head of cryptography statements (research/onchain_fingerprints.md §3)
Kraken10%35%70%Hybrid; no primary disclosure of the split
OKX0%10%40%Cold storage = AES-encrypted single keys decrypted offline (OKX docs)
Upbit0%20%60%Unknown in-house
Bitfinex0%20%60%'Multisignature' via HSMs over a single ECDSA address; likely HSM/encrypted single key
Robinhood60%90%100%10-K: 'multi-party computation and hardware security' from an unnamed vendor; its Bitstamp unit uses BitGo multisig
Bybit20%60%95%Post-Feb-2025 'MPC model' plus HSMs; split undisclosed
Gate10%35%80%Hybrid
Crypto.com20%50%90%Hybrid
Deribit30%55%85%Fireblocks hot wallets; cold at Coinbase Prime
Gemini0%15%50%HSM-based cold storage
Bitget20%50%90%MPC for platform wallets (partial)
KuCoin0%30%80%Unknown
HTX0%15%60%Unknown
Bithumb0%20%70%Unknown
MEXC0%30%80%Unknown
Bitstamp5%15%50%BitGo multisig
Bitpanda0%10%40%HSM/encrypted single key
Bitvavo25%50%80%Fireblocks (at least hot)
Bitso40%70%95%MPC/TSS
Korbit0%20%70%Unknown
Coinone0%20%70%Unknown
BingX0%20%70%Unknown
WhiteBIT0%20%70%Unknown
Anchorage0%2%10%Air-gapped HSMs; Grayscale filing: shards 'combined to reconstitute the private key'
BitGo10%25%50%WalletSimple contract multisig (appears as contracts) vs TSS EOAs; EOA share skews TSS
Copper85%95%100%MPC (in-house)
Fireblocks75%90%100%MPC-CMP
BitGo TSS95%100%100%Forwarder parent is an EOA = BitGo TSS wallet (fingerprint, high confidence)
Utila90%100%100%MPC (Utila 7702 executor fingerprint)
Dfns90%100%100%MPC
Ceffu80%95%100%MPC (in-house)
Cobo60%85%100%MPC (in-house)
Paxos0%5%20%HSM
Fidelity Digital Assets0%0%10%HSM
Bitcoin Suisse0%20%70%Unknown
Default for unresearched etf0%25%90%~90% of US ETF ETH at Coinbase Custody Trust (sharded keys reconstituted); remainder Anchorage/BitGo/Gemini/BNY
BitMine0%25%85%Custodian undisclosed; filings say 'regulated custodians' and 'multisignature keys'; the one known wallet is a BitGo multisig contract
SharpLink0%1%10%Anchorage + Coinbase
Bit Digital20%45%70%Cactus Custody + Fireblocks
Default for unresearched exchange10%40%80%Unresearched exchange: Fireblocks is common among mid-size exchanges, but in-house HSM/encrypted keys are also common
Default for unresearched custodian10%40%80%Unresearched custodian
Default for unresearched treasury company0%25%70%Unresearched treasury company
Default for unresearched fund mm20%50%80%Market makers/funds: Fireblocks/Copper/Cordial MPC widespread (B2C2, GSR, Jump) but not universal
Default for unresearched staking provider10%30%60%Withdrawal EOAs of provider clients; institutional clients often on Fireblocks/Copper
Default for unresearched staking pool0%5%20%Protocol-operated addresses
Default for unresearched government0%15%60%US seized assets custodied at Coinbase Prime
Default for unresearched individual0%2%10%Individuals: hardware/software wallets; retail MPC (Zengo, Binance keyless) is ~0.1-0.2M ETH in total
Default for unresearched foundation0%5%30%EF uses Safe multisig; others vary
Default for unresearched defi0%5%20%EOAs tied to protocols/teams
Default for unresearched bridge0%5%20%EOAs tied to bridges
Default for unresearched other0%3%15%Exploiters, lost keys (QuadrigaCX, Rain Lohmus), scam addresses, misc
Default for unresearched unknown5%25%60%Labeled by Blockscout tag only, type not normalized; mostly exchanges
Wallets first used before 2019, dormant since 20200%0%2%First tx before 2019 and no outgoing tx since 2020: predates commercial MPC custody
Wallets first used before 2019, still active0%5%15%First tx before 2019 but still active; an MPC migration would normally mean a new address
Large unlabeled wallets first used 2019 or later5%20%45%Large (>=~1.8k ETH) unlabeled EOAs first used 2019+: institutional cold storage, funds, whales
Unlabeled wallets with ≥100 ETH, not yet profiled2%10%30%100 ETH to ~1.8k ETH unlabeled EOAs, not profiled: whales, funds, smaller custody vaults
Addresses holding less than 100 ETH0%2%5%Addresses <100 ETH: retail wallets, exchange deposit addresses (some Fireblocks-derived), retail MPC wallets
Unattributed staking ≥10k ETH per credential, started 2025+5%25%60%Unattributed credentials >=10k ETH first activated 2025+: dominated by BitMine (5.2M staked) and staking ETFs
Unattributed staking ≥10k ETH per credential, before 20255%25%55%Unattributed credentials >=10k ETH from before 2025: institutions, exchanges
Unattributed staking 1k–10k ETH per credential5%20%45%1k-10k ETH credentials: funds, institutional clients of Figment/Kiln/etc. (often via Fireblocks/Copper)
Unattributed staking under 1k ETH per credential (mostly solo)0%5%15%<1k ETH credentials: mostly solo/home stakers

Caveats

Data and reproduction

The model is two scripts over these files: attribute.py assigns every ETH to an entity or cohort, and estimate.py applies mpc_shares.csv. To test a different belief, change a row in that file and rerun. The full step-by-step trail is in LOG.md.