Canonical classification examples
Seventeen verbatim request/response captures from the live CryptoTaxEdge engine: real transactions, independently sourced, saved exactly as the API returned them. Each file is stamped with its capture date and policy version, and the whole pack is replayed against the live engine nightly: if the engine's answer for any capture drifts, the site build fails rather than publishing a stale claim.
The composition: fourteen identified classifications spanning transfers, swaps, wrapping, liquid staking, reward claims, liquidity add/remove, lending collateral, and bridging (four of those carry a review flag on the treatment with the reason stated in the response), plus three annotated deferrals where the engine declines to guess.
Read the needs_review rows first. 7 of the 17 captures return treatment: needs_review with taxable: null: three where the evidence does not support even naming the category, and four where the category is identified confidently but the treatment is routed to a human. That is the engine declining to guess when the evidence does not support a confident treatment. Each one is annotated below with why it defers. A sample pack of nothing but high-confidence wins would be marketing; deferrals-with-reasons are the product.
The pack
Captured 2026-08-12, with three examples re-captured 2026-08-18, under policy version us-default-2026-08. Every row links to the raw JSON, which validates against the published cte-classification-v1 schema. Wire values are documented in the classification taxonomy and enumerated in the Classification Standard v1.1. Confidence is a corroboration signal, not an accuracy percentage: it reflects how well the available evidence agreed on the classification, and it gates one decision, whether the record is served as a treatment or routed to a human. Scores are not comparable across transactions and are not a probability that the treatment is correct.
| Capture | Chain | Category | Treatment | taxable | Confidence | Protocol |
|---|---|---|---|---|---|---|
| 01-transfer.json | ethereum | transfer | needs_review | null | 60 | ERC-20 Transfer |
| 02-transfer.json | ethereum | transfer | needs_review | null | 60 | Native ETH transfer (no protocol) |
| 03-swap.json | ethereum | swap | disposal | true | 95 | (none) |
| 04-swap.json | solana | swap | disposal | true | 80 | Jupiter |
| 05-swap.json | solana | swap | disposal | true | 80 | Pump amm |
| 06-wrap.json | ethereum | wrap | non_taxable | false | 95 | WETH Deposit |
| 07-unwrap.json | ethereum | unwrap | non_taxable | false | 85 | WETH |
| 08-collateral_supply.json | ethereum | liquid_staking_mint | non_taxable | false | 95 | Lido |
| 09-reward.json | ethereum | reward | needs_review | null | 70 | (none) |
| 10-liquidity_add.json | ethereum | liquidity_add | disposal | true | 95 | Curve Finance |
| 11-liquidity_remove.json | ethereum | liquidity_remove | needs_review | null | 95 | Curve Finance |
| 12-collateral_supply.json | ethereum | collateral_supply | non_taxable | false | 99 | Aave V3 |
| 13-collateral_withdraw.json | ethereum | collateral_withdraw | non_taxable | false | 85 | Aave V3 |
| 14-bridge_transfer.json | ethereum | bridge_transfer | non_taxable | false | 85 | Across Protocol |
| 15-needs_review.json | ethereum | needs_review | needs_review | null | 0 | AlloXCheck (unidentified protocol) |
| 16-needs_review.json | ethereum | needs_review | needs_review | null | 0 | Uniswap V4 |
| 17-needs_review.json | ethereum | needs_review | needs_review | null | 0 | ERC-4337 EntryPoint v0.7 |
Why the engine defers
The three captures whose category is needs_review are not failures to compute; they are cases where asserting a treatment would require information the transaction hash alone cannot provide.
- 15-needs_review.json: AlloXCheck. Unverified, unlabeled contract with no decodable asset legs. Asserting any treatment would be a guess, so the engine defers.
- 16-needs_review.json: Uniswap V4. The swap's beneficiary is an unverified smart contract, not the transaction sender. Until the client confirms they own that contract, disposal attribution is genuinely ambiguous.
- 17-needs_review.json: ERC-4337 EntryPoint v0.7. Account-abstraction bundle: the tx sender is the bundler, not the taxpayer, so per-user classification requires the smart-account wallet address.
Four further rows identify the category confidently but flag the treatment for review, with the reason stated in the response itself. 01-transfer.json and 02-transfer.json are one-way sends whose recipient could not be verified as the taxpayer's own wallet. From a hash alone the engine holds no evidence about who the recipient is, so booking either as a non-taxable self-transfer would silently drop a possible IRC §1001 disposal (a payment, a sale, or a gift) out of the books. The house non-taxable default still covers unverified incoming transfers, where a wrong call at least leaves an asset in the books carrying a basis question that a later disposal forces someone to answer; an unflagged outgoing send leaves no trace at all, so that direction goes to a human instead. Confirming that the recipient is the client's own wallet is what settles the treatment. 09-reward.json and 11-liquidity_remove.json flag for different reasons: a reward claim where the income amount needs confirming, and a liquidity withdrawal whose harvest component should be split from principal before booking. The remove defers because of that withdraw-and-harvest income-split check (a possible reward leg received alongside the pool principal), not because the exit policy differs: the principal's exit follows the same house disposal default as the add. Flagged, not guessed.
What to do with these
Use them as fixtures for an integration before you mint a key, as ground truth for what the classification API actually returns (including the shape of a deferral), or as a check against the OpenAPI 3.1 spec. To reproduce any row live, enter its transaction hash in the Classification Explorer.
Not tax advice. CryptoTaxEdge is software, not a licensed tax advisor. These captures are engine output for specific public transactions, informational only. Verify results and consult a qualified tax professional before filing.