← Back to Nah Crypto Tax Tracker

Logging token swaps paid in SOL vs USDC in one trade sheet (record-keeping only)

Not tax advice. All numbers, tokens and signatures below are EXAMPLE data. This guide covers record-keeping only. How any swap is treated where you live is a question for a tax professional.

Nah is not affiliated with Phantom, Solscan or Solana. Sources checked 21 October 2026.

On Solana you pay for most tokens with SOL or USDC. People often log the token they wanted and forget what they paid with, so the SOL or USDC holding in the sheet drifts away from the wallet. The fix is the same for both: every swap is two rows.

The rule: one swap, two rows, one signature

A swap is logged as one Sell row for the token you gave up plus one Buy row for the token you received. Both rows get the same transaction signature in Tx hash (column G).

That applies to the SOL or USDC side too. Paying with SOL is a Sell row of SOL, and paying with USDC is a Sell row of USDC. When you swap a token back into USDC, the USDC you receive is a Buy row of USDC.

To find both sides, open the transaction. In Phantom, go to History, open the transaction and choose View on Solscan. Phantom's help says the transaction details include the signature, "Token transfers: The assets and amounts moved" and the network fee (Phantom help). For bulk work, Solscan exports CSVs from an account's DeFi Activities tab, which covers indexed activities such as swaps. Each export returns only the latest 1,000 records, so filter by date first (Solscan).

Prices: pick a source, write it down

Each row needs a fiat price per token at the time of the swap. Choose a price source yourself, use it the same way all year, and record it in Notes (column H), for example prices: <source>, 1-min close, UTC.

That includes USDC: enter the price your source shows, not 1.00 out of habit. In the example below it shows 0.9998 once, and the sheet calculates that row like any other Sell.

Fees: once, on the token's row

The rule: enter the combined fee once per swap, on the token's row, in fiat, and do it the same way all year. In the example, the fee sits on the memecoin's row, and the SOL and USDC rows carry 0.

A worked EXAMPLE (recalculated in the workbook)

Date Type Token Qty Price Fee Tx hash Notes
2025-01-10 Buy SOL 2 180 0 sig0a… bought on exchange
2025-01-10 Buy USDC 400 1.00 0 sig0b… bought on exchange
2025-02-01 Buy BONKX 1,000,000 0.0002 0.40 sigA… swap A, paid in SOL
2025-02-01 Sell SOL 1 200 0 sigA… swap A, SOL leg
2025-02-03 Buy WIFX 100 1.50 0.30 sigB… swap B, paid in USDC
2025-02-03 Sell USDC 150 0.9998 0 sigB… swap B, USDC leg
2025-03-15 Sell BONKX 1,000,000 0.0003 0.40 sigC… swap C, into USDC
2025-03-15 Buy USDC 300 1.00 0 sigC… swap C, USDC leg

What the workbook shows:

If the sheet says 550 USDC and the wallet doesn't, a leg is missing.

What a missing leg looks like

Delete the USDC Buy from January, the "where did my USDC come from" row people often skip. The USDC Sell in swap B now has nothing to match against. The workbook flags it OVERSOLD, gives it no cost basis or realized result, and Summary's "Rows needing attention" counter goes to 1. Every SOL or USDC leg needs an earlier Buy of that coin in the sheet.

On the same date, put the Buy row above the Sell that uses it. FIFO in the workbook runs by date and then row order across the whole file.

SOL vs USDC: what's actually different

For the sheet, very little. Both are tokens with their own rows, FIFO queue and holdings line. The SOL leg often shows a visible result on its own (+20.00 in swap A), and the USDC legs usually show small numbers. Both still need rows, prices and a source. How any of these rows is treated is a question for a tax professional; the sheet only keeps the record consistent.

Checklist

Related guides

A ready-made option

If you'd rather not build the sheet yourself, the Nah Crypto Tax Tracker is an .xlsx plus a PDF guide with plain formulas and no macros. It has Buy/Sell rows, Tx hash in G, Notes in H, FIFO by date then row order, an OVERSOLD flag and a per-year Summary. FIFO only; not tailored to any country's tax rules. No wallet sync. 29 USDC one-time: Nah Crypto Tax Tracker. Not tax advice.