Crypto tax classification taxonomy
Every transaction the CryptoTaxEdge engine classifies resolves to one category and one tax treatment, with a confidence score. This is the closed set it uses — the same values returned by the API, the Classification Explorer, and the review tools.
Treatment enum
A classified transaction maps to exactly one of five treatments:
disposalincomenon_taxableexpenseneeds_review
Treatments are framed under US federal income tax principles — a disposition under IRC §1001, ordinary income under IRC §61. This framing is general context, not tax advice.
Category to treatment map
The engine recognizes transaction shapes and maps each to a house-default treatment. Categories marked grey area are contested positions: the engine exposes a documented default and the alternative, and the position is configurable per firm.
| Category | House treatment | Notes |
|---|---|---|
swap | disposal | Exchanging one asset for another — a disposition of the asset sold. |
reward / airdrop / vesting | income | Value received; ordinary income at receipt. |
fee_payment | expense | Network or protocol fee paid. |
transfer | non_taxable | Same-owner movement between wallets. |
borrow / repay / collateral / stake / unstake | non_taxable | Debt and staking mechanics without a change in beneficial ownership. |
lp_add / lp_remove grey area | disposal | House default treats add/remove as a disposition; the continuity-of-position alternative is exposed and configurable. |
wrap / unwrap grey area | non_taxable | House default is a 1:1 non-taxable wrap; configurable if a firm treats it as a disposition. |
liquid_staking_mint grey area | disposal | House default treats the receipt-token mint as a disposition; configurable. |
bridge | needs_review | Cross-chain movement — flagged for review; taxable returned as null pending the taxpayer's facts. |
Confidence and the review flag
Every result carries an integer confidence score from 0 to 100. The score is an internal routing signal that gates one decision: whether to return a treatment or to flag the transaction for a human.
We route to review rather than guess. When sources conflict or confidence is low, the engine returns needs_review with taxable: null instead of asserting a taxable or non-taxable outcome. A wrong tag that looks confident is worse than a flagged one — so uncertainty is surfaced, never hidden.
Grey-area policy
Some treatments are genuinely contested. For those categories, CryptoTaxEdge documents a house default and the alternative position, and lets a firm set its own standard before classifying. The software describes positions and their basis; it does not assert a filing position for any taxpayer.
Not tax advice. CryptoTaxEdge is software, not a licensed tax advisor. Classifications and the treatments described here are informational only. Verify results and consult a qualified tax professional before filing. IRC section references are provided as general framing.