In all walks of life, especially in crypto, success is often quiet, while failure is loud and clear. Steady growth in underlying technologies rarely makes headlines, but dramatic market crashes flood our newsfeeds. Such is the case with Ethereum, which has undergone a series of major upgrades over the past few years that core developers hope will bring the network closer to its vision of supporting more than 1 billion users. Upgrades like 2021’s EIP-1559 revolutionized the economics of user transaction fees, while an even more impactful upgrade a year later, The Merge, involved the successful hot-swapping of the Ethereum consensus mechanism, which is the The most important structure of the workshop. While these upgrades have long been viewed with skepticism, today it is undeniable that the revamped Ethereum system of 2024 is, simply put, working. In fact, some may even take the scale of these changes for granted.
There is no free lunch in public blockchain development, and it is important to draw attention to the ongoing narrative: the Ethereum system being upgraded today is also a more complex system. This has many important implications, not least answering fundamental questions about the system itself. Four years ago, an innocuous question got the entire crypto research community into a heated debate: “What is the supply of Ether?” It turns out that question was, and is, not so easy to answer.
Thankfully, we’ve recently completed a significant amount of work to confidently answer this question. In keeping with Coin Metrics’ commitment to thoroughly analyzing blockchain networks under the guiding principles of trustless verification, we wanted to review our internal efforts to ensure the accuracy of our Ethereum supply metrics. In this week’s State of the Network, we’ll discuss the complexity of Ethereum’s monetary policy as a multi-blockchain system and share our approach to more accurately track ETH supply and issuance.
Where is ETH?
Despite many skeptics, some would say that, against all odds, Ethereum has succeeded in becoming a modular, multi-layered system. Ethereum today has undergone the most ambitious economic and consensus changes of any network to date. As a result of these changes, Ethereum’s native currency, Ether (ETH), now exists in two different systems that must be carefully evaluated: the “Execution Layer” and the “Consensus Layer” (aka the “Beacon Chain”). The integration of these two layers is where the name “The Merge” comes from.
We have spent a lot of time understanding the complexity of these systems, especially when it comes to tracking the supply and issuance of ETH. We believe that the results of this analysis are the most thorough answer yet to the seemingly simple question of “what is the total supply of ETH?”
Source: Coin Metrics
As of January 20, 2024 UTC, the total supply of ETH is 120,179,693.24908.
However, the on-chain journey we took to get to this answer turned out to be quite interesting. First, in order to understand and measure Ethereum’s new monetary policy, it was necessary to run two different node clients — the software required to validate and participate in the network.
Imagine this task is similar to taking a census in two busy large cities on a border. Residents not only move within each city, but also back and forth between the two cities. To get the right population numbers, you need to account for residents who cross the border, while also making sure you don't double-count anyone who may have moved.
The same is true for tracking ETH’s supply: if you don’t account for ETH moving from one town (the “consensus layer”) to another (the “execution layer”) and vice versa, you’ll inevitably get the wrong number. This is the challenge data providers face when trying to assess ETH’s supply. With the asset now moving from one layer to another, we find that current estimates of ETH’s supply end up either overestimating or underestimating the amount of ETH outstanding. To be sure, most estimates are in the same ballpark, but don’t match up exactly, as each blockchain observer has to devise their own methodology.
The following diagram helps show the flow of ETH in today's modular Ethereum system. Validators stake ETH by sending it to a deposit contract on the Execution Layer (EL). This staked ETH is then represented on the Consensus Layer (CL), where rewards for securing Ethereum and proving new blocks are also distributed. Finally, after the "Shapella" upgrade last April, validators can choose to unstake and/or claim rewards by withdrawing ETH back to EL.
Source: Upgrading Ethereum, by Ben Edgington
A key aspect of the modular system described above is that it requires careful monitoring to ensure that ETH is not counted twice after being withdrawn (note that in the image, there is no minus sign on the deposit contract). Recalling our census analogy, it is as if a resident of City A moved to City B, and after some time returned to City A, but now has two addresses recorded in City A's directory: one for the original address and one for the new address. If not handled properly, this situation can lead to "double counting" in population statistics.
The chart below shows how this plays out on-chain. The red line represents the supply in the deposit/beacon contract on EL, while the green line represents the total ETH seen on CL. Notice how the red and green lines match up before withdrawals are activated (blue). But now 9M ETH has been unstaked, and some of it has been recycled back into the deposit contract. So while the total balance in the deposit contract is 37M ETH, the total ETH staked on CL (by adding up the balances of all validators, excluding rewards) is only 28M.
Source: Coin Metrics Network Data Pro
Ethereum researcher Ben Edgington concluded in his Upgrading Ethereum:
“The balance of the deposit contract is ‘up’ only when a validator exits and re-stakes. When a validator exits and re-stakes, the balance of the deposit contract increases by 32 ETH, while everything else remains essentially the same. If this happens 3.2 million times, the balance of the deposit contract will exceed the total amount of ether that has ever been in circulation, which is approximately 120 million ETH. This is not significant, but is just to emphasize that the balance of the deposit contract should be considered burned and treated as zero when calculating the total supply of Ethereum.”
Given that the keys to the deposit contract are inaccessible, we agree that the ETH in the contract should be considered burned. However, it is important to note that there is no a priori reason or indication that this contract should be treated any differently than any other contract when syncing an Ethereum node.
Therefore, if one were to apply the basic rule of simply calculating all accounts on the ledger (our exact definition of current supply) without this specific context, they would end up with a significantly higher number. The chart below shows our adjusted ETH supply formula (red), and the value we get when adding up all accounts on the ledger (green), which are increasing in value due to the increase in withdrawal frequency mentioned above.
Source: Coin Metrics
But with the above context, we can finally lay out the steps we take today in finding the total supply of ETH.
1. Add up all accounts on the execution layer
2. Add up the balances of all validators on the consensus layer
3. Beacon contract minus the execution layer (consider it “burned”)
4. Subtract the cumulative deposits recorded on the consensus layer from the deposit contract (this is a secondary consideration to account for any deposited ETH that is currently “transferred” between EL and CL due to protocol defined wait times)
While other sites such as Ultra Sound Money have taken a similar approach, it’s worth noting that consensus is not currently available. Ideally, there would be a remote procedure call (RPC) endpoint or method for this purpose, but to our knowledge, one does not currently exist. At Coin Metrics, we have even developed a custom Ethereum exporter, highlighting our commitment as an analytics provider. We have carefully developed a common data model (ATLAS) and custom node patches to accurately map all ETH transfers and balance updates on both the execution and consensus layers. This approach ensures accurate double-entry accounting, while the multiple Ethereum clients we use internally (such as Geth and Erigon) provide redundancy and additional assurance for our approach.
But who will count?
While to some, focusing on a decimal here or there may seem overly detailed, or the beacon contract’s “up-only” balance to be a matter of aesthetics, we believe that the ease of finding the total supply really gets to the heart of cryptocurrency’s raison d’être. The seemingly simple counting exercise has many implications that get to the heart of public blockchain development and highlight cultural and technical differences between different blockchains.
First, from a technical perspective, it is worth noting that each Ethereum block contains a state root - a cryptographic hash of the entire "state" of Ethereum, including all account balances - which ensures consensus on the ETH balance of any given account. Simply put, any difference in account balances between two different nodes will cause consensus to fail. However, this does not necessarily guarantee the prevention or detection of any abnormal ETH issuance.
Furthermore, as a fundamental metric, supply has many downstream effects on other important metrics. Accurately measuring supply is essential when calculating any measure of wealth dispersion and ownership concentration - the size of the denominator will inevitably affect the results. Without the correct context, an uninformed observer could be misled into believing that the 37 million ETH locked in the deposit contract (the single account with the largest ETH balance to date) is owned by an individual, leading to a misconception of ETH wealth concentration.
Supply also plays a crucial role in determining an asset's market cap and index creation. An inflated total supply figure could lead to an inflated market cap and weight of ETH in a value-weighted index. However, it is certain that market participants care not only about total supply, but also about the liquidity supply available in the market. With this in mind, Coin Metrics launched a free float supply metric in 2020 that better describes the liquidity of crypto assets.
This measure takes into account ETH that is illiquid (untouched for more than 5 years) and provably lost. For example, due to a bug in the Parity smart contract wallet, about 500K ETH is lost forever, and another 250K ETH crowdsale participants lost their private keys. Taking into account all our adjustments, our free float supply is reduced by about 13M ETH compared to the total supply.
Source: Coin Metrics
Finally, this exercise perfectly introduces the trade-off space between complexity and transparency, and experimentation and stability, between different blockchain ecosystems. The most transparent is Bitcoin, which tends to make it easy to audit the supply. For example, using the gettxoutsetinfo command in Bitcoim Core (the main client of Bitcoin) quickly returns the sum of all unspent transaction outputs (utxo) in a simple JSON format. The command summarizes all valid balances visible in each block to provide a clear number for the total supply of Bitcoin. As of Bitcoin block 827533, the total supply of Bitcoin is 19,609,367.994873.
ChainQuery
Meanwhile, Ethereum’s approach — reminiscent of Silicon Valley’s rapid innovation — tends to focus its efforts on an ambitious development roadmap. While Ethereum has a strong culture, with regular core developer calls to shed light on the latest updates and future Ethereum Improvement Proposals (EIPs), the rapid pace of the ecosystem doesn’t leave much room to focus on things like improving supply auditability. However, as more and more people in the Ethereum ecosystem view ETH as “sound money,” the ability to independently verify things arguably becomes more important.
But this isn’t just a Bitcoin vs Ethereum issue. As our past work on node auditability has shown, there are many other networks that rely on much stronger experimental tradeoffs. For example, auditing the Solana blockchain from genesis is an extremely difficult task that has only been accomplished by a handful of people using institutional-grade hardware.
Future: eth_getSupply?
If cryptocurrencies are to offer a more transparent alternative to the ambiguities of the traditional financial system, we can be sure that fundamental metrics like supply should be easy to find and agree upon. We hope this research will shed light on the complexity of the issue and spark new conversations within the Ethereum community, encouraging client teams to consider this thoughtfully.
Thankfully, we believe there are many reasons to be optimistic about the future. As an open source project supported by a global network of core developers and researchers, Ethereum has accomplished extraordinary things. It should not be forgotten that these contributors are solving complex economic and technical challenges in real-world distributed systems that protect billions of dollars of value. The community is also very accessible, and we have already had constructive conversations with some members of the Ethereum ecosystem about supply audits.
It bears repeating that the supply of Ethereum is not uncertain, rather, there is simply a lack of consensus on the exact approach. Overall, Ethereum is strong, with a range of stable, easy-to-sync clients, some of which can even run on consumer-grade hardware. Additionally, the state of encrypted data, especially in the Ethereum ecosystem, is currently experiencing a renaissance. With the introduction of blockchain data tools like Cryo, the future looks promising for improvement. These tools have emerged as a way for the community to unify on a common approach. The Ethereum community is known for its rich and vibrant culture around on-chain data, which bodes well for future developments. The task is doable, it just requires the community to do what thousands of independent Ethereum nodes around the world do every day: reach consensus.