Skip to main content

Import crypto trades from a spreadsheet

Import crypto buys, sells, and swaps into Navexa using a CSV. Learn the exact column format, how pricing works, and what to do for transfers and starting balances.

Updated over 2 weeks ago

This article shows you how to import crypto trading history into Navexa, even if your exchange or broker isn’t supported yet.

Use this template as a starting point:

When to use this method

Use the crypto spreadsheet importer when:

  • Your exchange/broker isn’t currently supported for direct import.

  • You want a quick way to bulk-add spot crypto trades (buys, sells, swaps).

If your exchange is supported, the direct import method is usually faster. If it isn’t, this CSV method gives you full control and gets you to an accurate portfolio sooner.

What the crypto spreadsheet importer supports

Supported transactions

  • Buy (spot)

  • Sell (spot)

  • Swaps (crypto-to-crypto) by using Buy or Sell with a crypto pair (e.g. BTC/ETH, SOL/USDT)

Not supported in the CSV importer

  • Transfer In / Transfer Out (deposits/withdrawals) via CSV

  • Advanced activities (for example, staking rewards, lending interest, airdrops) are not yet supported through the spreadsheet or the Navexa platform.

If you need to reflect transfers, you can add them manually inside the holding after importing (explained below).

Required CSV columns

Your spreadsheet must include these column headers:

  • Market Pair (e.g. BTC/AUD, BTC/ETH)

  • Trade Date

  • Trade Type (Buy or Sell)

  • Amount Received

  • Amount Traded

  • Fee

  • Fee Currency Code (fiat or crypto codes accepted)

  • Notes/Description (optional)

How to fill each field

Market Pair

Format is BASE/QUOTE:

  • BASE = the coin you’re buying/selling (first in the pair)

  • QUOTE = the currency you’re paying/receiving (second in the pair)

Examples:

  • BTC/AUD (BASE = BTC, QUOTE = AUD)

  • SOL/USDT (BASE = SOL, QUOTE = USDT)

  • BTC/ETH (BASE = BTC, QUOTE = ETH)

Trade Type

Use only:

  • Buy

  • Sell

For swaps, you still use Buy or Sell (Navexa will display these as Trade In/Trade Out automatically).

Amount Received and Amount Traded (important)

In the crypto spreadsheet importer:

  • Amount Received = the BASE quantity (how many units of the first asset)

  • Amount Traded = the unit price in the QUOTE currency (price per 1 unit of BASE)

This means Amount Traded is not the total you spent/received.

Example (BTC/AUD buy):

  • You buy 0.10 BTC for 9,500 AUD total

  • Unit price = 9,500 / 0.10 = 95,000 AUD per BTC

  • CSV values:

    • Market Pair: BTC/AUD

    • Trade Type: Buy

    • Amount Received: 0.10

    • Amount Traded: 95,000

If you put 9,500 into Amount Traded, Navexa interprets it as $9,500 per BTC (unit price), not the total.

Fee and Fee Currency Code

  • Fee = fee amount

  • Fee Currency Code = the currency the fee was charged in (AUD, BTC, ETH, USDT, etc.)

Tip: If your fee is charged in a coin you don’t otherwise hold (or don’t have a starting balance for), that coin may show as negative until you add earlier trades/transfers.

How swaps work (crypto-to-crypto)

Buy vs Sell for swaps

For swaps, think in terms of what you receive vs what you spend:

  • Buy BASE/QUOTE = you receive BASE and spend QUOTE

  • Sell BASE/QUOTE = you spend BASE and receive QUOTE

Example (SOL/USDT):

  • Buy SOL/USDT = receive SOL, spend USDT

  • Sell SOL/USDT = spend SOL, receive USDT

What you’ll see in Navexa

After import, Navexa will automatically show:

  • Trade (In) on the coin you received

  • Trade (Out) on the coin you spent

Even though your CSV says Buy/Sell, the UI will correctly label the “in” and “out” side of the swap.

Transfers and starting balances (why errors happen)

Why you may see “Insufficient shares to sell”

Because Transfer In/Out isn’t supported in the CSV importer, Navexa can only build balances from the trades you import.

So if your CSV spends a coin before you ever acquired it (for example, you buy SOL using USDT, but you never added a USDT buy or transfer-in first), you’ll see:

  • Insufficient shares to sell

This is expected and just means the holding needs an earlier balance.

Fix options

Choose one:

  • Option A (recommended for CSV-only): Add earlier Buy trades so the coin exists before it’s spent.

    • Example: add a USDT/AUD Buy before any SOL/USDT trades.

  • Option B (manual): Add a Transfer In inside the holding.

    • Use this when your USDT (or other coin) came from a deposit, not a buy.

How to manually add Transfer In / Transfer Out (when needed)

If you need to add a starting balance for a coin:

  1. Open the holding (e.g. USDT).

  2. Click Add Trade.

  3. Select Transfer In.

  4. Set the Trade Date to before the first time you spend that coin.

  5. Enter the transferred quantity.

  6. Click Add Trade.

You can also add Transfer Out the same way if you want withdrawals reflected.

How to import your CSV

  1. In Navexa, go to Add Holdings.

  2. Choose Import from Spreadsheet.

  3. Choose the Cryptocurrencies.

  4. Upload your CSV, click Next.

  5. Check that the row selected shows the column headers. Then, click Yes to confirm.

  6. In Header Selection, confirm each column is matched correctly. Click Next at the bottom to continue.

  7. In Review, scan for any warnings.

  8. Click Save.

Download the template and example rows

Use this template as a starting point:

What the template demonstrates:

  • BTC/AUD and ETH/AUD buys/sells

  • A BTC/ETH swap (shows as Trade In/Out in the UI)

  • Funding USDT with a USDT/AUD buy before using SOL/USDT swaps

Common issues and quick fixes

My quantities are wildly wrong (e.g. “sold 5,200 BTC”)

Cause: Total value was entered as the quantity.

Fix:

  • Put the coin quantity in Amount Received

  • Put the unit price in Amount Traded

A coin is negative after import

Cause: You spent that coin before acquiring it in your imported history.

Fix:

  • Add earlier buys for that coin, or

  • Manually add Transfer In dated before the spend

My swap shows as Trade In/Trade Out, not Buy/Sell

That’s expected. Navexa is correctly showing both sides of the swap inside each holding.

What we recommend for best results

  • Import your trades from the earliest date you started trading that coin.

  • If you use stablecoins (USDT/USDC), include an earlier funding trade (or add Transfer In manually).

  • Keep fees in their real fee currency where possible.

Download the Crypto Spreadsheet Template here:

Attachment icon
Did this answer your question?