Transaction Classification
Last updated March 28, 2026 · Super Admin
Transaction Classification
Every transaction synced or imported into CryptaCount is assigned a type by the classification engine. This type determines how the transaction is journaled, whether it triggers a gain/loss calculation, and how it appears in reports.
Automatic Classification Engine
The classification engine analyzes each transaction's on-chain data to assign a type:
- Direction analysis — Is the wallet the sender, receiver, or both?
- Contract interaction — Is this a simple transfer or a smart contract call?
- Function classification — Over 70 function categories map on-chain function signatures to classification hints (TRANSFER, SWAP, BRIDGE, STAKING, LENDING, etc.)
- Event parsing — For contract interactions, which events were emitted?
- Counter-asset detection — Did the wallet receive a different asset in the same transaction (indicating a swap)?
- Known contract matching — Is the contract a recognized DeFi protocol, DEX router, staking contract, or bridge?
- Economic intent — The engine assigns an economic intent (INVESTMENT, TRADING, OPERATIONAL, INCOME, EXPENSE, FINANCING, HEDGING, TRANSFER, UNKNOWN) to guide accounting treatment.
The classification is deterministic — the same transaction data always produces the same type.
Manual Override
If the automatic classification is incorrect, you can override it from the transaction detail view:
1. Open the transaction detail 2. Click the current type label 3. Select the correct type from the dropdown

4. Optionally add a note explaining the override 5. Save
The override is recorded in the audit trail. The original automatic classification remains visible for reference.
:::note Overriding a transaction type triggers recalculation of the affected journal entry and any downstream cost basis or gain/loss calculations. :::
Classification Rules
Define rules under Settings → Rules that automatically override the classification for transactions matching specific criteria:
- Contract address — All interactions with a specific contract get a specific type
- Token — Transactions involving a specific token are classified a certain way
- Direction and amount — Combine direction, asset, and amount thresholds
AI Classification
The AI classification feature under AI Classification in the sidebar is available on qualifying plans. It provides:
- AI-powered suggestions — Machine learning model analyzes transaction patterns and suggests classifications
- Accept/reject workflow — Review AI suggestions individually or in bulk
- Bulk accept/reject — Process multiple AI suggestions at once
- Generate suggestions — Trigger AI analysis for unclassified transactions
Revenue Classification Rules
Revenue classification rules under Revenue Rules in the sidebar provide specialized handling for revenue-generating transactions:
- Revenue contract rules — Define rules for recognizing revenue from specific token flows or contract interactions
- Registry levels — Rules can be defined at global level, workspace level, or per-token level
- Test matching — Validate rules against sample transactions before activating
- Toggle — Enable/disable rules without deleting them
Bulk Reclassification
For recurring misclassifications:
1. Filter the transaction list to show affected transactions 2. Select all matching transactions 3. Use Bulk Reclassify and choose the correct type 4. Review and confirm
Common Misclassifications
| Symptom | Likely Cause | Fix | |---|---|---| | Staking rewards shown as TRANSFER_IN | Contract not recognized as staking | Override to STAKING_REWARD or add a rule | | DEX swap shown as two separate transfers | Complex routing not detected | Override to SWAP | | Bridge shown as TRANSFER_OUT with no BRIDGE_IN | Destination chain wallet not connected | Connect destination wallet, or manually add BRIDGE_IN | | All token transfers showing as TRANSFER_OUT | Address comparison issue | Check wallet address format |
Was this article helpful?
Let us know if this answered your question
