← Back to Nah Crypto Tax Tracker
Not tax advice. All numbers, tokens and signatures below are EXAMPLE data. This guide covers record-keeping only. How any of this is treated where you live is a question for a tax professional.
Nah is not affiliated with Solana, Gem Wallet or Phantom. Sources checked 21 October 2026.
Anyone who trades memecoins on Solana has seen it: the swap button spins, the wallet says "failed", you hit retry, and the second attempt goes through. Your explorer history now shows two transactions for one trade. Only one of them belongs in a trade log as Buy and Sell rows.
This guide shows how to spot a failed transaction, what to write down, and what goes wrong in the sheet if you log it as a trade. It is about record-keeping only.
On Solana, the fee is paid even when the transaction fails. The official documentation says the total fee is "Charged whether the transaction succeeds or fails" and that it is "deducted from the fee payer before execution begins" (solana.com). The swap itself doesn't happen. Gem Wallet's help page explains the general pattern: the intended swap "may be rolled back, while the processing fee remains paid to the network" (docs.gemwallet.com).
So a failed swap leaves two traces: a transaction with its own signature, and a small SOL fee. No tokens change hands.
Phantom's help center lists what an explorer shows for each transaction. That includes the signature and "Status: Whether the transaction completed, is pending, or failed", plus the token transfers and the network fee (help.phantom.com). For a failed swap, the status shows failed; check the token transfers to confirm nothing was swapped.
Gem Wallet also notes the case where nothing reached the chain at all. If a wallet or app shows an error before a transaction exists, there is "Usually none" for the public transaction ID and "Normally no blockchain fee". Then there is nothing to record.
In the Nah Crypto Tax Tracker workbook, only Buy and Sell rows exist, and each is meant for an asset that actually moved. A failed swap moved nothing, so:
The successful retry is logged like any swap: a Sell of what you gave and a Buy of what you got, with the retry's signature in Tx hash (G). For fees: enter the combined fee once per swap, on the token's row, in fiat, and do it the same way all year.
We recalculated both versions in the real workbook. All values are EXAMPLE values.
| Date | Type | Token | Qty | Price | Fee | Tx hash |
|---|---|---|---|---|---|---|
| 2025-05-01 | Buy | SOL | 2 | 150.00 | 0 | sig0 |
| 2025-05-10 | Buy | WIFZ | 1,000,000 | 0.00016 | 0.30 | sigS1 |
| 2025-05-10 | Sell | SOL | 1 | 160.00 | 0 | sigS1 |
| 2025-06-01 | Sell | WIFZ | 1,000,000 | 0.0002 | 0.30 | sigS2 |
| 2025-06-01 | Buy | USDC | 200 | 1.00 | 0 | sigS2 |
The failed attempt (sigF1) is only in Notes on the sigS1 row.
Correct version: the SOL Sell shows +10.00 and the WIFZ Sell shows +39.40 (proceeds 199.70, cost 160.30). The 2025 Summary is 49.40 with fees of 0.60. Holdings are SOL 1, WIFZ 0 and USDC 200, and every row is OK.
With the failed attempt also logged as a Buy of WIFZ plus a Sell of SOL under sigF1:
That last point is why failed transactions are worth a deliberate check. The flag catches missing buys, not invented ones. The holdings line is what gives it away, so compare it with your wallet; see reconciling Phantom history with a trade log.
If you build the log from a CSV export, filter out failed transactions before turning rows into trades, and check that a retry hasn't produced two rows with the same quantities a few seconds apart. The signature is the key: one signature, at most one swap's worth of rows. See exporting Solana DEX history to CSV.
If you'd rather not build this yourself, the Nah Crypto Tax Tracker is an .xlsx plus a PDF guide with plain formulas and no macros: Buy/Sell rows, Tx hash in G, Notes in H, FIFO by date then row order, an OVERSOLD flag and a per-year Summary for 2024 to 2030. FIFO only; not tailored to any country's tax rules. 29 USDC one-time: Nah Crypto Tax Tracker. Not tax advice.