← Back to Nah Crypto Tax Tracker

How to keep a FIFO record of pump.fun trades in a spreadsheet (same-day flips without OVERSOLD errors)

Not tax advice. Every number, token and signature below is EXAMPLE data. This is about record-keeping only: how to write trades down so a FIFO sheet can match them. It does not say whether or how any of it is taxed where you live. For that, ask a tax advisor.

Nah is not affiliated with, endorsed by or sponsored by Pump.fun, Solscan, Phantom or Solana; names only describe where data comes from. Crypto assets are volatile; you can lose some or all of your money. Sources checked 21 October 2026; details may change.

Pump.fun trading means many small trades, often in the same token on the same day. This walkthrough uses a simple layout: one row per Buy or Sell with date, token, quantity, price per token, fee and transaction signature. The rules below keep it consistent for a FIFO sheet.

Step 1: List your wallets (one workbook per wallet if needed)

List every address you traded from (main, burners) with a short label. A FIFO sheet that runs over the whole file uses one queue per token across all rows. If you need separate records per wallet, keep one workbook copy per wallet. Which approach you need is a question for your tax advisor.

Step 2: Every pump.fun trade is a swap, so it takes two rows

A pump.fun buy gives SOL and receives a token; a sell is the reverse. Each swap becomes one Sell row plus one Buy row, same date, same signature:

Give both rows the same total value (quantity × price) in one currency for the whole file, and note your price source. SOL is a token in your ledger too: every SOL you spend needs an earlier SOL Buy row.

Step 3: Same day? Order the rows the way they happened

If your sheet stores dates without times, FIFO goes by date, then by row order. So:

Otherwise the sheet sees a sale of tokens you didn't hold yet; a good template flags it OVERSOLD.

Step 4: A worked EXAMPLE

On 2026-03-01 you buy 2 SOL at 150. On 2026-03-05 you buy a launch token and sell most of it the same day:

Date Type Token Qty Price Fee Tx Notes
2026-03-01 Buy SOL 2 150 0 EXAMPLE-sig-1 SOL bought earlier
2026-03-05 Buy MEME-EX 2,000,000 0.00004 0.40 EXAMPLE-sig-2 token received
2026-03-05 Sell SOL 0.5 160 0 EXAMPLE-sig-2 SOL given
2026-03-05 Buy SOL 0.75 160 0 EXAMPLE-sig-3 SOL received
2026-03-05 Sell MEME-EX 1,500,000 0.00008 0.40 EXAMPLE-sig-3 token given

The MEME-EX lot costs 80.40 (80 plus fee). Selling 1,500,000 gives proceeds of 119.60 against a FIFO cost of 60.30: realized 59.30. The 0.5 SOL shows 80 against a cost of 75 (+5). Realized in total: 64.30. 500,000 MEME-EX stay open; every row says OK.

Move the MEME-EX Sell row above its Buy row (same date) and it turns OVERSOLD: same trades, different order.

Step 5: Fees in one column, once

Use one fee column in your price currency. Enter each swap's combined fee once, on the token's row (as in the example), and do it the same way all year. For a fee paid in SOL, enter its value and note the SOL amount. How fees are treated is a question for your tax advisor.

Step 6: What does not go in as a trade

Step 7: Year-end checks

  1. Export per wallet. Solscan's website export returns only the latest 1,000 records, so export busy wallets in date slices (Solscan).
  2. Check every swap signature has two rows.
  3. Fix every OVERSOLD row first; usually a Buy is missing or misplaced. Tokens that rugged or can't be sold need the same care: log rugged or unsellable memecoins without inventing a Sell row.
  4. Check yearly totals add up to the all-rows total.

Related guides

A ready-made option

If you'd rather not build it: the Nah Crypto Tax Tracker is an .xlsx plus PDF guide with this layout (Buy/Sell rows, swaps as Sell + Buy, one fiat Fee column, FIFO by date then row order, OVERSOLD flag, per-year Summary 2024–2030). No wallet sync or automatic import. 29 USDC one-time: Nah Crypto Tax Tracker. Not tax advice; check your figures with a tax advisor.