User Manual

Accounting Engine

Last updated March 28, 2026 · Super Admin

Accounting Engine

The accounting engine is the core of CryptaCount. It transforms classified transactions into proper double-entry journal entries through a structured pipeline, maintains a chart of accounts, and manages accounting periods with formal close workflows.

Accounting Sidebar Sections

The Accounting section in the sidebar provides access to:

| Sidebar Label | Feature | |---|---| | Accounting → Opening Balances | Set opening balances for existing positions | | Accounting → Accounting Periods | Manage accounting periods | | Accounting → Period Close | Period close workflow with validation checks | | Accounting → Generate Journals | Batch journal generation (migration) | | Accounting → Journal Entries | View and manage journal entries | | Accounting → Impairment | Impairment testing | | Manual Adjustments | Manual journal adjustments (approval workflow) | | Audit Attachments | Supporting document attachments for audit trail |

Accounting Pipeline

The pipeline processes events through a status workflow:

`` PENDING → CLASSIFIED → POSTED (or FAILED / MANUAL_REVIEW / SKIPPED) ``

The pipeline processes:

  • Raw blockchain events into classified accounting events
  • Classified events into posted journal entries
  • Multi-leg groups (complex transactions with multiple accounting legs)
  • Hash chain verification for tamper detection

Double-Entry Bookkeeping

Every transaction processed by CryptaCount generates journal entries where debits equal credits.

Example — Purchasing 1 ETH at €2,100:

| Account | Debit | Credit | |---|---|---| | Digital Assets — ETH | €2,100 | | | Cash / Fiat | | €2,100 |

Example — Receiving 0.5 LINK as a staking reward (FMV €7.25):

| Account | Debit | Credit | |---|---|---| | Digital Assets — LINK | €7.25 | | | Staking Income | | €7.25 |

Example — Selling 1 ETH at €2,600 (cost basis €2,100 under FIFO):

| Account | Debit | Credit | |---|---|---| | Cash / Fiat | €2,600 | | | Digital Assets — ETH | | €2,100 | | Realized Gain — ETH | | €500 |

Chart of Accounts

Manage GL accounts under Accounting → Chart of Accounts. The chart of accounts uses 8 account types with debit/credit normal balances:

![Chart of accounts structure](../../../assets/screenshots/chart-of-accounts.png)

| Type | Normal Balance | Description | |---|---|---| | ASSET | Debit | Digital assets, cash, receivables | | LIABILITY | Credit | Borrowings, payables | | EQUITY | Credit | Retained earnings, reserves | | REVENUE | Credit | Income from operations | | EXPENSE | Debit | Operating costs, fees | | CONTRA_ASSET | Credit | Accumulated depreciation | | CONTRA_LIABILITY | Debit | Contra liability accounts | | CONTRA_EQUITY | Debit | Treasury stock, etc. |

The chart supports 30 account subtypes for detailed classification (Current Asset, Cash and Equivalents, Receivable, Inventory, Staking Reward, Mining Reward, Transaction Fee, etc.).

GL accounts can be imported, mapped to wallets, mapped to external addresses, and assigned to CEX accounts. Special accounts (like default gain/loss accounts) can be designated.

Journal Entries

View and manage journal entries under Accounting → Journal Entries:

![Journal ledger with hash chain](../../../assets/screenshots/journal-ledger.png)

  • Create manual journal entries
  • Post draft entries
  • Reverse posted entries
  • Search and filter by date, account, and transaction type
  • Reassign GL accounts on existing entries via Balances → Reassign GL

Tamper-Evident Journal Hashing

Each journal entry is cryptographically hashed. The hash chain links each entry to its predecessor — any modification to a historical entry breaks the chain, making unauthorized changes immediately detectable.

Accounting Periods

Manage periods under Accounting → Accounting Periods:

  • Create monthly or custom periods
  • Open and close periods
  • Year-end close workflow

Period Close Workflow

The period close follows a structured process:

1. Run checks — Automated validation checks verify data completeness 2. Review results — View which checks passed or failed 3. Waive — Optionally waive non-critical failed checks with justification 4. Close — Formally close the period, locking it from further changes 5. Reopen — If needed, reopen a closed period (with audit trail) 6. Lock — Permanently lock a period (prevents reopening)

Opening Balances

Set opening balances under Accounting → Opening Balances for wallets that had existing positions before connecting to CryptaCount:

  • Import opening balances from a file
  • Set balances as of a specific date
  • Auto-populate suggested dates based on wallet activity

Generate Journals

The journal generation tool under Accounting → Generate Journals provides batch processing for:

  • Migrating transactions that predate the accounting pipeline
  • Regenerating journals after rule changes
  • Status tracking with start/cancel/cleanup controls

Impairment Testing

Impairment testing under Accounting → Impairment supports:

  • Running impairment calculations across the portfolio
  • Viewing impairment results by asset
  • Different impairment models based on cost basis method (one-way for historic FIFO methods, two-way for NRV methods)

Manual Adjustments

Manual adjustments support an approval workflow:

  • Create adjustment entries with justification
  • Pending adjustments await approval
  • Approve or reject adjustments
  • Post approved adjustments to the ledger

Audit Attachments

Upload supporting documents under Audit Attachments:

  • Attach files to journal entries, transactions, or periods
  • Upload and download attachments
  • Maintain audit trail with document references

Accounting Rules

Configure rules under Settings → Rules to automate journal generation:

![Accounting rules configuration](../../../assets/screenshots/accounting-rules.png)

  • Define rules with conditions and actions
  • Test rules against sample data
  • Version control for rule changes

Was this article helpful?

Let us know if this answered your question

Accounting Engine — CryptaCount Support