I can tell TaxTwitter is confused about crypto basis determinations. The rules are confusing and a lot of the putative news floating around is wrong (as usual).
This thread summarizes the current state of play in 7 short posts. Post 7 provides the carefree option that I personally use.
1. THE GENERAL RULE. The rule for basis tracking for fungible assets like crypto has always been that, when you sell, you need to either "specifically identify" which lot you're selling, or otherwise default to being treated as selling in the order you acquired the assets. So if, e.g., you hold both high-basis and low-basis IBM stock with JPM, and decide to sell some (but not all) of your IBM stock, either (a) you need to specifically identify to JPM which lot you're selling (usually the high-basis lot) or (b) otherwise JPM will send you a 1099 reporting under a "first in, first out" (FIFO) method.
2. ACCOUNT BY ACCOUNT REPORTING. The tax rules require the conventions described in #1 above to apply "account-by-account." It's not entirely clear what that means for self-custodied crypto, but for CEX-custodied crypto it means that, beginning 1/1/2025, if you sell low-basis eth from Coinbase, you can't pretend it was really high-basis ETH from Kraken.
3. HOMELESS BASIS. The consequence of requiring account-by-account basis tracking is that many taxpayers who were using a "universal account" method (i.e. treating all their crypto as if it was held in a single account) now have homeless basis. For example, if, in 2024, you sold low-basis ETH out of Coinbase but you pretended it was high-basis ETH out of Kraken, you now have homeless basis (the actual basis for the Coinbase ETH you sold).
4. TRANSITION. Revenue Procedure 2024-28 provides "safe harbors" for allocating homeless basis among your remaining crypto (e.g., your Kraken ETH, your self-custodied ETH, and your remaining Coinbase ETH after the Coinbase ETH sale described in #5).
Broadly, there are two options for allocating homeless basis: (a) allocate to specific lots (specific unit allocation) or (2) adopt a ruleset prescribing the manner by which unused basis is ordered and allocated to unsold crypto (global allocation).
Specific unit allocation must be done by the earlier of (i) the first disposition after 2024 and (ii) the due date (including extensions) for the taxpayer’s 2024 tax return. Global allocation must be done by January 1, 2025.
5. ADEQUATE ID. Beginning 1/1/2025, for a taxpayer to be able to specifically identify sales out of a CEX, the CEX needs to confirm for the taxpayer that their specific ID method "adequately identifies" the applicable lot. The problem is, many CEXes haven't yet determined what they consider to be adequate identification. E.g., we haven't yet received an email from Coinbase saying how to specifically ID crypto sold through Coinbase. So, Notice 2025-7 says that, for the 2025 year, taxpayers can continue to specifically identify crypto lots sold through a CEX on their own books and records, and the IRS will respect that spec ID.
6. CAVEAT. However, the administrative grace provided in #5 doesn't change any of the other rules. So if you sold through a CEX, you still need to worry about transitioning your homeless basis now. And if you fail to spec ID (at least on your books and records), you still default to FIFO.
7. CAREFREE OPTION. Here's what I do. I believe this lets me specifically identify the crypto I sell without having to worry about the safe harbors discussed above.
(a) I onboard through a CEX but never sell through a CEX. Instead, when the purchase clears, I transfer to self-custody.
(b) If I ever want to cash out, I first swap (through self-custody) to a stablecoin, then transfer the stablecoin to a CEX and cash out through the CEX.
In the below-linked post, I explain why self-custodied crypto doesn't seem to require an account-by-account method for spec ID. Assuming I'm right, I have no homeless basis to rehome. I also don't have to worry about adequate ID with a CEX because I sell only stables from a CEX.