Koinly will first of all try to determine the market price using data available on your transaction. For ex. if you bought 1 BTC for 1000 USD then Koinly will set 1000 USD as the market price. The market price or value of "received" coins is always shown on the right side of a transaction:
If you bought the BTC in a different fiat currency ex. 1 BTC for 1000 GBP then Koinly will convert the GBP to USD (or your base currency) using Forex rates for the day of the transaction (more info below). Koinly has Forex rates for every commonly used fiat currency including EUR, GBP, DKK, NOK etc.
Market prices for cryptocurrencies
For other transactions such as a crypto withdrawal or a trade between two cryptocurrencies, Koinly will use market data from price aggregators like CoinMarketCap, CoinGecko and CryptoCompare. For popular currencies all prices come from CMC and for lesser known currencies we fall back to other data aggregators. Rates are fetched multiple times an hour via the API provided by these services.
Koinly can also fetch market rates directly from certain exchanges like Coinbase and Uphold if you are syncing via API.
Market prices for fiat currencies
If your base currency is different from USD then Koinly will apply additional rate conversions to determine the market value of USD in your base currency on the date of the transaction.
The price source for the conversion of USD to Base currency (ex. EUR, DKK, GBP etc) comes from sources such as the European Central Bank. The rates are synced once a day.
Overriding the market price for transactions
If you feel that the market price of some coin is higher/lower than what you paid for it, you can also override Koinly's prices by editing the transaction: