HMRC Section 104 Pool: Cost Basis When You Move Crypto Between Platforms

What A Section 104 Pool Is, And Which Crypto Goes In One
The section 104 pool is the UK's answer to a question every crypto holder eventually asks: when you have bought the same coin fifteen times at fifteen different prices and you sell some of it, which purchase did you just sell? In the United States you answer that per lot. In the UK you do not answer it at all, because the law treats your holding of each token as a single merged asset.
HMRC's Cryptoassets Manual states the position directly. Pooling under TCGA92/S104 applies to shares and securities and also to "any other assets where they are of a nature to be dealt in without identifying the particular assets disposed of or acquired". Fungible tokens are dealt in exactly that way, so they are pooled, and the beneficial owner has "a single pooled asset for Capital Gains Tax purposes that will increase or decrease with each acquisition, part disposal or disposal".
Does every token type get its own pool?
Yes. HMRC's own example is a person holding bitcoin, ether and litecoin, who therefore has three pools, each with its own pooled allowable cost. There is no single portfolio-wide pool and no netting between assets. If you hold thirty tokens you maintain thirty running balances, each one a quantity and a pooled cost that move together.
What about NFTs?
NFTs are outside this entirely. HMRC states that non-fungible tokens are separately identifiable and so are not pooled, and no matching rules are applied to them. Each NFT is its own asset with its own acquisition cost, which makes NFT record keeping simpler in principle and much harder in practice, because the acquisition cost is usually denominated in a token whose own pool you also have to value on that date.
What actually sits in the pool
Two numbers, and only two: the quantity of tokens held, and the pooled allowable cost in pounds sterling. Every acquisition adds to both. Every disposal removes tokens and removes a proportionate slice of the pooled cost. GOV.UK's public guidance works the arithmetic: buy 100 token XY at £2 and later 300 at £1, and you hold 400 tokens costing £500, an average of £1.25 each. Sell 200 and the allowable cost is £250.
Notice what the pool does not contain. It does not contain a platform. It does not contain a wallet address. It does not contain a date of acquisition for the tokens still held. Those things matter for evidence and for the matching rules, but the pool itself is blind to where your coins are sitting, and that is the single most important fact in this article.
The Two Rules That Sit In Front Of The Pool
Before a disposal reaches the pool it has to clear two identification rules, borrowed from the share matching regime. GOV.UK puts it plainly: do not pool the cost of tokens you buy on the same day that you sell tokens of the same type, or within 30 days of selling them, and in those cases the rules for working out costs are the same as for shares.
The same day rule
Acquisitions and disposals of the same asset on the same day are each treated as a single transaction, and the disposal is matched against the same-day acquisition first. The Capital Gains Manual sets out the share version at CG51560, the same day rule under TCGA92/S105(1). For an active trader this rule fires constantly, because a day with both buys and sells is an ordinary day.
The 30 day rule
Next, a disposal is matched against acquisitions of the same token in the following 30 days. This is the bed and breakfasting rule, at TCGA92/S106A(5) and (5A), and it exists to stop someone selling at a loss and buying straight back to bank the loss while keeping the position. It matches forward in time, which is what catches people out: a sale in March can be matched against a purchase in April, in the next tax year.
Only what is left reaches the pool
Whatever quantity survives both rules is matched against the section 104 pool. HMRC's pooling examples run through all seven permutations, including the interaction of the same day rule, the 30 day rule and the pool in a single disposal, and the crypto-to-crypto exchange case. If you want one page to send to a client who insists their exchange report is enough, that is the page.
Why these rules get worse after a platform move
The matching rules operate across your whole holding of a token, not per platform. Sell ether on Coinbase and buy ether on Kraken nine days later and the 30 day rule matches them, even though no single platform saw both sides. Neither report will show you that. This is the first place a per-platform view of your year produces a wrong number, and it produces it silently.
What Moving Crypto Between Your Own Platforms Does To The Pool
Almost nothing, and that is the answer most people are looking for. The complication is what the move does to your records, which is a different question with a much longer answer.
Is a transfer between exchanges a disposal?
No, provided you keep beneficial ownership throughout. HMRC is explicit: there is no disposal if the individual retains beneficial ownership of the tokens throughout the transaction, for example moving tokens between public addresses that the individual beneficially controls. Withdrawing bitcoin from one exchange to your own hardware wallet, or on to a second exchange in your own name, is not a taxable event. No gain, no loss, nothing to report on that movement.
What the transfer does change
It changes where the evidence lives. Your pooled cost does not reset, does not transfer and does not belong to the platform, because the pool is an attribute of you as beneficial owner, not of the account. The receiving platform, however, has no idea what you paid. It sees a deposit of 1.4 ETH arriving from nowhere, and when you later sell that ether the platform's own report will show a gain computed from a cost it invented, usually zero or the market value on the day of arrival.
When a "transfer" is actually a disposal
Not every movement is innocent. Sending token A into a contract and receiving token B back is a disposal of A, whatever the interface calls it. HMRC works through this at CRYPTO22110 on transferring tokens between distributed ledgers, where the answer turns on the facts and in particular on whether the transfer is one way. Wrapping, bridging and liquid staking all sit in this space, and they look identical to a plain transfer in an exchange's CSV. The same page notes that using a mixer or similar service to receive back the same type of token is not a disposal, while putting token A in and receiving token B is.
Who Is Responsible For Carrying The Cost Basis Across A Platform Move
You are. Not the sending exchange, not the receiving exchange, not the software. This is the part of the question that the answer engines get vague about, and HMRC does not.
What HMRC says about exchange reports
GOV.UK's guidance on selling cryptoassets says that some exchanges provide reports of your transactions, that these "can be essential for working out how much tax you owe", and then states two limits in consecutive lines: they are not tax calculations, and they will not keep track of your pooled costs. The sentence immediately after is the obligation: "You must keep your own records of your transactions."
There is no provision under which a platform assumes your pooling obligation, and no UK equivalent of the US broker basis transfer statement that moves a cost figure from one custodian to the next. The pool is yours to maintain across every account you hold.
What your exchange's report actually contains
An exchange can only see its own four walls. It knows what you deposited, what you traded on its books and what you withdrew. It does not know what you paid for a coin you deposited, where a withdrawal went, or whether the ether you bought there nine days after selling on another venue triggers the 30 day rule. A per-platform gain figure is therefore an arithmetic answer to a question nobody asked.
What the receiving platform shows you, and why it is wrong
Three failure modes recur, and each one moves the tax in a predictable direction.
| What the receiving platform assumes | What it shows | Effect on your tax |
|---|---|---|
| Deposit has zero cost | Entire sale proceeds as gain | Overstates gain, you overpay |
| Deposit is an acquisition at market value on arrival | Gain measured from the arrival price | Wrong in either direction, and it erases the real holding history |
| Deposit is income | A receipt treated as taxable income | Taxes your own money twice |
The middle row is the common one and the most dangerous, because the number it produces looks reasonable. A pool rebuilt properly across both platforms will usually differ from it by a material amount in either direction, and only the rebuilt figure is the one HMRC's rules produce.
Fees On A Transfer, And Which Ones Enter The Pool
Fees are where a correct pool and an approximate one separate, because they are frequent, small and easy to drop.
Which costs are allowable at all
Section 38 TCGA 1992 governs this, and HMRC's view at CRYPTO22150 on allowable expenses is that allowable costs include the consideration originally paid for the asset, transaction fees paid for having the transaction included on the distributed ledger, advertising for a purchaser or vendor, professional costs to draw up a contract for the acquisition or disposal, and the costs of making a valuation or apportionment needed to calculate the gain. The same page states that costs already deducted against profits for Income Tax are not allowable again for Capital Gains Tax.
Fees paid in tokens
A network fee paid in ether is not just a cost. HMRC's position at CRYPTO22280, fees satisfied in tokens, is that the fee token is disposed of for its market value under TCGA92/S17(1)(b), and its allowable cost is established in the normal way through the same day rule, the 30 day rule or the pool. So one gas payment is simultaneously a cost of the main transaction and a small disposal in its own right, with its own gain or loss.
Across a year of DeFi activity this is not a rounding item. It is hundreds of micro-disposals, each one drawing on a pool balance, and it is the single largest source of the difference between a hand-built spreadsheet and a properly reconstructed book.
Fee treatment at a glance
| Fee | Treatment |
|---|---|
| Network fee to include a transaction on the ledger | Allowable cost under section 38, per CRYPTO22150 |
| That same fee where it is paid in tokens | Also a disposal of the fee tokens at market value, per CRYPTO22280 |
| Exchange trading fee on a buy | Cost of acquisition, enters the pool with the purchase |
| Exchange trading fee on a sell | Incidental cost of disposal, deducted from proceeds |
| Deposit of sterling with an exchange | Sterling is not an asset for CGT, so not allowable, per CRYPTO22150 |
| Mining equipment and electricity | Not deductible against a capital gain |
When A Platform Closes, Or Your History Is Simply Gone
This is the practical crisis behind most UK pool questions. An exchange withdrew from the UK, or failed, or your account was closed and the export window shut, and the acquisitions that fund your pool were on it.
Reconstruct from the chain first
A missing exchange export is not the same as missing data. Every withdrawal from that platform landed at an address you control, and that arrival is on a public ledger with a timestamp, a quantity and a counterparty. Working backwards from your own wallets usually recovers the quantity and date of every movement, which leaves only the acquisition price to establish, and a price at a known timestamp is obtainable from market data.
Bank records carry the fiat leg
GOV.UK's records list includes bank statements for a reason. A sterling payment out of your account to an exchange on a given date, matched to a deposit and a trade on that date, evidences the consideration paid even when the platform's own report is gone. This pairing of bank debits with on-chain arrivals closes most gaps.
When an acquisition genuinely cannot be traced
Then you are making a valuation or apportionment, and the cost of doing so is itself an allowable expense under CRYPTO22150. State the basis you used and keep the working. A defensible, documented reconstruction is a far better position than a nil cost, and a nil cost you could have avoided is simply an overpayment of tax. What is never acceptable is a figure with nothing behind it.
Earlier years
If the reconstruction shows tax was underpaid for years already filed, GOV.UK points to HMRC's Cryptoasset Disclosure Service for disclosing unpaid tax for earlier tax years. The same guidance notes that the Self Assessment return has carried a dedicated cryptoasset section from the 2024 to 2025 tax year onwards, which makes crypto gains visibly separate on the return rather than folded into a general capital gains figure.
Worked Example: One Pool Across Two Platforms
Figures below are illustrative and rounded for clarity. The mechanics are HMRC's, following the pattern of CRYPTO22251, the basic section 104 pool disposal example.
The transactions
- Buy 2 ETH on platform A for £3,000 total.
- Buy 1 ETH on platform A for £2,400 total.
- Withdraw all 3 ETH to platform B. Network fee ignored here for clarity.
- Buy 1 ETH on platform B for £2,600 total.
- Sell 2 ETH on platform B for £7,000.
What each platform reports on its own
Platform A reports two purchases and a withdrawal, and no disposal at all. Platform B sees 3 ETH arrive with no cost attached, one purchase at £2,600, and a sale of 2 ETH for £7,000. If platform B treats the deposit as zero cost and applies first in first out, it reports a gain of £7,000. If it values the deposit at the arrival price it reports something else again. Neither figure is the UK answer.
The pool, maintained correctly
| Event | Quantity | Pooled allowable cost |
|---|---|---|
| Buy 2 ETH, platform A | 2 | £3,000 |
| Buy 1 ETH, platform A | 3 | £5,400 |
| Transfer 3 ETH to platform B | 3 | £5,400, unchanged |
| Buy 1 ETH, platform B | 4 | £8,000 |
| Sell 2 ETH for £7,000 | 2 | £4,000 remains, £4,000 deducted |
The average pooled cost before the sale is £2,000 per ETH. The allowable cost of the 2 ETH sold is £4,000 and the gain is £3,000, against £7,000 on the zero cost view. The transfer row is the point of the table: the quantity moved and the pooled cost did not.
Add the 30 day rule and it moves again
If the £2,600 purchase on platform B happened within 30 days after the sale rather than before it, that purchase is matched against the disposal first. One of the two ETH sold then carries a £2,600 cost, and only the second draws on the pool. The gain changes, and no platform report would have shown you why.
How The UK Pool Differs From US Wallet By Wallet Tracking
Clients who have filed in the United States, or who use software configured for it, frequently arrive with the wrong mental model.
| UK, section 104 | US, per account | |
|---|---|---|
| Unit of tracking | One pool per token type, across all your accounts | Per wallet or account, with basis identified per lot |
| Effect of an internal transfer | None on the pool | Basis travels with the specific units moved |
| Anti-avoidance on repurchase | Same day and 30 day matching rules | Separate regime, different mechanics |
| Who tracks basis | You, across every platform | Broker reporting is expanding, you still reconcile |
Why this matters the moment you move
Software set to a wallet-based method will show a per-account gain that is arithmetically correct and legally irrelevant in the UK. Our note on universal versus wallet based cost tracking works through the settings themselves. If you are unsure which one your report was built on, that is worth establishing before you file, not after.
The Records HMRC Expects You To Keep
GOV.UK sets out what you must keep, and the list is specific. For each pool of tokens you must keep separate records for each transaction, including the type of tokens, the date you disposed of them, the number of tokens disposed of, the number of tokens you have left, the value of the tokens in pound sterling, bank statements, and the pooled costs before and after the disposal.
Pooled costs before and after
That requirement is easy to skim past and it is the heart of the matter. HMRC expects to see the running pool, not a closing gain. A spreadsheet of trades does not satisfy it. A reconstructed ledger that shows the pool balance moving transaction by transaction does.
Wallet addresses
The same guidance adds that you may also want to keep other records such as wallet addresses. In a platform transfer case these are what make the story checkable: they let anyone reviewing the year follow the units out of one account and into the next, which is precisely what turns an assertion that a movement was not a disposal into evidence.
The rates the pool eventually feeds
Once the pool is right, the rest is arithmetic. The Capital Gains tax-free allowance is £3,000, and £1,500 for trusts.
HMRC's helpsheet HS284 on shares and Capital Gains Tax carries worked section 104 holding examples, and GOV.UK's cryptoasset guidance points to it for the same day and 30 day cases.
Getting The Pool Rebuilt Rather Than Estimated
Reconstruction is the work: pull every platform export and every wallet, match each withdrawal to its deposit so internal movements are recognised as transfers rather than disposals, price every leg in sterling at its timestamp, apply the same day and 30 day rules across the whole holding, and carry one pool per token from your first acquisition to the end of the year. That is what CountDeFi does as crypto tax accountants, and the output is a report and a transaction level ledger your own accountant can file from.
Who files it
We reconcile and report. The return itself is filed by you or by your accountant or tax adviser. Our guide to who does what on a UK crypto return, and who can file it sets out where that line sits. For the underlying UK treatment of income, disposals and everything around the pool, start with our UK crypto tax guide. If your problem is that the acquisitions themselves have vanished, our note on missing cost basis covers the reconstruction route in more detail.
- HMRC Cryptoassets Manual, CRYPTO22200: Capital Gains Tax pooling
- HMRC Cryptoassets Manual, CRYPTO22100: what is a disposal
- HMRC Cryptoassets Manual, CRYPTO22110: transferring tokens between distributed ledgers
- HMRC Cryptoassets Manual, CRYPTO22150: allowable expenses
- HMRC Cryptoassets Manual, CRYPTO22280: fees satisfied in tokens
- HMRC Cryptoassets Manual, CRYPTO22250: pooling examples
- HMRC Cryptoassets Manual, CRYPTO22251: basic section 104 pool disposal
- HMRC Capital Gains Manual, CG51560: same day and bed and breakfast rules
- HMRC Capital Gains Manual, CG51575: the Section 104 holding in detail
- GOV.UK: check if you need to pay tax when you sell cryptoassets
- GOV.UK: HS284 Shares and Capital Gains Tax
- GOV.UK: Capital Gains Tax rates
- GOV.UK: Capital Gains Tax allowances
Frequently Asked Questions
Does moving crypto between exchanges trigger Capital Gains Tax in the UK?
No. HMRC states there is no disposal where you retain beneficial ownership throughout, including moving tokens between public addresses you control. Your section 104 pool is unchanged by the movement. The transfer still has to be recorded, because the receiving platform will not know what you paid.
Who has to track the section 104 pool, me or the platform?
You. GOV.UK states that exchange reports are not tax calculations and will not keep track of your pooled costs, and that you must keep your own records. No UK rule passes the pooling obligation to a platform, and there is no basis transfer statement between custodians.
What if my exchange only shows two years of history?
The pool runs from your first acquisition, so a two year window is not enough on its own. Rebuild the earlier period from wallet activity, bank statements and any surviving statements or emails. Where a price has to be established at a past timestamp, the cost of making that valuation is an allowable expense.
Do transfer fees change the pooled cost?
A network fee for including a transaction on the ledger is an allowable cost under section 38. Where the fee is paid in tokens, HMRC also treats the fee tokens as disposed of at market value, so the same payment produces a cost and a small disposal with its own gain or loss.
How do the same day and 30 day rules interact with a transfer?
They operate across your whole holding of a token, not per account. A sale on one platform can be matched against a purchase on another within the following 30 days, and neither platform's report will show the match. Only a book covering every account applies the rules correctly.
What records does HMRC expect for each pool?
For each pool and each transaction: token type, date of disposal, number disposed of, number remaining, sterling value, bank statements, and the pooled costs before and after. Wallet addresses are suggested as additional records and are what make an internal transfer verifiable.
Does a platform closing change my cost basis?
No. The pool belongs to you as beneficial owner, so it survives the platform. What is lost is the evidence, and that is recoverable from on-chain records, bank statements and counterparty data in most cases.
Do NFTs go into a section 104 pool?
No. HMRC states that NFTs are separately identifiable, are not pooled, and have no matching rules applied. Each one is a separate asset with its own acquisition cost, which still has to be established in sterling at the date of acquisition.
Chris Herbst is the founder of CountDeFi, a crypto tax specialist whose qualifications span investment management, financial analysis, mathematical statistics and computer science. He holds the Chartered Business Accountant in Practice (CBAP) designation with the Chartered Institute for Business Accountants (CIBA) and the General Tax Practitioner (GTP) designation with the South African Institute of Taxation (SAIT). His combined background in investments, accounting and tax, mathematical statistics and computer science underpins his work in complex crypto tax reporting. This article is for educational purposes only and does not constitute tax, legal or investment advice. Consult a qualified tax professional for guidance specific to your situation. View our Editorial Policy.

