Reference

How every transaction is classified.

Grubless sorts each transaction into one of 68 categories, and each category carries a default tax treatment: 22 capital gain/loss, 10 income, 26 not taxable, 10 ignored. This page is generated from the same list the engine itself uses, so it cannot drift from what your figures are actually built on.

Capital gain/loss

A disposal. Proceeds are the market value at the time; the gain or loss is that less the cost base of the parcels consumed.

Income

Assessable as ordinary income at market value on the day you received it. That value also becomes the cost base, so a later sale is taxed only on the movement since.

Not taxable

Recorded and reportable, but no tax consequence of its own. It still shapes your figures: an inbound leg creates a parcel with a cost base for later.

Ignored

Excluded from the ledger entirely. No parcel, no disposal, no effect on any figure.

Common

CategoryDefault treatmentNotes
Buybuy Not taxable
Sellsell Capital gain/loss
Cross-Chain Buycross_chain_buy Not taxable The receiving half of a bridge. Behind a per-entity setting that defaults to NOT a disposal, since the same value simply moved chains.
Cross-Chain Sellcross_chain_sell Capital gain/loss The sending half of a bridge — see the receiving half.
Sendsend Not taxable
Receivereceive Not taxable
Transfertransfer Not taxable A confirmed move between your own wallets. Never a disposal in any jurisdiction, so this one isn't configurable — but the cost base travels with the coins rather than resetting.

Ignored

CategoryDefault treatmentNotes
Failed (In)failed_in Ignored
Failed (Out)failed_out Ignored
Ignore (In)ignore_in Ignored
Ignore (Out)ignore_out Ignored
Spamspam Ignored Unsolicited tokens sent to your address, usually to bait an interaction. Excluded so they can't inflate holdings or invent disposals.
Dust (In)dust_in Ignored
Dust (Out)dust_out Ignored

DeFi (incoming)

CategoryDefault treatmentNotes
Collateral Withdrawalcollateral_withdrawal Capital gain/loss Behind the same setting as posting collateral.
Remove Liquidityremove_liquidity Capital gain/loss Behind the same setting as supplying liquidity.
Loanloan Not taxable Borrowed principal is not income and not a disposal — it is a liability. Only what you do with the borrowed asset afterwards can be taxable.
Receive Receipt Tokenreceive_receipt_token Not taxable
Staking Rewardstaking_reward Income Whether this is income on receipt depends on the entity — a business is assessed on it. Per-entity setting.
Voting Rewardvoting_reward Income
Staking Withdrawalstaking_withdrawal Not taxable Rewards already recognised as they accrued are not counted a second time when the stake account closes and pays out as one lump sum.
Staking Deactivationstaking_deactivation Not taxable
Staking Splitstaking_split Not taxable
Staking Mergestaking_merge Not taxable

DeFi (outgoing)

CategoryDefault treatmentNotes
Collateral Depositcollateral_deposit Capital gain/loss Behind its own per-entity setting, separate from liquidity. The weaker case for a disposal in either jurisdiction: you keep ownership and are entitled to the specific asset back.
Add Liquidityadd_liquidity Capital gain/loss Behind a per-entity setting. On by default: supplying a pool mixes your asset with other people's and hands back a receipt, so ownership plainly moves.
Loan Repaymentloan_repayment Capital gain/loss Repaying principal is not a disposal of the repaid asset's value to you; interest is an expense.
Send Receipt Tokensend_receipt_token Not taxable
Staking Depositstaking_deposit Not taxable Delegating to a validator doesn't change who owns the coins, so it isn't a disposal — and the cost base is not reset on the way back out.
Liquidationliquidation Capital gain/loss

Other incoming

CategoryDefault treatmentNotes
Fiat Depositfiat_deposit Not taxable
Airdropairdrop Income Not income on receipt by default. What matters is the market value when you dispose of it.
Chain Splitchain_split Not taxable New coins from a fork start with a nil cost base under both rulesets, so the whole proceeds are a gain when sold.
Giftgift Not taxable
Salessales Income
Incomeincome Income
Interestinterest Income
Miningmining Income
Mintmint Not taxable A token created into your wallet rather than sent to it. Behind a per-entity setting: on by default, the tokens are yours; off, tokens you mint against someone else's deposit and pass on were never your CGT assets, though anything you keep still is.
Rebaterebate Not taxable
Royaltiesroyalties Income

Outgoing

CategoryDefault treatmentNotes
Fiat Withdrawalfiat_withdrawal Not taxable
Burnburn Capital gain/loss
Lostlost Capital gain/loss A capital loss requires evidence the asset is genuinely unrecoverable, not merely fallen in value.
Outgoing Giftoutgoing_gift Not taxable
Personal Usepersonal_use Capital gain/loss An Australian concession, available only in limited circumstances and never for something acquired as an investment. No US equivalent.
Stolenstolen Capital gain/loss Treated as a loss at the point of theft, on the same evidentiary footing.

Expenses

CategoryDefault treatmentNotes
Approvalapproval Capital gain/loss
Expenseexpense Capital gain/loss
Feefee Capital gain/loss Network and exchange fees are disposals of the coins spent, and a cost that reduces your net position.
Staking Activationstaking_activation Capital gain/loss
Wageswages Capital gain/loss
Invoice Paymentinvoice_payment Capital gain/loss

Derivatives (incoming)

CategoryDefault treatmentNotes
Decrease Positiondecrease_position Not taxable
Receive Position Tokenreceive_position_token Not taxable
Realized Profitrealized_profit Income Derivatives settle in cash rather than by disposing of a holding, so profit and loss are recognised as they settle.

Derivatives (outgoing)

CategoryDefault treatmentNotes
Increase Positionincrease_position Not taxable
Send Position Tokensend_position_token Not taxable
Realized Lossrealized_loss Income The mirror of settled profit.
Margin Feemargin_fee Capital gain/loss

Other

CategoryDefault treatmentNotes
Incomingincoming Ignored
Outgoingoutgoing Ignored
Unknownunknown Ignored
Tradetrade Capital gain/loss
Wrapped Tokenswrapped_tokens Capital gain/loss Behind a per-entity setting, defaulting to a disposal. Wrapping is a genuine grey area: you receive a different asset, but one that tracks the original exactly.
Reflection Tokensreflection_tokens Not taxable
Rebase Tokensrebase_tokens Not taxable
Cross-Chain Tradecross_chain_trade Capital gain/loss

Defaults, not verdicts

Several treatments above are genuinely contested, and the ones that are sit behind a per-entity setting rather than being decided for you — wrapping, bridging, supplying liquidity, posting collateral, and tokens you mint yourself. Each defaults to the position that needs no supporting paperwork, and each can be changed per entity, because two entities in one account can legitimately take different positions — and can sit in different countries.

Anything you categorise by hand is never overwritten by an automated pass.

Where a category isn't the whole answer

Your entity's jurisdiction, type and settings all feed the final numbers, and the treatments above are the shared starting point rather than the answer. Under Australian rules a parcel held over twelve months may attract the CGT discount, and an SMSF's rate depends on its phase; under US rules the same parcel is instead split into long-term and short-term, stacked on ordinary income, and a C-corp pays a flat rate with no preferential treatment at all. The category decides what KIND of event something is — the ruleset decides what that means for the entity holding it.

Grubless is a calculator, not a tax agent. Positions that depend on your circumstances or your paperwork are yours and your accountant's to take.