Swap transactions: tax classification and treatment
A swap exchanges one digital asset for another. It is a disposition of the asset given up under IRC §1001, so the engine classifies it as category swap with treatment disposal: gain or loss is the difference between the value received and the basis of the asset sold.
Example last verified 2026-08-04 against the live engine. CryptoTaxEdge Team.
Tax treatment
House treatment: disposal for swap.
This mapping comes from the closed CryptoTaxEdge classification taxonomy: every verdict resolves to one category and one of five treatments (disposal, income, non_taxable, expense, needs_review), with a confidence score and review routing when sources disagree.
How the engine reads this shape
Digital assets are property under Notice 2014-21, so a crypto-to-crypto trade is not a like-kind exchange and is taxable when it settles, whether it runs through an aggregator, an order book, or an automated market maker. The engine recognizes swap shapes from the contract and function selector called, the assets that left and arrived in the same transaction, and agreement across independent parses of the same on-chain data. Router transactions that fan out across pools still resolve to one swap: one hash, one classification.
A real classification
{
"api_version": "v1",
"hash": "2tm4wQu8281xKuXnNkjQcdL6S3iLSD8HAjBxTEkVfdJiy23BKD9D1v53aNWopZAQ16Uj8rnoPsiBpMosykW7KvLo",
"chain": "solana",
"category": "swap",
"treatment": "disposal",
"taxable": true,
"confidence": 80,
"needs_review": false,
"ledger_action": "Trade",
"protocol": "Jupiter",
"description": "Token swap via Jupiter; a taxable disposition under IRC §1001.",
"review_note": null,
"grey_area": null,
"assets": {
"sent": [
{
"symbol": "SOL",
"amount": "0.06934561",
"action": "transfer",
"to": "9nnLbo…Exn8"
},
{
"symbol": "SOL",
"amount": "0.00059449",
"action": "transfer",
"to": "9yj3zv…djXf"
},
{
"symbol": "SOL",
"amount": "0.0699401",
"action": "transfer",
"to": "7XXvMz…MU5s"
},
{
"symbol": "SOL",
"amount": "0.000006",
"action": "transfer",
"to": "6HRgJM…rWYE"
},
{
"symbol": "SOL",
"amount": "0.00203928",
"action": "transfer",
"to": "7XXvMz…MU5s"
}
],
"received": [
{
"symbol": "Ai66…pump",
"amount": "123.58608",
"action": "transfer",
"from": "9nnLbo…Exn8"
},
{
"symbol": "SOL",
"amount": "0.00203928",
"action": "transfer",
"from": "7XXvMz…MU5s"
}
],
"gas": null
},
"id": "golden"
}
Verbatim wire response, replayed 2026-08-04 against the live engine as part of the canonical example pack (replayed daily). Policy version us-default-2026-08. Check any transaction yourself in the Classification Explorer.
Verified rules behind this category
The engine backs this category with 4484 verified contract-level rules across 10 chains, each earned from repeated on-chain observation and cross-source agreement rather than a heuristic guess. A small illustrative sample:
| Protocol | Chain | Category | Confidence |
|---|---|---|---|
| multiple | avalanche | swap | high |
| multiple | polygon | swap | high |
| multiple | arbitrum | swap | low |
| multiple | ethereum | swap | high |
| multiple | optimism | swap | high |
Illustrative sample of the 4484 verified rules behind this page: the full mappings are served through the API.
Limitations
What this page does not decide. A swap verdict depends on both legs being visible on-chain. Partial fills, swaps embedded inside larger multicalls, and tokens with rebasing or fee-on-transfer mechanics can reduce confidence, and the engine routes those to review rather than guessing. Confidence is a corroboration signal, not an accuracy percentage: when independent parses of a transaction disagree, the engine returns needs_review with taxable: null rather than guessing.
Frequently asked questions
What tax treatment does this page document?
House treatment follows the CryptoTaxEdge Classification Standard. Categories with no fixed mapping (GAP-3) tell you to read the treatment field on the record rather than infer it from the category name.
Where is the closed vocabulary published?
The versioned Classification Standard at https://cryptotaxedge.com/standard/ enumerates emitted categories and the five-treatment enum. This encyclopedia page is a worked example on top of that Standard.
Are the wire examples still current?
Yes. Each example is verbatim engine output, re-verified on a daily replay against the live engine.
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 general framing.