Home › Encyclopedia › Transaction types › Reward
Classification encyclopedia

Protocol rewards: tax classification and treatment

A reward claim receives tokens earned from staking, liquidity mining, or protocol incentives. It is classified as income: ordinary income at fair market value on the date of receipt, which also sets the basis of the tokens received.

Example last verified 2026-08-07 against the live engine. CryptoTaxEdge Team.

139 verified rules7 chains15 protocols

Tax treatment

House treatment: income for reward. The alias claim_rewards is not an engine-emittable category.

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

Rev. Rul. 2023-14 confirmed the framing for staking rewards: gross income when the taxpayer has dominion and control. The same receipt-of-value logic extends to liquidity-mining incentives and protocol emissions under IRC §61. The recurring practitioner problem is volume and pricing: a farming position can emit hundreds of small claims, each needing a same-day valuation. The engine identifies claim shapes from the emitting contract and selector so each hash carries its category, leaving the valuation to the tax software with the price feed.

A real classification

Real transaction, replayed against the live engine (historical serve; see note)
POST /v1/classify { "chain": "ethereum", "hash": "0x1c8bb70e4458a67baa50185e21e0e1b2d56a7d31af305fb238e3926fbbe66b1d" }
{
  "api_version": "v1",
  "hash": "0x1c8bb70e4458a67baa50185e21e0e1b2d56a7d31af305fb238e3926fbbe66b1d",
  "chain": "ethereum",
  "category": "reward",
  "treatment": "income",
  "taxable": true,
  "confidence": 85,
  "needs_review": false,
  "ledger_action": "Reward",
  "protocol": "Lido",
  "description": "Staked 1 ETH.",
  "review_note": null,
  "grey_area": null,
  "assets": {
    "sent": [
      {
        "symbol": "ETH",
        "amount": "1",
        "action": "staked",
        "to": "Lido: Staked ETH Token"
      }
    ],
    "received": [
      {
        "symbol": "stETH",
        "amount": "1",
        "action": "stakedShareMinted",
        "from": "Null address"
      }
    ],
    "gas": {
      "symbol": "ETH",
      "amount": "0.002059608125207003"
    }
  }
}

Verbatim wire response from the live engine. Last verified 2026-08-07 by live replay. This hash is a Lido ETH to stETH mint labeled reward/income on that date. Standard house for that shape is liquid_staking_mint / non_taxable (grey). Do not read this capture as the house default for staking mints. Recapture of a true reward claim is queued. Check any transaction yourself in the Classification Explorer.

Verified rules behind this category

The engine backs this category with 139 verified contract-level rules across 7 chains, each earned from repeated on-chain observation and cross-source agreement rather than a heuristic guess. A small illustrative sample:

ProtocolChainCategoryConfidence
multiplearbitrumrewardhigh
Stake DAOethereumrewardmedium
multiplebscrewardhigh
multipleoptimismrewardhigh
multiplebaserewardhigh

Illustrative sample of the 139 verified rules behind this page: the full mappings are served through the API.

Limitations

What this page does not decide. The engine classifies the receipt, not its dollar value: fair-market-value pricing at the receipt timestamp lives in the tax software consuming the classification. Rebasing tokens that grow in place rather than paying discrete claims are a different shape and are handled on their own facts. 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.

Classify a transaction

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.