Cost Basis Methods
The cost basis method you choose determines how the platform matches disposals (sells, swaps) to prior acquisitions (buys, receives) when calculating capital gains and losses. BlockchainAnalysis.io supports four methods: FIFO, LIFO, WAC, and Specific Identification.
Your choice of cost basis method can significantly impact your tax liability. Some jurisdictions mandate a specific method; others allow you to choose. Consult a qualified tax professional before selecting a method, and apply it consistently throughout the tax year.
FIFO — First In, First Out
FIFO assumes that the oldest tokens you acquired are disposed of first. When you sell or swap a token, the cost basis is pulled from the earliest acquisition lot that still has remaining quantity.
How It Works
- Every acquisition (buy, receive, yield, airdrop) is recorded chronologically with its cost basis per unit and date.
- When you dispose of tokens, the platform matches the disposal against the oldest available lot.
- If the disposal quantity exceeds the oldest lot, the remainder is matched against the next-oldest lot, and so on.
Example
| Date | Action | Amount | Price per ETH | |---|---|---|---| | Jan 15 | Buy | 2.0 ETH | $1,500 | | Mar 20 | Buy | 1.0 ETH | $2,000 | | Jun 10 | Sell | 1.5 ETH | $2,500 |
Under FIFO, the 1.5 ETH sold on Jun 10 uses the Jan 15 lot (oldest):
- Cost basis: 1.5 x $1,500 = $2,250
- Proceeds: 1.5 x $2,500 = $3,750
- Capital gain: $1,500
Remaining inventory: 0.5 ETH at $1,500 + 1.0 ETH at $2,000.
When to Use FIFO
- Required or accepted in the US (IRS default), many EU countries, and Canada.
- In a rising market, FIFO tends to produce higher gains (because the oldest, cheapest lots are used first).
- In a falling market, FIFO tends to produce lower gains (because the oldest, more expensive lots are used first).
LIFO — Last In, First Out
LIFO assumes that the most recently acquired tokens are disposed of first. When you sell or swap a token, the cost basis is pulled from the newest acquisition lot.
How It Works
- Acquisitions are recorded the same way as FIFO.
- When you dispose of tokens, the platform matches the disposal against the most recent available lot.
- If the disposal quantity exceeds the newest lot, the remainder is matched against the next-newest lot.
Example
Using the same transactions as above:
| Date | Action | Amount | Price per ETH | |---|---|---|---| | Jan 15 | Buy | 2.0 ETH | $1,500 | | Mar 20 | Buy | 1.0 ETH | $2,000 | | Jun 10 | Sell | 1.5 ETH | $2,500 |
Under LIFO, the 1.5 ETH sold on Jun 10 uses the Mar 20 lot first (newest):
- 1.0 ETH at $2,000 cost basis = $2,000
- 0.5 ETH at $1,500 cost basis (from Jan 15 lot) = $750
- Total cost basis: $2,750
- Proceeds: 1.5 x $2,500 = $3,750
- Capital gain: $1,000
Remaining inventory: 1.5 ETH at $1,500.
When to Use LIFO
- LIFO is not accepted in many jurisdictions (not permitted by HMRC in the UK, not standard under IFRS).
- In the US, LIFO is permitted by the IRS but must be applied consistently.
- In a rising market, LIFO tends to produce lower gains (because the newest, most expensive lots are used first).
LIFO is restricted or prohibited in several jurisdictions. Verify with a tax professional that LIFO is permissible in your jurisdiction before selecting it.
WAC — Weighted Average Cost
WAC calculates a single average cost per unit across all holdings of the same token. Every time you acquire more tokens, the average cost is recalculated. When you dispose of tokens, the cost basis per unit is the current weighted average.
How It Works
- All holdings of a given token are pooled into a single lot.
- The average cost is: Total cost of all acquisitions / Total quantity held.
- Each new acquisition updates the average. Each disposal uses the current average as cost basis.
Example
| Date | Action | Amount | Price per ETH | Pool After | |---|---|---|---|---| | Jan 15 | Buy | 2.0 ETH | $1,500 | 2.0 ETH @ avg $1,500 | | Mar 20 | Buy | 1.0 ETH | $2,000 | 3.0 ETH @ avg $1,667 | | Jun 10 | Sell | 1.5 ETH | $2,500 | 1.5 ETH @ avg $1,667 |
Average cost after Mar 20: ($3,000 + $2,000) / 3.0 = $1,667 per ETH
On Jun 10:
- Cost basis: 1.5 x $1,667 = $2,500
- Proceeds: 1.5 x $2,500 = $3,750
- Capital gain: $1,250
When to Use WAC
- Required in the UK (HMRC Section 104 holding pool rule) and Australia (ATO).
- Accepted in many EU jurisdictions.
- WAC simplifies record-keeping because you do not need to track individual lots.
- WAC produces gains/losses that fall between FIFO and LIFO in most scenarios.
Specific Identification
Specific Identification allows you to choose exactly which lot is used as the cost basis for each disposal. This provides the most control over your tax outcome but requires precise record-keeping.
How It Works
- Each acquisition lot is individually tracked with its date, quantity, and cost basis.
- When you dispose of tokens, you (or the platform) select which specific lot(s) to match against the disposal.
- The selected lot's cost basis is used to compute the gain or loss.
When to Use Specific Identification
- Permitted by the IRS in the US, provided you can adequately identify the specific units disposed of.
- Allows tax optimization — you can select high-cost-basis lots to minimize gains, or low-cost-basis lots to realize gains when advantageous.
- Requires documentation proving which lot was selected at the time of disposal.
When using Specific Identification in BlockchainAnalysis.io, the platform allows you to manually assign lots or use an optimization algorithm that selects lots to minimize your tax liability for the year. The optimization algorithm considers both short-term/long-term holding periods and cost basis amounts.
Method Comparison Summary
| Method | Lot Matching | Tax Impact (Rising Market) | Complexity | Jurisdictions | |---|---|---|---|---| | FIFO | Oldest first | Higher gains | Low | US, EU, Canada, most jurisdictions | | LIFO | Newest first | Lower gains | Low | US (with restrictions), limited | | WAC | Average pool | Moderate gains | Low | UK, Australia, many EU countries | | Specific ID | User-selected | Optimizable | High | US (with documentation) |
Regulatory Requirements by Jurisdiction
| Jurisdiction | Accepted Methods | Default/Recommended | |---|---|---| | United States (IRS) | FIFO, LIFO, Specific Identification | FIFO (default if not specified) | | United Kingdom (HMRC) | WAC (Section 104 pool), same-day rule, 30-day rule | WAC (mandatory) | | Australia (ATO) | WAC, Specific Identification | WAC (most common) | | Germany | FIFO | FIFO (mandatory) | | Canada (CRA) | WAC | WAC (recommended by CRA) | | France | WAC | WAC (mandatory for crypto) | | Switzerland | FIFO, WAC | FIFO (most common) | | Singapore | FIFO, WAC, Specific Identification | No mandated default |
BlockchainAnalysis.io allows you to generate reports using any supported method, regardless of your jurisdiction. It is your responsibility (or your tax advisor's) to ensure you use the method required or permitted by your local tax authority.
Configuring Your Cost Basis Method
To set your cost basis method:
- Navigate to Tax > Settings in the dashboard.
- Select your preferred cost basis method from the dropdown.
- The selected method applies to all tax reports (CEX, DeFi, and Comprehensive) for the selected tax year.
- You can generate reports with different methods to compare outcomes before filing, but you must file using one method consistently.
Next Steps
- CEX Tax Report — Tax reporting for centralized exchange activity.
- DeFi Tax Report — Tax reporting for on-chain DeFi activity.
- Comprehensive Tax Report — Combined CEX + DeFi report.