In order to answer the above question, we need archive data and we need lots of it. There's no point getting daily averages for crypto-currencies because of their historical volatility.
To resolve the problem of volatility, Chainometry contains archive data for each asset pair at an update interval of one minute. This is the smallest update interval available for download on the exchanges and gives rise to a large number of records (around 250 million records for each year of trading). Using this data gives the most accurate valuation for each asset at the point in time required.
Chainometry uses archive data from several main exchanges which allow for downloading of price data via their API (it would not be practical trying to cover all of them and many do not expose their data publicly). Data from these exchanges cover price information for most crypto-currency assets on the market.