How much ETH sits in MPC wallets?
90% interval 8.2% – 33.3%
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.
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.
Show as table
| Group | ETH | % supply | MPC ETH (best guess) | MPC share |
|---|---|---|---|---|
| Unattributed large wallets (≥100 ETH) | 31,270,148 | 25.6% | 3,908,465 | 12.5% |
| Cannot be MPC: smart contracts and contract/BLS staking credentials | 26,430,812 | 21.6% | 0 | 0.0% |
| Other identified exchanges, custodians, funds and treasuries | 20,457,510 | 16.7% | 6,020,717 | 29.4% |
| Coinbase: exchange, Prime/Custody vaults, ETFs, US government | 14,165,852 | 11.6% | 3,489,145 | 24.6% |
| Small addresses (<100 ETH) | 11,327,594 | 9.3% | 226,552 | 2.0% |
| Unattributed staking, by size and age cohort | 10,667,163 | 8.7% | 2,257,752 | 21.2% |
| Binance: proof-of-reserves wallets and staking | 7,854,037 | 6.4% | 5,022,575 | 63.9% |
What counts as an MPC wallet
- Counted: ETH in an ordinary address (EOA, including EIP-7702-delegated EOAs) whose key is held by MPC/TSS, and staked ETH whose validator withdrawal address is such an EOA.
- Not counted: ETH in smart contracts, even if MPC keys control them (e.g. a Safe with MPC signers); staked ETH withdrawing to a contract (Lido, EigenLayer pods, Safes) or with BLS credentials; economic exposure such as stETH held in an MPC wallet.
- Not MPC: Shamir/key-sharding schemes that reassemble the key to sign, HSM custody, and multisig contracts.
How it was measured
- Supply. 122,172,606 ETH from execution-layer balances + validator balances − processed deposits (ultrasound.money supply parts, cross-checked against the deposit contract).
- 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. - Large holders. All 43,250 addresses with ≥100 ETH (85% of execution-layer ETH) from Blockscout, classified as wallet, EIP-7702 wallet or contract.
- 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.
- Key-management research. For each exchange, custodian, ETF, treasury company and wallet provider: SEC filings, security docs and engineering posts, with quotes and dates.
- 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
| Assumption | ETH | Swing (low→high) |
|---|---|---|
| Coinbase Prime | 7,588,773 | 5.6 pts |
| Unlabeled wallets with ≥100 ETH, not yet profiled | 19,087,935 | 4.4 pts |
| Binance | 7,487,153 | 4.3 pts |
| Large unlabeled wallets first used 2019 or later | 9,731,491 | 3.2 pts |
| Unattributed staking ≥10k ETH per credential, started 2025+ | 5,515,619 | 2.5 pts |
| Coinbase | 2,885,552 | 2.1 pts |
| Wallets linked to Bitfinex | 2,833,502 | 1.4 pts |
| Wallets linked to Coinbase Prime | 1,852,068 | 1.4 pts |
Key evidence
- Coinbase Custody Trust (filings describe key shards reconstituted to sign, which is not MPC; Coinbase staff describe MPC): sec.gov (2026-02-25) · sec.gov (2026-09-03) · sec.gov (2026-02-12)
- Coinbase (exchange) (hybrid; 10-K says approvers decrypt a private key; MPC vault rollout announced 2024): sec.gov (2026-02-12) · sec.gov (2026-02-25) · cointelegraph.com (2024-08-08)
- Binance (probably in-house threshold signing; evidence from 2019–2020 only): iacr.org (2020-09 (e) · github.com (2019-10 (a) · decrypt.co (2019-11-06)
- Anchorage (HSM custody, not MPC): docs.anchorage.com (undated, a) · sec.gov (2026-10-05) · sec.gov (2025-09-19)
- BitGo (multisig contracts plus TSS-based MPC wallets; split not disclosed): sec.gov (2026-03-27) · developers.bitgo.com (undated, a) · bitgo.com (2022-late )
- BitMine (custodian not disclosed; filings mention 'regulated custodians' and 'multisignature keys'): sec.gov (2026-10-26) · sec.gov (2026-06-05) · sec.gov (2025-11-21)
All assumptions (MPC share per entity or cohort, with basis)
| Entity / cohort | Low | Best | High | Basis |
|---|---|---|---|---|
| Staking that withdraws to a contract | 0% | 0% | 0% | Withdrawal credential is a contract (Lido vault, EigenPods, Safes, etc.); not an MPC wallet by definition |
| Staking with BLS (0x00) credentials | 0% | 0% | 0% | 0x00 BLS withdrawal credential; not an ECDSA wallet |
| Smart contracts | 0% | 0% | 0% | EL ETH held by a contract (WETH, bridges, Safes, DeFi); not an MPC wallet by definition |
| Binance | 25% | 65% | 95% | Probably in-house TSS; only evidence is a 2020 paper on its cold-wallet TSS and Binance's own tss-lib (2019) |
| Coinbase | 0% | 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 Exchange | 0% | 25% | 90% | Same as Coinbase |
| Coinbase Prime | 0% | 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) |
| Kraken | 10% | 35% | 70% | Hybrid; no primary disclosure of the split |
| OKX | 0% | 10% | 40% | Cold storage = AES-encrypted single keys decrypted offline (OKX docs) |
| Upbit | 0% | 20% | 60% | Unknown in-house |
| Bitfinex | 0% | 20% | 60% | 'Multisignature' via HSMs over a single ECDSA address; likely HSM/encrypted single key |
| Robinhood | 60% | 90% | 100% | 10-K: 'multi-party computation and hardware security' from an unnamed vendor; its Bitstamp unit uses BitGo multisig |
| Bybit | 20% | 60% | 95% | Post-Feb-2025 'MPC model' plus HSMs; split undisclosed |
| Gate | 10% | 35% | 80% | Hybrid |
| Crypto.com | 20% | 50% | 90% | Hybrid |
| Deribit | 30% | 55% | 85% | Fireblocks hot wallets; cold at Coinbase Prime |
| Gemini | 0% | 15% | 50% | HSM-based cold storage |
| Bitget | 20% | 50% | 90% | MPC for platform wallets (partial) |
| KuCoin | 0% | 30% | 80% | Unknown |
| HTX | 0% | 15% | 60% | Unknown |
| Bithumb | 0% | 20% | 70% | Unknown |
| MEXC | 0% | 30% | 80% | Unknown |
| Bitstamp | 5% | 15% | 50% | BitGo multisig |
| Bitpanda | 0% | 10% | 40% | HSM/encrypted single key |
| Bitvavo | 25% | 50% | 80% | Fireblocks (at least hot) |
| Bitso | 40% | 70% | 95% | MPC/TSS |
| Korbit | 0% | 20% | 70% | Unknown |
| Coinone | 0% | 20% | 70% | Unknown |
| BingX | 0% | 20% | 70% | Unknown |
| WhiteBIT | 0% | 20% | 70% | Unknown |
| Anchorage | 0% | 2% | 10% | Air-gapped HSMs; Grayscale filing: shards 'combined to reconstitute the private key' |
| BitGo | 10% | 25% | 50% | WalletSimple contract multisig (appears as contracts) vs TSS EOAs; EOA share skews TSS |
| Copper | 85% | 95% | 100% | MPC (in-house) |
| Fireblocks | 75% | 90% | 100% | MPC-CMP |
| BitGo TSS | 95% | 100% | 100% | Forwarder parent is an EOA = BitGo TSS wallet (fingerprint, high confidence) |
| Utila | 90% | 100% | 100% | MPC (Utila 7702 executor fingerprint) |
| Dfns | 90% | 100% | 100% | MPC |
| Ceffu | 80% | 95% | 100% | MPC (in-house) |
| Cobo | 60% | 85% | 100% | MPC (in-house) |
| Paxos | 0% | 5% | 20% | HSM |
| Fidelity Digital Assets | 0% | 0% | 10% | HSM |
| Bitcoin Suisse | 0% | 20% | 70% | Unknown |
| Default for unresearched etf | 0% | 25% | 90% | ~90% of US ETF ETH at Coinbase Custody Trust (sharded keys reconstituted); remainder Anchorage/BitGo/Gemini/BNY |
| BitMine | 0% | 25% | 85% | Custodian undisclosed; filings say 'regulated custodians' and 'multisignature keys'; the one known wallet is a BitGo multisig contract |
| SharpLink | 0% | 1% | 10% | Anchorage + Coinbase |
| Bit Digital | 20% | 45% | 70% | Cactus Custody + Fireblocks |
| Default for unresearched exchange | 10% | 40% | 80% | Unresearched exchange: Fireblocks is common among mid-size exchanges, but in-house HSM/encrypted keys are also common |
| Default for unresearched custodian | 10% | 40% | 80% | Unresearched custodian |
| Default for unresearched treasury company | 0% | 25% | 70% | Unresearched treasury company |
| Default for unresearched fund mm | 20% | 50% | 80% | Market makers/funds: Fireblocks/Copper/Cordial MPC widespread (B2C2, GSR, Jump) but not universal |
| Default for unresearched staking provider | 10% | 30% | 60% | Withdrawal EOAs of provider clients; institutional clients often on Fireblocks/Copper |
| Default for unresearched staking pool | 0% | 5% | 20% | Protocol-operated addresses |
| Default for unresearched government | 0% | 15% | 60% | US seized assets custodied at Coinbase Prime |
| Default for unresearched individual | 0% | 2% | 10% | Individuals: hardware/software wallets; retail MPC (Zengo, Binance keyless) is ~0.1-0.2M ETH in total |
| Default for unresearched foundation | 0% | 5% | 30% | EF uses Safe multisig; others vary |
| Default for unresearched defi | 0% | 5% | 20% | EOAs tied to protocols/teams |
| Default for unresearched bridge | 0% | 5% | 20% | EOAs tied to bridges |
| Default for unresearched other | 0% | 3% | 15% | Exploiters, lost keys (QuadrigaCX, Rain Lohmus), scam addresses, misc |
| Default for unresearched unknown | 5% | 25% | 60% | Labeled by Blockscout tag only, type not normalized; mostly exchanges |
| Wallets first used before 2019, dormant since 2020 | 0% | 0% | 2% | First tx before 2019 and no outgoing tx since 2020: predates commercial MPC custody |
| Wallets first used before 2019, still active | 0% | 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 later | 5% | 20% | 45% | Large (>=~1.8k ETH) unlabeled EOAs first used 2019+: institutional cold storage, funds, whales |
| Unlabeled wallets with ≥100 ETH, not yet profiled | 2% | 10% | 30% | 100 ETH to ~1.8k ETH unlabeled EOAs, not profiled: whales, funds, smaller custody vaults |
| Addresses holding less than 100 ETH | 0% | 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 2025 | 5% | 25% | 55% | Unattributed credentials >=10k ETH from before 2025: institutions, exchanges |
| Unattributed staking 1k–10k ETH per credential | 5% | 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
- Coinbase's own statements conflict. Grayscale's 2026 10-K says Coinbase Custody's key shards are "combined to reconstitute the private key"; Coinbase's head of cryptography says its open-source MPC library comes from the engine used to protect asset keys.
- Binance's threshold-signing evidence dates from 2019–2020.
- About 31M ETH sits in large wallets no free source labels. They are classified by age and activity: wallets created before 2019 and dormant since are treated as almost certainly not MPC.
- Public APIs throttled two jobs: only 782 of the 3,000 largest unlabeled wallets were profiled, and the batch-deposit log scan is partial.
- Balances are a single-day snapshot. Blockscout balances were checked against RPC on a random sample (0.8% aggregate difference).
Data and reproduction
- estimate.json (3 KB): Headline statistics, Monte Carlo, scenarios
- groups.csv (1 KB): Breakdown by group (this page's chart)
- breakdown.csv (4 KB): Breakdown by segment and entity/cohort
- mpc_shares.csv (6 KB): Every judgement input: MPC share low/mid/high with basis
- holdings_attributed.csv (8.5 MB): Every address/credential with its ETH and attribution method
- LOG.md (10 KB): Full investigation log: steps, sources, decisions, how to reproduce
- custody_tech_exchanges_custodians.md (101 KB): Key-management research: exchanges, custodians, ETFs
- custody_tech_treasury_staking_retail.md (41 KB): Key-management research: treasuries, staking, retail wallets
- onchain_fingerprints.md (24 KB): On-chain custody-platform fingerprinting
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.