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.

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:

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
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
:::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.

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
:::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
