I have a spreadsheet to track exactly this -- it's actually quite straightforward. By regulation, you are required to compute a crypto1-to-crypto2 trade as a crypto1-to-USD followed by a USD-to-crypto2.
So if you're buying NEO with BTC, you log two trades: a SELL of BTC (to USD), and a BUY of NEO (with USD.)
It's also important to match each of your sale orders with prior buy orders (for calculating taxable profit/loss.)
I haven't used this product and I'm not vouching for it in any way, but it looks like a solid thing, and I intend to use it this year to figure out how much I owe for my trades.
It appears to have grown since I looked at it last, for $20 you get the ability to import as many transactions as you want from CoinBase, GDAX, and ~15 or so others, and you get your answer in a form that TurboTax can include in your returns.
Last time I looked, I think that it supported CoinBase but not GDAX. (So it appears to have grown since then.) I don't know how much I trust a tax service for $20, but I think I trust it further than I can throw a spreadsheet that I created and populated with trade information by hand...
So if you're buying NEO with BTC, you log two trades: a SELL of BTC (to USD), and a BUY of NEO (with USD.)
It's also important to match each of your sale orders with prior buy orders (for calculating taxable profit/loss.)