If you're holding Bitcoin on a corporate balance sheet, sooner or later someone — your accountant, the IRS, an acquirer doing diligence — is going to ask: what is your cost basis? The answer matters because it drives realized P&L, tax exposure, and how a transaction is reported.
FIFO — First-In, First-Out — is the most common method, and the default assumption in most jurisdictions absent a specific election. Here's how it actually works once you have more than one wallet.
The basic idea
Under FIFO, when you dispose of (sell, send out, or otherwise realize) Bitcoin, you're treated as having disposed of the oldest units you acquired. If you bought 0.5 BTC in March at $60,000 and another 0.5 BTC in October at $90,000, and then send 0.3 BTC in December, the cost basis of that 0.3 BTC is $60,000/BTC — the March lot.
The realized gain or loss is the difference between the disposal price (in the functional currency, usually USD) and the basis. Easy.
Where it stops being easy
Multiple wallets
FIFO is applied at the entity level, not the wallet level. The IRS doesn't care which wallet a coin came from — they care which lot the company is treated as disposing of. That means if your operations wallet sends 0.1 BTC to pay a vendor, but the oldest lot lives in your cold-storage wallet, you may still be drawing from the cold-storage lot for accounting purposes.
This trips people up constantly. The wallet-level mental model ("the coin I sent came from this wallet") doesn't match the accounting model ("the lot I'm treated as disposing of came from that acquisition").
Transfers vs. dispositions
Moving Bitcoin between your own wallets is not a disposition. The cost basis travels with the coin. But if your tooling treats every outbound transaction as a sale, you'll over-report realized gains and pay phantom tax. The system has to know which addresses belong to you.
Lightning
Lightning channels add a layer. A channel open is a transfer (no realization). A channel close that pays out the original deposit isn't a disposition either. But payments routed through the channel — inbound and outbound — are economic events that need to be matched to acquisitions and disposals on the underlying balance.
Mining and staking
Mined Bitcoin establishes basis at the fair market value when it's earned. That's the acquisition cost for FIFO purposes — not zero. Miners who don't track this systematically end up with a basis problem at year-end that's painful to reconstruct.
What "doing it right" looks like
A clean FIFO implementation does five things:
- Tracks every acquisition with date, quantity, and USD price at the time of acquisition. Buys, mining rewards, payments received, airdrops — all of it.
- Identifies internal transfers so they don't trigger phantom dispositions.
- Maintains a single FIFO queue across wallets, not per-wallet queues that diverge.
- Recomputes deterministically when you add a missed wallet or correct an error — no ad-hoc adjustments that drift over time.
- Exports lot detail so your accountant can see the math, not just the totals.
Other methods, briefly
FIFO isn't the only option. Some companies elect specific identification (HIFO, LIFO, or actual lot ID) where local rules permit — usually to optimize tax outcomes by realizing higher-cost lots first. The mechanics are the same; only the queue ordering differs. The same five requirements above apply.
The point isn't which method you pick. The point is that whatever you pick, you can defend it with deterministic lot-level data.
The audit-trail problem
Most cost-basis disasters we see don't come from picking the wrong method. They come from incomplete data: a wallet someone forgot to add, a Lightning node nobody connected, a mining pool that paid out to a fresh address every week. FIFO computed on incomplete data isn't FIFO. It's a guess.
Which is why getting the connection layer right — every wallet, every venue, every node, before you start computing anything — matters more than the method you choose.
Flash tracks FIFO cost basis automatically across every connected wallet and exchange. See how Treasury works or start free.