The coins and tokens created with cryptocurrencies are curious things. We shouldn’t really call them currencies because they do far more than exchange value. They aren’t quite commodities either, since they aren’t necessarily consumable or interchangeable. And neither are they properties or equities, since they don’t generate ongoing investment cash flow.
Rather, “cryptoassets” are an entirely new asset class, and this raises an open question: how do we value them?
In this post, I’ll propose an answer. I’ll also walk through the intuition behind it from the ground up, stepping through these components:
- The Equation of Exchange, which offers an underlying framework.
- Velocity, which shows how the timing of everything makes all the difference.
- Holding, which digs into the quantities people use versus keep.
- Total Value, which gets to the nature of competition and what drives the value.
In the end is a formula, but I think it is more than that. Understanding the valuation of cryptoassets helps show the transformational impact they might have.
First, a Disclaimer
This is not investment advice. This is solely intended for informational purposes.
Many of the ideas here can be attributed to or were inspired by prior works, in particular these, which I recommend reading further:
The Equation of Exchange
Most current approaches to cryptoasset valuation start with the Equation of Exchange. It’s a short formula, MV = PQ, that describes how the amount of money in circulation relates to how that money gets used. Here is what each variable means:
The right side of the equation, PQ, is like the “demand” for the money. It totals up all the activity for which the money is used. The left side is like the “supply” and represents the amount of money in circulation that is used for all of that activity.
Example with Dollars
To show the equation in practice, let’s use an example with dollars.
Let’s say there’s a mini economy with just you, me, and 10 total dollars in circulation. Then let’s say you buy a book from me for $5. Then I buy a book from you for $5. And we do this back and forth a total of 6 times, each time paying each other $5 for a book. In this case, we have an average price (P) of $5 multiplied by a quantity (Q) of 6 books to get 5 * 6 = 30 total dollars spent. With the 10 dollars in circulation, each dollar gets used an average of 30 / 10 = 3 times, so the velocity is 3.
In equation terms, M (10) × V (3) = P (5) × Q (6)
Example with “Things”
The formal definition of this equation refers to money. However, it describes a rule about the use and reuse of things that can apply more broadly. With a few tweaks we can abstract it to explain any supply of “Things”:
This generalized version helps more clearly show the idea of “demand” on the right and “supply” on the left. The right side, PQ, totals up all the ways in which Things are used — that is, all the activity, or demand, for Things. The left side, MV, describes how many Things are available for those activities, and thus how often they must be reused to meet all of that demand.
Example with Stamps
With a more general version of this equation, we can apply it to something besides money. For example, stamps.
Let’s say we start a small delivery service that creates a total of 20 special stamps. People can use those stamps for deliveries through our service, with one stamp per delivery. And then let’s say that every week, 5 people show up to make deliveries for 52 weeks. So, that’s 5 * 52 = 260 total deliveries (and thus 260 total stamp uses) over the course of a year. That’s our PQ, the total activity for the stamps. With only 20 stamps in circulation, that means we have a V of 260 / 20 = 13 times each stamp is used.
In equation terms, M (20) × V (13) = P (1) × Q (260)
We can take this one step further and add a price per stamp. Let’s say the going rate for this kind of delivery is $4. This means that if we try to sell stamps for more than $4, people will go elsewhere. And if we charge less, then too many people will show up, allowing us to charge more. So if we say the market forces of supply and demand level out to a going rate of $4 per delivery, then the price per stamp is $4.
Example with “StampCoins”
Now let’s get interesting and create our own currency. Let’s say we call it “StampCoin” and we create 1,000 coins. We tell everyone that they can only pay for deliveries in StampCoins, so they need to first buy the coins. But here’s the catch: we’re not going to set a price per StampCoin, nor a fixed price (in StampCoins) per delivery. Instead, we’re going to let market forces determine those prices.
How does it play out? Well, the most important thing is that we’ve set the supply — we’re introducing 1,000 coins to the market. We’re selling them all and we’ll take the highest price we can get so long as we effectively get the going rate.
On the demand side, those same 5 people show up to make deliveries. When they do, they’ll buy as many StampCoins as possible so long as the price is low enough. If together they buy all of the coins, then each person will get 1000 / 5 = 200 StampCoins. Let’s also assume each person only ever needs to make one delivery, so there’s no reason to hold on to any extra StampCoins (we’ll get to the idea of holding later). Since the going rate for a delivery is still $4, each person is willing to spend up to $4 for those 200 coins. That sets the value at 4 / 200 = $0.02 per StampCoin. In other words, when the full supply of coins is sold to the full current demand for them, the going rate per delivery translates into a $0.02 price per StampCoin.
Going back to MV = PQ, we have a P of 200 StampCoins per delivery, and the same Q of 260 deliveries. That gives us a PQ of 200 * 260 = 52,000 StampCoin uses. With M of 1000, we get V = 52000 / 1000 = 52 times each StampCoin is used.
In terms of the equation of exchange, M (1000) × V (52) = P (200) × Q (260)
At a high level, this example shows two important points. The first is that all of the circulating coins get used by all of the current demand for them. Coins don’t go unused; if we add extra coins to the circulating supply, then the price per coin will fall until they’re all in use. The second point is that the total value of the coins will equal the underlying value that people get from them. If the coins will be used for something worth $4, then market forces will drive the total value of those coins to $4.
Changing When People Arrive
There’s an important detail I glossed over in the last example: the fact that 5 people show up each week. This timing is critical.
Specifically, what matters is how many people want to use StampCoins at the same time. The level of simultaneous demand is important because all the coins get distributed across that demand. If the same total people show up over the course of the year, but in differently sized groups, we get different results.
We can see that by adjusting the timing in our example. Let’s say 20 people show up once every 4 weeks instead of 5 people each week. We still get 260 total deliveries, but it’s 20 people × 13 periods instead of 5 people × 52 periods. Same deliveries, different timing.
Now the StampCoins get distributed differently. When 20 people show up, they want those same 1,000 StampCoins, so each person gets 1000 / 20 = 50 coins. Since they’re still only willing to pay $4 for those 50 coins, the value per StampCoin becomes 4 / 50 = $0.08. All the StampCoins are still used, just in smaller amounts and with a value that adjusts upward to meet the new demand.
Going back to MV = PQ, we have a P of 50 StampCoins per delivery, and the same Q of 260 deliveries. So PQ is now 50 * 260 = 13,000 StampCoin uses. With M of 1000, we get V = 13000 / 1000 = 13 times each StampCoin is used.
In terms of the equation of exchange, M (1000) × V (13) = P (50) × Q (260)
Velocity as a Function of Timing
What we’re seeing is the timing of demand determines the velocity. Smaller, more frequent groups of people speed up the velocity, whereas larger, less frequent groups slow it down. Intuitively this is because when there are more groups of people that don’t overlap with each other, we can reuse the StampCoins more often.
There are two ways to quantify this. The first is simultaneous demand — how many people on average use the coins at the same time. The second is how long the average interval is between each usage. When there are many consecutive groups of people, both the simultaneous demand and the average time between each usage are small. But if everyone shows up at the same time once a year, the simultaneous demand is literally everyone and the time between each usage is a full year. To quantify these two relationships:
Let’s apply these relationships to our two examples. For both, the total activities (Q) is 260 deliveries and the total time period is 52 weeks. For the first example with 5 people each week, we get a velocity of 260 / 5 = 52 from the left side above and the same value of 52 / 1 = 52 from the right side. And for the second example with 20 people every 4 weeks, we get 260 / 20 = 13 from the left side and the same value of 52 / 4 = 13 from the right.
Applying Queuing Theory
These relationships introduce the idea of the time between activities. If we can estimate that interval, then we can estimate the velocity. Fortunately, there’s a whole field of study from operations management that can help: queuing theory.
Queuing theory is the mathematical study of waiting in lines. Using the rate at which people arrive (λ) and the rate at which a server can provide the service (µ), it offers formulas for how much time someone spends in the system on average. To apply this to velocity, we can treat our StampCoin example as a queue. People show up to use StampCoins for deliveries, and then servers provide a delivery service.
An important input in queuing theory is the number of servers. With limited servers, it’s possible to show up when they’re all busy, forcing you to wait in line. As you add servers, the average waiting time decreases. And at infinite servers, it’s called an “M/M/∞ queue” and queueing theory proves that the waiting time converges to zero. In equation terms, the average time someone spends in an M/M/∞ queue is 1/μ, which equals the service time. For example, when the server rate is 30 per hour (2 minutes per service), the average time someone spends when there are infinite servers is 1/μ = 1 / 30 = 0.033 hrs, or 2 minutes, the service time.
With cryptoassets, we basically have infinite servers since you don’t really need to wait in line to start a crypto transaction. So we’ll use the M/M/∞ queue equations going forward. For velocity, we want the average time between activities, and we now know the average time in the system is the service time, 1/μ. This means that if all the activities were to happen back-to-back — that is, there were zero gaps between them — then the average time between activities would equal the service time. That would give us a velocity of 1 / (1/μ) = μ.
However, we can’t assume we’ll have zero gaps. No matter how high the demand is on average, there’s always some chance that for a moment (or longer), there could be no demand and the system could be idle. That would then increase the average time between activities and decrease the velocity.
We therefore need to refine our velocity equation to account for those gaps when the system is idle. To do that we can subtract the percent idle time from the numerator, total time. Combining that with our μ value above, we get a refined formula:
The last step is estimating the percent idle time. Another way of phrasing this is the probability that zero people are in the system. Conveniently, queuing theory derives this value, π(n), which is defined as the probability that there are n people in the system once reaching a steady state. The mathematical proofs get complex (here’s a good resource), but we can skip to the final M/M/∞ equation:
The percent idle time is when there are zero people, π(0). Plugging in 0 for n, we get:
This is pretty abstract, so let’s apply some real numbers. Let’s say the arrival and server rates are equal, e.g. people show up 10 times per hour and the servers can also serve them 10 times per hour. In this case, the percent idle time is e^-(10/10) = 0.368, or 36.8%. This means that when the arrival and server rates are equal, with infinite servers, the whole system is expected to be idle 36.8% of the time. If the arrival rate is double the server rate, than the idle time is e^-2 = 0.135, or 13.5%. And at triple the server rate, we get e^-3 = 0.050, or 5.0%. As the arrival rate increases relative to the server rate, the percent idle time converges toward zero.
With this last piece we can update our velocity equation. In this context, the arrival rate, λ, is the number of activities per year, Q. Putting it all together, we get this equation:
Back to StampCoins
To see our new equation in practice, let’s go back to our StampCoin example. We still have 260 total deliveries, but this time let’s say the timing is random over the course of the year (which the above equation assumes). Let’s also assume we now have infinite delivery drivers — meaning no one ever waits in line — and that on average each delivery takes 3 hours.
For comparison purposes, let’s first consider the maximum possible velocity, when the idle time is at a minimum. This happens if none of the deliveries ever overlap, allowing us to reuse all of the StampCoins every time and thereby get a velocity of 260. Out of 24 * 365 = 8,760 total hours per year, we would use the coins for 260 * 3 = 780 hours worth of deliveries. That results in 8760–780 = 7,980 hours of idle time, or a percent idle time of 7980 / 8760 = 91.10%.
That’s for the maximum possible velocity, but we know that deliveries might overlap and thereby decrease the velocity. This is where our new equation comes in. At 3 hours per delivery, our μ is 8760 / 3 = 2,920 potential deliveries one server can do per year. With our Q of 260, we get a percent idle time of e^-(260/2920) = 0.9148, or 91.48%. It’s slightly higher than the minimum possible 91.10%, accounting for the probability of deliveries overlapping. Accordingly, the lower velocity will be 2920 * (1 — e^-(260/2920)) = 248.8.
To see how the numbers change, consider a new example where deliveries take a full day instead of 3 hours. It’s still technically possible to get that 260 velocity, but it’s much less likely because the deliveries would need to line up almost perfectly. There’s a higher probability that deliveries overlap, so the velocity should be lower. Using our equation, our new μ is 365 potential deliveries per year and our new velocity is 365 * (1-e^-(260/365)) = 186.0. As expected, the velocity is much lower, reflecting the higher probability of deliveries overlapping.
Effects of Holding
Throughout these examples, we’ve assumed everyone uses all of their StampCoins once they get them. It’s possible, though, that they’ll hold on to some of them. When they do, that affects the results because it decreases the available supply.
To take into account the idea of holding, we can say that coins being held are not really in use. Let’s say N is the total supply of Things or coins. We can then define our M, the number of them actually being used for activities, as the total minus the percent being held:
To see how this changes the results, consider our StampCoin example where 20 people show up every 4 weeks. With the original supply of 1000 StampCoins, each person used 50 coins and the value per coin was $0.08. Now let’s say that 20% of the coins are being held. Our new M is 1000 * (1–0.2) = 800 coins. Those 800 coins then get distributed among the same 20 people, so they each get 40 coins instead of 50 coins. They’re still willing to pay up to $4 for their coins, so the value becomes 4 / 40 = $0.10 per StampCoin. The value increases from $0.08 to $0.10 due to holding.
Reasons to Hold
To dig into the holding percent, it helps to think about a real life example like regular postal stamps. Generally, we don’t stockpile stamps. We can’t do much with them besides mail letters, so it doesn’t make sense to buy too many extras.
There are two reasons, though, why we might in fact get extras: a) it’s cheaper and easier to do so and b) we think they’ll retain value, like an investment. Understanding the potential value is, of course, the ultimate goal of this analysis. First we need to cover a), why holding might be cheaper and easier.
Consider that even if we don’t stockpile stamps, we might still buy a few extras to keep in a drawer. It doesn’t cost much to leave them there, and it saves us a trip in the future. In other words, holding is easier. Yet we might not buy a whole lifetime’s supply all at once because that could get expensive. It makes sense to save a few trips, but maybe not all future trips. There’s a balance.
Finding the right balance is about minimizing two costs: the cost of going out to get more stamps (the “transfer” cost), and the cost of keeping extras (the “holding cost”). The optimal amount to get at a time will minimize the total of those costs.
Optimal Order Amount
The field of inventory management has a term for this optimal amount. It’s called the economic order quantity (EOQ), and it generally applies to physical items with holding costs like warehousing. In the case of coins and cryptoassets, we don’t really have physical holding costs, but we do have the opportunity cost of keeping that money somewhere else where it can earn interest. So we need a refined version of EOQ that uses the interest rate as the holding cost. This is called the Baumol-Tobin model.
The Baumol-Tobin model derives a formula for how much cash we would want to withdraw at a time — or in our example, how many StampCoins we’d want to buy — given the total amount we want to eventually use. It addresses a similar tradeoff: withdrawing too much upfront loses out on the potential interest, but making many smaller withdrawals comes with additional transfer costs.
The resulting formula for the optimal withdrawal amount is based on the fixed transfer cost, k, the total amount we end up spending, Y, and the interest rate, i:
It’s a bit complex, but we can see what it says at a high level. The transfer cost is in the numerator, so we’ll withdraw more at a time when the cost is higher. This makes sense because we’d want to reduce the number of withdrawals. The interest rate is in the denominator, so we’ll withdraw less when the rate is higher. This also makes sense because we’d want to leave more money wherever it’s earning that higher interest. Together, the formula balances these two forces to get the optimal amount.
Let’s apply it to our StampCoin example, this time assuming we’re a customer who makes 8 deliveries per year. Our Y is $4 * 8 = $32 worth of deliveries. Let’s also assume the transfer cost is $0.50 every time we exchange dollars for StampCoins, and the interest rate we could otherwise earn is 2.00% per year. Plugging in these values, we get sqrt((0.5 * 32) / (2 * 0.02)) = $20. To minimize costs, we’d therefore want to buy $20 worth of StampCoins at a time.
Optimal Holding Percent
Given an optimal amount, we need to translate this into a holding percent. In general terms, the holding percent is the average amount we hold at a time, H, divided by the total of both what we hold and the average amount we spend per activity, y. That gives us the following equation:
To determine the average amount held, consider the above example. We’ll buy $20 worth of StampCoins and use them up. Then we’ll buy another $20 worth, then back to zero, and so on. Our average holding amount will be in the middle, $10 worth, or half our optimal amount. We can therefore divide the Baumol-Tobin equation by 2 and plug it in for H to update our equation:
Now we can apply this equation to the numbers in our example. With our Y of $32 and our y of $4 per delivery, we get a holding percent of 1 − 1 / (1 + sqrt((0.5*32) / (8*0.02*4²))) = 0.71, or 71%. Double checking our math, we hold $10 on average and spend $4 per activity, so we get the same value with 10 / (10+4) = 71%.
Finally, we can plug this into our equation for M to get:
In all of our StampCoin examples so far, we’ve worked with the assumption that the “going rate” per delivery is $4. This is, of course, a pretty important detail. Ultimately many market forces balance out to determine this rate. With cryptoassets, however, the primary driving force is supplier competition. So we can focus on that.
First, consider the effects of competition in general. As a supplier, we’ll charge the highest price we can. Competition then adds an incentive for us to lower the price in order to win over customers. The higher the competition, the more pressure we have to charge less and accept lower margins. That’s especially true when our offerings are similar, leaving price as the main differentiator. As competition increases, the price converges toward the cost. Eventually, with infinite competition, the price will equal the cost.
With cryptoassets, we essentially have infinite competition. This is because it’s easy to introduce alternatives, even exact replicas. The barriers are low for several reasons:
- All of the software is public. To offer an identical alternative, you can literally copy and paste the code.
- All of the data is public (albeit, encrypted). If the fees are too high, the protocol can be forked into a new version where the same users can still use their same addresses and passwords, but pay lower fees.
- There are minimal capital costs to get started. Cryptoassets have built-in financial incentives for other people to run the network, so you don’t need to pay for the computing or hardware costs yourself.
- The friction between options is low. Since cryptoassets are based in code, it’s possible to programmatically interact between them. The process of switching from one to another can therefore be scaled and automated with software, minimizing friction.
- Trust is built into the system. There’s less of a need to develop a new, trusted reputation because the code and network are transparent.
Together, these elements remove the competitive advantages that generally allow businesses to charge a premium. With no proprietary technology or data, plus low costs of entry and switching, there’s little to block new competitors. One missing element from this list is branding — one could argue that well-known cryptoassets might lean on their name recognition to command a higher rate. But with trust already built into the protocol, it’s hard to imagine being able to charge a premium in the long term simply because of your name. Generally, then, there isn’t much stopping a new competitor from entering the market and charging less.
Without any barriers to competition, the competition is essentially infinite. A cryptoasset will face downward pressure on the value until it basically equals the cost of running that cryptoasset.
Going back to MV = PQ, remember that both sides of the equation total up all the uses of Things or coins. The total value of those uses will therefore equal the total cost of them. To express this value in terms of US dollars, we need an exchange rate, A, the dollar value (e.g., price) per Thing. Multiplying both sides by the price, we get A*MV = A*PQ. Both sides now equal the total US dollar value and therefore the total US dollar cost for all of the activities. Replacing the right side with a single variable for this total cost, C, we get a new equation:
When we apply this idea to StampCoins, this cost refers to the cost of making all of the deliveries. That likely includes fuel, vehicles, and labor. We then total up those costs across all of the deliveries in a year to get the value of C. Notably, it doesn’t matter what’s in the delivery package — it could be empty or contain a million dollars, and the delivery cost will still be $4.
Applying this to cryptoassets, let’s say we have a cryptoasset that runs a messaging network. In this case the network’s activities involve delivering and retrieving messages. So the value of C will equal the total computing, electricity, and storage costs for handling all of those messages. It likely includes labor costs as well, reflecting whatever minimal margins are necessary to incentivize developers to keep things running.
With cryptoassets that handle payments, it gets a bit less intuitive. If I treat a cryptoasset like a currency and send you $5 worth of that cryptoasset, how does that $5 factor into the equation? The answer is that the $5 is part of the cost. Let’s say that in general, the computing costs are $0.01 per transaction, where “transaction” loosely refers to any activity on the network. If we’re sending a message, then we only need $0.01 worth of the cryptoasset to do the transaction. But if we’re sending $5 worth of a cryptoasset, we need $5.01 worth to do the transaction.
Intuitively, this goes back to the idea of how much we’re willing to pay for the coins we’ll use for an activity. With StampCoins, were willing to buy up to $4 worth of coins to do a delivery. With messaging, we’re willing to buy up to $0.01 worth of coins to send a message. And with a $5 payment, we’re willing to buy up to $5.01 worth of coins to make that payment. Payments are therefore a special kind of transaction where the content of the package affects its cost. But once we factor in that cost, the rest of the calculation is the same.
Store of Value
This cost-based value is often described as the “utility” value. The utility of a cryptoasset means the services it can perform, like storing data, verifying information, and executing network requests. In other words, doing activities. So our discussion so far has all focused on the value a cryptoasset has because of its utility.
There’s also a second potential source of value, of serving as a “store of value”. A store of value is something we essentially all just agree has value, and that we’re therefore willing to save and exchange with each other. As with gold or art or money, the value doesn’t depend on underlying utility, but rather on our mutual trust that it will keep serving as a store of value. It’s a bit cyclical in that sense — the value comes from our continued agreement that it has value.
Because it relies so much on trust, it’s pretty speculative how much cryptoassets may or may not end up serving as a store of value. I’m unaware of any economic models that point to a good answer. One common approach, though, is to consider what would happen if a cryptoasset were able to match gold as a store of value. To be clear, it’s still anyone’s guess, but I think it’s a reasonable comparison. So let’s walk through this approach.
The calculation itself is straightforward: we take the total value we expect the cryptoasset to store and then divide by the number of coins. For this approach, we want the total value of gold. According to Wikipedia there are 62.5K tonnes of gold in the world excluding utility uses like jewelry and industrial materials. With the recent spot price of about $1,350 per ounce, or 1350 * 35274 = $47.6M per tonne, we get a total of 47.6 * 62.5 = ~$3.0 trillion worth of global gold holdings. Then we divide by the number of coins. For bitcoin, if we use the eventual total supply of 21M, we get 3.0T/21M = ~$140k per bitcoin.
So, it’s high. If cryptoassets serve as a store of value, it could significantly increase valuations. Another more detailed approach also considers how cryptoassets might displace non-gold international reserves; that reaches even higher estimates in the $5-$15T range, versus $3T. But this starts moving into speculation territory rather than economic theory, so I’ll leave it there.
We now have all the pieces. Taking our above equation for total cost, we can solve for the value of a cryptoasset, A, to get A = C / (MV). We can then plug in our equations for M and V from the prior sections to produce one big equation:
One final update is that we can now express y, the average spent per activity, as the total cost divided by the total quantity, so y = C / Q. Substituting this in, we can then rearrange the variables a bit and remove the labels to arrive at our final equation:
Here are the definitions of the input variables:
- C: Total annual cost (in $) of operating the cryptoasset
- i: Risk-free interest rate
- k: Transfer cost (in $) to buy the cryptoasset
- N: Total number of cryptoasset coins or tokens
- Q: Total annual quantity of cryptoasset transactions
- Y: Average total cost (in $) of the annual cryptoasset transactions per user
- μ: Single server rate (which equals the total time divided by the average time per transaction)