User Manual

Journal Entries & Generation

Last updated March 28, 2026 · Super Admin

Journal Entries & Generation

Journal entries are the atomic records of CryptaCount's double-entry bookkeeping system. Every balance change — whether from an on-chain transaction, a CEX trade, or a manual adjustment — is expressed as a journal entry with balanced debits and credits.

Viewing Journal Entries

Navigate to Accounting → Journal Entries to browse the full journal ledger.

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

Ledger View

The journal ledger displays entries in reverse chronological order with:

  • Entry date — When the economic event occurred
  • Posted date — When the entry was posted to the ledger
  • Reference — Source transaction hash, CEX trade ID, or manual reference
  • Description — Auto-generated or user-provided narrative
  • Accounts — Debit and credit GL accounts with amounts
  • Status — Draft, Posted, or Reversed
  • Hash — Truncated hash for chain verification

Filtering & Search

Filter journal entries by:

| Filter | Options | |---|---| | Date range | Custom start/end dates | | GL account | Specific account or account type | | Status | Draft, Posted, Reversed | | Transaction type | Source transaction classification | | Amount range | Min/max amounts | | Reference | Free-text search on reference field |

Search supports partial matching on descriptions and references. Results can be exported to CSV or Excel.

Journal Entry Detail

Click any entry to view its full detail:

![Journal entry detail view](../../../assets/screenshots/journal-entry-detail.png)

Each entry shows:

  • Header — Date, reference, description, status, created-by user
  • Lines — Each debit and credit line with GL account, amount, and optional memo
  • Source — Link to the originating transaction (if auto-generated)
  • Hash chain — Current entry hash plus link to predecessor
  • Audit trail — Who created, posted, or reversed the entry and when
  • Attachments — Any supporting documents linked via audit attachments

Creating Manual Entries

To create a journal entry manually:

1. Click New Entry 2. Set the entry date and description 3. Add debit lines — select GL account, enter amount, optional memo 4. Add credit lines — total credits must equal total debits 5. Save as Draft or Post immediately

Example: *Acme Digital Holdings* records a year-end accrual:

| Account | Debit | Credit | |---|---|---| | Accrued Expenses — Audit Fees | €15,000 | | | Accounts Payable | | €15,000 |

Posting Draft Entries

Draft entries do not affect account balances until posted. To post:

1. Open the draft entry 2. Review the lines 3. Click Post 4. The entry is assigned a hash, linked into the hash chain, and account balances update

Posting is irreversible in the sense that the entry cannot be edited after posting. To correct a posted entry, reverse it and create a new entry.

Reversing Entries

Reverse a posted entry to undo its effect:

1. Open the posted entry 2. Click Reverse 3. CryptaCount creates a new entry with all debits and credits swapped 4. Both the original and reversal entries are linked for audit trail

The reversal entry carries a reference to the original entry (e.g., "Reversal of JE-00412"). Both entries remain in the ledger — nothing is deleted.

Reassigning GL Accounts

If journal entries were posted to incorrect GL accounts:

1. Navigate to Balances → Reassign GL 2. Select the entries to reassign 3. Choose the correct GL accounts 4. CryptaCount generates reversal and re-posting entries automatically

Tamper-Evident Journal Hashing

CryptaCount implements a cryptographic hash chain across journal entries to ensure ledger integrity.

How It Works

Each journal entry's hash is computed from:

  • The entry's date, lines (accounts, amounts), description, and metadata
  • The hash of the previous journal entry in the chain
This creates a linked chain: modifying any historical entry changes its hash, which breaks the chain for all subsequent entries.

Verification

The hash chain is verified during:

  • Period close checks — The close workflow includes a hash chain integrity check
  • On-demand verification — Run hash chain verification from the accounting pipeline
  • Reconciliation — The full reconciliation suite includes ledger replay with hash verification
A broken hash chain indicates that an entry was modified outside the normal workflow — a critical audit finding.

:::tip The hash chain provides tamper evidence, not tamper prevention. It ensures that any unauthorized change is immediately detectable during the next verification cycle. :::

Generate & Migrate Journals

The journal generation tool under Accounting → Generate Journals handles batch processing for scenarios where journals need to be created or recreated in bulk.

![Journal generation workflow](../../../assets/screenshots/generate-journals.png)

Use Cases

| Scenario | Description | |---|---| | Historical migration | Generate journals for transactions that predate the accounting pipeline setup | | Rule changes | Regenerate journals after modifying accounting rules to apply new classifications | | Bulk re-posting | Reprocess a date range after correcting GL mappings or cost basis settings | | System migration | Generate CryptaCount journals from data imported from another platform |

Running a Generation

1. Navigate to Accounting → Generate Journals 2. Select the scope: - Date range — Process all transactions within the specified dates - Wallet — Process only transactions for specific wallets - Transaction type — Limit to specific transaction classifications 3. Click Start Generation 4. Monitor progress in the status panel: - Transactions processed / total - Journals created - Errors encountered 5. Review any errors before completing

Controls

| Action | Description | |---|---| | Start | Begin journal generation for the selected scope | | Cancel | Stop an in-progress generation (already-created journals are retained) | | Cleanup | Remove journals created by a cancelled or failed generation run | | Purge | Remove all generated journals for the selected scope (use before re-running) |

Status Tracking

The generation tool tracks:

  • Total transactions in scope
  • Transactions processed
  • Journals successfully created
  • Transactions skipped (already have journals)
  • Errors with details
Generation runs are recorded with start/end timestamps and can be reviewed in the activity log.

:::caution Journal generation for large date ranges can take significant time. The process runs in the background — you can navigate away and return to check progress. Do not close the period being processed while generation is in progress. :::

Was this article helpful?

Let us know if this answered your question

Journal Entries & Generation — CryptaCount Support