Skip to content

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.

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

Journal ledger with entries and hash chain

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

Filter journal entries by:

FilterOptions
Date rangeCustom start/end dates
GL accountSpecific account or account type
StatusDraft, Posted, Reversed
Transaction typeSource transaction classification
Amount rangeMin/max amounts
ReferenceFree-text search on reference field

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

Click any entry to view its full detail:

Journal entry detail view

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

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:

AccountDebitCredit
Accrued Expenses — Audit Fees€15,000
Accounts Payable€15,000

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.

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.

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

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

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.

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.

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

ScenarioDescription
Historical migrationGenerate journals for transactions that predate the accounting pipeline setup
Rule changesRegenerate journals after modifying accounting rules to apply new classifications
Bulk re-postingReprocess a date range after correcting GL mappings or cost basis settings
System migrationGenerate CryptaCount journals from data imported from another platform
  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
ActionDescription
StartBegin journal generation for the selected scope
CancelStop an in-progress generation (already-created journals are retained)
CleanupRemove journals created by a cancelled or failed generation run
PurgeRemove all generated journals for the selected scope (use before re-running)

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.