An important network value to transaction ratio caveat

Print Friendly, PDF & Email

If you’ve been following coinmetrics closely, you might be convinced of the usefulness of our network value to transactions metric (NVT) in determining relative value. However there is an important caveat that must be mentioned.

Change skews transaction estimations

It’s awfully difficult to extract decent transaction volumes from blockchains directly, because Bitcoin (and most cryptoassets) does not maintain balances of users, but rather spent and unspent outputs. If Bob wants to send 9 BTC to Alice but has 10 BTC in his wallet, his entire 10 BTC (acquired in a prior transaction) is recorded as the input for the transaction and 1 BTC is returned to him as change. If both listed addresses are new, there is no way of knowing which is the change address and which the recipient. In this transaction, for instance, both addresses had not been used and there is only one input address, so the change address is unknowable. This is a problem, because in that case, our estimate would be that the entire sum of BTC was transacted rather than the intended sum.

If you compare our numbers for transaction value for bitcoin to those available at, you’ll see that our estimates are larger than theirs by a factor of 5. (Bitinfocharts corroborate our numbers.)

Our estimates of BTC transaction value versus those of

This is, of course, cause for nervousness. There is an explanation for this. also runs a wallet service, so they have access to information about transactions that their users undertake, and they can extrapolate these tendencies to the blockchain at large. Whether their algorithm for estimating change outputs is any good is another matter altogether. They conduct an (obscure) estimation based probably on some heuristics to arrive at a number which they think is representative of the total value of bitcoin transactions on a given day. Returning to this transaction mentioned above, guesses that 0.7695 BTC was in fact sent, rather than 3.72 BTC. This is plausible but not knowable.

This estimation difficulty also explains why there is such poor data for other cryptoassets, since there aren’t many wallet services as sophisticated as which are so committed to releasing that sort of data. Estimating change outputs – when possible – is hard, and much of the time it is entirely impossible. Therefore we made the deliberate decision to aim for a different sort of precision – to eliminate the double-counting of change outputs when they were known, and to include them when it was impossible to tell. This means our transaction value number is guaranteed to be larger than the “true value,” whatever it might be.

To clarify: makes an educated guess about which outputs are change, based on probabilities and the extrapolated tendencies of their wallet users. This is a proprietary algorithm. Our estimation is certainly too large, but we can offer some guarantees, which is nice. We know – under a limited set of conditions – exactly which transactions are change, and can rule them out completely. We make no guesses about unknowable change transactions.

The tradeoff here is therefore: a) a plausible estimate based on guesswork and heuristics or b) a precise yet overly-broad estimate based on falsifiability (removing transactions we absolutely know are change) and nothing else. Undertaking the second strategy allows us to be confident in a few assertions.

  • our NVT figure gives you an absolute lower bound for the ‘true’ ratio
  • we can say with confidence that we exclude visible change transactions, and are deliberately agnostic on unknowable change transactions
  • if change tendencies are similar across cryptoassets, NVT is a reliable means of comparison 

Our code is public on our github, so our method can be examined and critiqued by anyone. If a better open-source method of ruling out change outputs from transactions emerges, we will embrace it.

And since the estimates that use only work for bitcoin, and we’re aiming to find comparable metrics between different cryptoassets, we dispensed with their estimation and scraped various blockchains to find our own numbers. The important thing here is that our transaction values may be elevated, but if they are systematically elevated across different cryptoassets, then our NVT numbers are still comparable, if artificially low.

Since we seek to arm our readers with reliable data, we’re going to issue this caveat as clearly as possible: our NVT indicator, which is dependent on an estimate of transaction volume, is strongly dependent on the assumption that different cryptoassets are roughly comparable in the prevalence of change outputs. 

We currently can’t say confidently whether this is the case or not, but to the best of our knowledge, we are one of the only projects procuring this sort of data and making it freely available. We are aware of the shortcomings of the collection process, and are working to refine it and provide the best possible estimates for our readership.


  1. rightly said.
    It is truely a great way to find overvalued and lowervalued crypto’s. A great investment plan. I’ll keep looking

    1. Hello Resa,

      The tools are Python scripts, you will need Python 2.7 and some Python modules (see list on the Github) installed.
      In order to start collection from, say, Litecoin, first synchronize LTC node with the network (ensure that the node is started with -txindex=1 flag) and assign rpc user, password, and port. Then, proceed to examples folder, update and with LTC credentials and start both server and client.

      The tools are not really production-ready or end user-friendly, so programming skills and familiarity with Python are somewhat necessary to use them.

  2. Hello people there,

    first of all thanks for the great work!

    I was wondering, did you miss XRP in the download link? In the earlier version there is XRP, but now it is gone.

    All the best

    1. We had to remove XRP because we discovered that our methodology was unsound and we were including junk data from transaction volume due to the peculiarities of Ripple. So we have provisionally removed it and we will restore it when we have better data.

  3. I want DataBitcoin 1 minute from 2010 until 2019
    As a momentary data
    How can you help me?
    CSV file.
    Open price high up low
    If necessary, I can make a Per Account account

    1. please email nic [at] coinmetrics [dot] io and I’ll help you get the data you need – we don’t have that available on the website right now but we do service requests

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.