SUBNEτMETRICS
← The dTAO tax pack Method · published 7 Sep 2026

The method: UK tax treatment of a dTAO book

The positions the dTAO tax pack takes, why, and how confident each one is. Written down because a valuation convention only works if it never changes: HMRC accepts a just-and-reasonable method applied consistently, and consistency is a property of the record, not of the software.

Not tax advice. This is a computation tool applying the method below to the chain record of a coldkey. Point 1 is genuinely unsettled and is worth putting to an adviser — if it is right, there are crystallised TAO gains on every subnet entry since dTAO launched, which for many holders is a larger exposure than the emissions income. Where the method takes a position, the pack reports the alternative reading alongside it.

Jurisdiction: England/Wales/NI. Scottish rates would need a separate band table (they apply to non-savings income, which is what the emissions charge is). The accountant pack applies no country rules at all; it is the valued ledger in GBP, USD and EUR.

The three events

1. Staking TAO → receiving alpha — CGT disposal of TAO (confidence ~75%)

HMRC's liquidity-pool guidance (CRYPTO61600s) treats contributing tokens to a pool as a disposal: beneficial ownership passes and what comes back is a different asset with different rights. dTAO fits closely — the TAO enters the subnet reserve and alpha is a distinct, separately-priced, tradable token. CRYPTO22100 says exchanging one token type for another is a disposal.

The counter-argument is that this is a deposit with a redemption right, so no disposal. It is weaker: there is no right to a fixed quantity back, only whatever the pool rate gives.

Gain measured on the TAO given up; the alpha's base cost is the same figure. At execution these are identical, because the effective price already embeds slippage (alpha × alpha_price_in_tao == amount in the extrinsic), so the two readings of "consideration" agree and no choice has to be made between them.

The pack reports both readings. The gap between them is the size of this open question, and it is printed, not hidden.

2. Alpha emissions while staked — miscellaneous income at receipt (confidence ~80%)

CRYPTO21200 puts staking rewards into income, and the capital-vs-revenue test in CRYPTO61300s points the same way: the return is periodic, recurring, and paid for putting the asset to work. Taxed at your marginal rate on the GBP value at receipt, and that value becomes the base cost of the alpha.

The live alternative is that auto-accruing alpha is a rebase — a quantity increase in an asset already owned, with nothing taxable until disposal. Some advisers run it; HMRC has never endorsed it. Not built on.

3. Unstaking alpha → TAO — CGT disposal of alpha (high confidence)

Ordinary crypto-to-crypto. Proceeds = GBP value of the TAO received; base cost comes from the pool built by events 1 and 2.

What is deliberately not a taxable event

Pre-dTAO root delegation (before 14 February 2025). Delegating TAO to a validator under the old model returned no second token, so there was no disposal and the TAO base cost carries straight through. The migration entries on 13 February 2025 are a protocol change applied to you, not a user disposal.

Gap, stated rather than hidden: root staking rewards before dTAO launch were also income, and the delegation record does not carry them — they accrued silently into the staked balance. They are outside this computation.

Validator moves (stake move between hotkeys on the same subnet). Two legs in one block, equal alpha, subnet unchanged: same asset, same quantity, different delegate. Not a disposal. They still shift the per-hotkey balance, so they are netted out when deriving emissions — otherwise a move would look like a large emission on one hotkey and a large negative on another.

The gap the chain cannot fill: opening TAO base cost

The delegation record shows TAO being staked, never where it came from. TAO bought on an exchange, earned, or received as a transfer has a base cost that exists only in your own records.

On a typical book a fifth or more of the TAO staked into subnets has no traceable acquisition in the chain record. Those disposals are costed at nil, which is the most expensive possible answer — so without your opening cost the CGT figure is an upper bound, not an estimate. The pack states exactly how much TAO is untraced and what supplying its cost would change.

You fix it with two small CSVs: your opening TAO holding and what it cost, and any exchange buys and sells (which are acquisitions and disposals in their own right — they do not cancel, they land in different years and match under different rules).

Do not value incoming transfers at market on arrival. A transfer from your own exchange account is a movement of TAO you already owned, not an acquisition, and pricing it on arrival day silently erases whatever gain accrued before it — a different wrong answer, and a flattering one.

The two things that make this hard

Continuous accrual breaks the 30-day rule

Alpha lands every block. Section 104 pooling is per-token and each subnet's alpha is its own pool (CRYPTO22200) — but the bed-and-breakfast rule (TCGA 1992 s106A) matches a disposal against acquisitions in the following 30 days before it ever touches the pool, and there are always acquisitions in the next 30 days.

So virtually every unstake gets matched against emission-acquired alpha at those base costs, not at the pool average. This is not a rounding difference; a calculator that pools naively is simply wrong. The pack reports how much of the disposed quantity was matched this way.

Matching order is statutory, not a preference: same-day → 30-day → s104.

Receipt timing has no natural event

Nothing is claimed, so there is no transaction to hang a valuation on. The convention adopted here:

  • One receipt per day per subnet, at the 23:59:48 UTC daily balance snapshot — that is the cadence the chain data actually supports.
  • Emission for a day = balance[d] − balance[d−1] − (stakes in) + (unstakes out). It is a residual because nothing records it directly.
  • The residual is net of validator take, which is the right figure: tax is on what was received, not what was emitted gross.
  • Negative residuals (take changes, slashing, snapshot/extrinsic timing) are dropped from income but counted and reported so they can never quietly hide a bug.

Valuation is two-hop

There is no alpha/GBP market:

alpha → TAO   subnet pool price on the day
TAO   → USD   daily close
USD   → GBP   ECB daily reference rate, forward-filled over non-business days
USD   → EUR   the same, for the accountant pack

Pool price is the marginal price and overstates what a real exit clears after slippage. That is correct for valuation and is deliberately not discounted — slippage shows up in the actual proceeds when a disposal happens.

The ECB rate is used because it is published, immutable and free, so a number filed in January still recomputes in July.

Other income decides the rate

Emissions are miscellaneous income and stack on top of everything else you earn, so your other income decides the marginal rate on every pound of them and how much basic-rate band is left for gains. The pack takes one figure from you (optional); with it the tax is exact, without it the tax is shown at each band.

The personal-allowance taper matters more than the headline rates. Between £100,000 and £125,140 each extra pound of income also removes 50p of allowance, so emissions falling in that band are taxed at an effective 60%, not 40%. A six-figure book at today's yields runs straight through it, and the pack reports the allowance destroyed.

Rates

Verified against gov.uk on 29 August 2026. Personal Allowance and the basic rate limit are frozen to 2027/28 by legislation.

Tax yearCGT annual exempt amountCGT basic / higher
2023/24£6,00010% / 20%
2024/25£3,00010% / 20% before 30 Oct 2024, 18% / 24% on or after
2025/26£3,00018% / 24%
2026/27£3,00018% / 24%

Income (rUK): personal allowance £12,570, basic rate limit £37,700, higher rate limit £125,140, rates 20 / 40 / 45%. The £1,000 trading-and-miscellaneous allowance is claimed against the emissions income.

Trading vs investment

Almost certainly investment (CGT), even with heavy automation — CRYPTO20250 says individuals trade only in exceptional circumstances. Running validator infrastructure for third-party fees would be a separate question and would look more like a trade.

The shape of the outcome

You are taxed twice on the way up: income on emissions as they accrue, then CGT on any appreciation between accrual and exit. And you can owe income tax on alpha that has since collapsed, because emissions are valued at receipt regardless of what happens after — the classic dry tax charge. Losses on disposal are CGT losses and do not offset the income charge. They do carry forward, if you state them on the return.

What the pack cannot know, and says so

Every pack lists its gaps on page one: untraced opening cost, unclassified transfers, pre-dTAO rewards, any event the engine quarantined rather than guessed at, days without a price. The point of the pack is that you and your accountant see those, not that they are hidden inside a total.

Changes

The method changes only by a dated note here; the packs recompute from raw data, so a change would move every figure and be visible. Back to the tax pack